接口描述

业务通过统一下单接口可以发起任意三方支付渠道的支付订单。业务系统不必关心该如何调用三方支付,统一下单接口会根据业务系统选择的支付渠道ID,选择对应支付渠道的支付产品,发起下单请求,然后响应给业务系统支付请求所需参数。

业务流程

XxPay统一下单流程

接口链接

测试URL地址:http://api.xxpay.org/api/pay/create_order

注意:以上测试地址为XxPay官方提供,可通过测试商户,去三方支付渠道下单。

测试商户:

mchId ReqKey ResKey
20001223 M86l522AV6q613Ii4W6u8K48uW8vM1N6bFgyv769220MdYe9u37N4y7rI5mQ Hpcl522AV6q613KIi46u6g6XuW8vM1N8bFgyv769770MdYe9u37M4y7rIpl8

请求参数

字段名 变量名 必填 类型 示例值 描述
商户ID mchId String(30) 20001222 支付中心分配的商户号
商户订单号 mchOrderNo String(30) 20160427210604000490 商户生成的订单号
渠道ID channelId String(24) WX_JSAPI 见支付渠道参数
币种 currency String(3) cny 三位货币代码,人民币:cny
支付金额 amount int 100 支付金额,单位分
客户端IP clientIp String(32) 210.73.10.148 客户端IP地址
设备 device String(64) ios10.3.1 客户端设备
支付结果回调URL notifyUrl String(200) http://shop.xxpay.org/notify.htm 支付结果回调URL
商品主题 subject String(64) xxpay测试商品1 商品主题
商品描述信息 body String(256) xxpay测试商品描述 商品描述信息
扩展参数1 param1 String(64) 支付中心回调时会原样返回
扩展参数2 param2 String(64) 支付中心回调时会原样返回
附加参数 extra String(512) {“openId”:”o2RvowBf7sOVJf8kJksUEMceaDqo”} 特定渠道发起时额外参数,见下面说明
签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法

extra参数说明

当请求参数channelId = WX_JSAPI (微信公众号支付)时,openId参数必填,对应用户所在微信公众号的openId。

  1. {"openId":"o2RvowBf7sOVJf8kJksUEMceaDqo"}

当请求参数channelId = WX_NATIVE (微信原生扫码支付)时,productId参数必填,对应业务系统定义的商品ID。

  1. {"productId":"120989823"}

当请求参数channelId = ALIPAY_WAP (支付宝WAP支付)时,可传参数ali_show_url,表示用户付款中途退出返回商户网站的地址。不传默认地址为:www.xxpay.org。

  1. {"ali_show_url":"http://www.xiaoshuding.com"}

当请求参数channelId = ALIPAY_PC (支付宝PC支付)时,可传参数qr_pay_mode、qrcode_width。

  1. {"qr_pay_mode":"4", "qrcode_width":"200"}

qr_pay_mode:扫码支付的方式,支持前置模式和跳转模式(4:直接显示二维码,2:跳转模式)默认为4。
qrcode_width:当qr_pay_mode=4时,该参数生效,表示二维码宽度。

返回结果

