Pay/get token
(→XML示例) |
(→请求参数) |
||
第62行: | 第62行: | ||
<th width="10%" style="text-align:left;padding-left:5px;border:1px solid #cccccc">true</th> | <th width="10%" style="text-align:left;padding-left:5px;border:1px solid #cccccc">true</th> | ||
<th width="10%" style="text-align:left;padding-left:5px;border:1px solid #cccccc">int</th> | <th width="10%" style="text-align:left;padding-left:5px;border:1px solid #cccccc">int</th> | ||
− | <th width="65%" style="text-align:left;padding-left:5px;border:1px solid #cccccc">交易金额,单位:分 范围 1-- | + | <th width="65%" style="text-align:left;padding-left:5px;border:1px solid #cccccc">交易金额,单位:分 范围 1-- 5000000分</th> |
</tr> | </tr> | ||
2013年1月16日 (三) 17:59的版本
get_token
- 用户发起支付时,应用开发者调用get_token接口,获取支付token,开放平台验证应用的相关信息,验证成功后,返回token值。
- 应用开发者申请开通支付功能时,需要填写回调地址(参见回调接口);当用户付款成功后,开放平台通过此回调地址通知应用开发者订单支付状态。
- 查询“支付ID”: 在”开放平台->应用汇总信息页”,可查看应用是否开通支付功能,存在“支付ID”,则表示该应用的支付功能已开通。
URL
- 为了给开发者提供“便捷的支付接入流程”,我们提供两套环境供开发者使用。
- 线上环境 :
- 1) 应用已通过支付审核(有“支付ID”),则调用“线上环境”调试支付接口。
- 2) 线上接口URL:http://pay.api.weibo.com/pay/get_token.{xml/json}
- 测试环境:
- 1) 应用未通过支付审核但已通过文案,可申请“模拟支付ID”;若已获得“模拟支付ID”,则可调用“测试环境”调试支付接口。
- 2) 测试接口URL:http://pay.api.weibo.com/test/pay/get_token.{xml/json}
支持格式
- JSON/XML
HTTP请求方式
- GET/POST
是否需要登录
- true
- 关于登录授权,参见 如何登录授权
请求参数
参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
order_id | true | string | 订单id,(为 了避免重复,需要以orderid_pre开 头(7位) 即为 支付ID, 总长 度必须为16位) |
amount | true | int | 交易金额,单位:分 范围 1-- 5000000分 |
desc | true | string | 交易描述,最多50个 汉字 (URLEncode) |
sign | true | string | 签名值sign=md5(order_id|amount|desc|app_secret),’|’是竖线 |
source | true | string | 申请应用时分配的AppKey,调用 接口 时候 代表应用的唯一身份。(采用OAuth授 权方式不需要此参数) |
access_token | false | string | 采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。 |
- 说明:如果开发者使用测试环境,则需要将代码中的“支付ID”替换成“模拟支付ID”。
相关约束
- 无
注意事项
- 1) 请求参数只需要 order_id amount desc sign source五个参数
- 2) 线上环境:如果当天“支付功能审核通过(获得支付ID)”,需要明天早上10点左右才可以正常调用接口。
PHP调用示例
//使用SDK调用接口 try { $c = new SaeTClient( WB_AKEY , WB_SKEY ,$_SESSION['oauth2']['oauth_token'] ,'' ); $order_id = 1234567891234567;//订单id(需要以order_id_pre开头(7位)即为支付ID(汇总信息页面) ) + (后9位id不能重复,以免订单号重复) 。)总长度必须为16位 $amount = 1; //交易金额 $desc = '在XX游戏中支付(1/100) 微币';//交易描述,最多50个汉字 。 $data= $c->pay_get_token( $order_id, $amount, $desc ) var_dump( $data ); } catch( Exception $e ) { var_dump($e); }
返回结果
JSON示例
//支付成功 {"token":"***", "order_uid":"***"}
XML示例
//支付成功 <result><token>***</token><order_uid>***</order_uid></result>
- 字段描述:
- token:订单token
- order_uid:交易人
如果缺少参数或者不正确,状态为HTTP 400,正确才会返回HTTP 200。下同。
错误情况的返回码描述
在参数验证错误,或请求非法时,根据不同的情况,会返回不同的错误码(error_code):
例如:
{"request":"http://10.73.14.130/pay/get_token.json","error_code":23610,"error":"sign is invalid!"}
error_code | error | 中文含义 |
---|---|---|
23601 | appkey has no privilege for pay! | 应用没有开通支付权限! |
23602 | order_id is null! | order_id参数为空! |
23603 | orderid_pre is null! | orderid_pre为空,没有获取到支付应用ID! |
23604 | order_id is invalid! | order_id格式非法! order_id必须为16位长,由两部分组成:支付应用ID (7位)+第三方订单号(9位)。 |
23605 | order_id is invalid! | order_id非法! 例如,使用一个已存在的订单号,但传递不同的amount、或不同的uid来请求token。 |
23606 | amount is invalid! | amount必须为1~500000分! |
23607 | desc is null! | desc不能为空! |
23608 | length of desc can't more 100! | desc长度必须小于100个字节(即50个汉字)! |
23609 | sign is null! | sign不能为空! |
23610 | sign is invalid! | sign经过md5计算后,不匹配! |
其他错误情况,为调用平台其他接口的返回值情况一样。例如没有传递source,会返回:
{"request":"http://10.73.14.130/pay/get_token.json","error_code":10006,"error":"source paramter(appkey) is missing"}
其他
- 无