字段名 变量名 必填 类型 示例值 描述
返回状态码 retCode String(16) SUCCESS SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看resCode来判断
返回信息 retMsg String(128) 签名失败 返回信息,如非空,为错误原因 签名失败 参数格式校验错误
以下字段在retCode为SUCCESS的时候有返回
字段名 变量名 必填 类型 示例值 描述
业务结果 resCode String(16) SUCCESS SUCCESS/FAIL
错误代码 errCode String(32) SYSTEMERROR 错误码
错误代码描述 errCodeDes String(128) 系统错误 结果信息描述
以下字段在retCode和resCode都为SUCCESS的时候有返回
字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(32) 20160427210604000490 支付中心生成的订单号
预支付标识 prepayId String(64) wx201410272009395522657a690389285100 第三方支付公司返回的预支付标识
跳转第三方支付URl payUrl String(200) http://url 支付中心生生成跳转第三方支付页面的URL地址
跳转第三方支付方法 payAction String(20) POST 跳转第三方支付页面要求的方法
跳转第三方支付参数 payParams String(500) 该字段不参与签名,当payAction=POST时,该参数有值,JSON格式数据,跳转第三方支付页面需要传递的参数
签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法
当请求参数channelId=WX_JSAPI(微信公众号支付)时,回JSON格式数据,如:
  1. {
  2. "sign": "24F5916D6B1AB64918B3BF7250693813",
  3. "payOrderId": "P2016081612553098759124940",
  4. "retCode": "SUCCESS",
  5. "retMsg": "",
  6. "resCode": "SUCCESS",
  7. "prepayId": "wx201608161255321fc59e085b0578219742",
  8. "payParams": {
  9. "appId": "wx0ab67caf7f591834",
  10. "timeStamp": 1471323332,
  11. "signType": "MD5",
  12. "package": "prepay_id=wx201608161255321fc59e085b0578219742",
  13. "nonceStr": "08s06nujam43aot3tbl555lavvydl178",
  14. "paySign": "21E6BF4984030DBD2DB191F676A47DA2"
  15. }
  16. }
字段名 变量名 必填 类型 示例值 描述
微信签名 paySign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名算法,调取微信支付时用到的签名值
应用ID appId String(32) wx8888888888888888 微信开放平台审核通过的应用APPID
签名算法 signType String(32) 1900000109 签名算法,暂支持MD5
扩展字段 package String(128) prepay_id=wx201608161255321fc59e085b0578219742 扩展字段
随机字符串 nonceStr String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位
时间戳 timeStamp String(10) 1412000000 时间戳,10位
当请求参数channelId=WX_NATIVE(微信公众号扫码支付)时,回JSON格式数据,如:
  1. {
  2. "sign": "3424ED83034B20CF17961720FE272A94",
  3. "payOrderId": "pay2016081613050939023127932",
  4. "retCode": "SUCCESS",
  5. "retMsg": "",
  6. "codeUrl": "weixin://wxpay/bizpayurl?pr=sHYHnns",
  7. "resCode": "SUCCESS",
  8. "payItemId": "6020007",
  9. "prepayId": "wx20160816130510b9688b1a720825571177"
  10. }
字段名 变量名 必填 类型 示例值 描述
二维码链接 codeUrl String(200) weixin://wxpay/s/Anp43md 可将该参数值生产二维码展示
当请求参数channelId=WX_APP(微信APP支付),返回JSON格式数据,如:
  1. {
  2. "sign": "37343EE31A118185337D0ECA502B33D5",
  3. "payOrderId": "pay2016081611532546033924463",
  4. "retCode": "SUCCESS",
  5. "retMsg": "",
  6. "resCode": "SUCCESS",
  7. "prepayId": "wx2016081611532915ae15beab0167893571",
  8. "payParams": {
  9. "sign": "159ABABAE6F8A0F4641A34A38251E7BB",
  10. "timestamp": 1471319614,
  11. "noncestr": "mhctew72bf3kfrr4jmv79zigbpgrmv5h",
  12. "partnerid": "1367655402",
  13. "prepayid": "wx2016081611532915ae15beab0167893571",
  14. "package": "Sign=WXPay",
  15. "appid": "wxa095d1d71c33c151"
  16. }
  17. }
字段名 变量名 必填 类型 示例值 描述
微信签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名算法,调取微信支付时用到的签名值
应用ID appid String(32) wx8888888888888888 微信开放平台审核通过的应用APPID
商户号 partnerid String(32) 1900000109 微信支付分配的商户号
扩展字段 package String(128) Sign=WXPay 暂填写固定值Sign=WXPay
随机字符串 noncestr String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位
时间戳 timestamp String(10) 1412000000 时间戳,10位