统一下单
统一下单
业务通过统一下单接口可以发起任意三方支付(微信支付宝支付系统)渠道的支付订单。业务系统不必关心该如何调用三方支付,统一下单接口会根据业务系统选择的支付渠道ID,选择对应支付渠道的支付产品,发起下单请求,然后响应给业务系统支付请求所需参数。
对于商户APP,商户发送支付请求到支付中心后,支付中心向商户返回加密数据且不向三方支付发送消息。商户利用接收到的加密数据调用三方支付的SDK,向三方支付发起支付请求。当支付中心收到三方支付 的支付消息后,支付中心通知商户支付结果。
关于微信支付宝的更多文档请访问如下链接:
API 请求
端点
https://api.iotpaycloud.com/v1/create_order
方法
POST
头部
Content-Type: application/x-www-form-urlencoded
参数说明
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | mchId | 是 | String(30) | 10000701 | 支付中心分配的商户号 |
商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的订单号,请保证唯一性 |
渠道ID | channelId | 是 | String(24) | WX_JSAPI | 见支付渠道参数 |
币种 | currency | 是 | String(3) | CAD | 三位货币代码,加币:CAD |
支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
客户端IP | clientIp | 是 | String(32) | 210.73.10.148 | 客户端IP地址 |
设备 | device | 否 | String(50) | WEB | 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB" |
结果回调URL | notifyUrl | 是 | String(200) | http://xxx.com/notify.php | 支付结果回调URL,勿包含? |
商品主题 | subject | 是 | String(64) | 测试商品 | 商品主题 |
商品描述信息 | body | 是 | String(255) | xxpay测试商品描述 | 商品描述信息 |
扩展参数1 | param1 | 否 | String(64) | 该参数可忽略 | |
扩展参数2 | param2 | 否 | String(64) | 支付中心回调时会原样返回 | |
附加参数 | extra | 是 | String(512) | 微信小程序,WX_APP,WX_NATIVE需要 | |
结束跳转URL | returnUrl | 否 | String(200) | WX_JSAPI , ALIPAY_PC , ALIPAY_WAP 需要 | 支付结束跳转URL,勿包含? |
子账号 | jobNo | 是 | String(50) | 商户登录名 | |
附言 | remarks | 否 | String(200) | 商户的附言 | |
签名 | sign | 是 | String(32) | C380BEC2BF3519F3AD6 | 签名值,详见签名算法 |
参数示例
params={"amount":1,"mchId":"10000000","mchOrderNo":"9af01329f1ec4c4694631b077a0e8573","subject":"商品支付主题","sign":"F64C43C1487C7C0DA93DA93DD2961FA2","body":"商品支付内容","param1":"","param2":"","clientIp":"127.0.0.1","extra":"{\"openId\":\"o2RvowBf7sOVJf8kJksUEMceaDqo\", \"type\":\"minipay\",\"appId\":\"xxxxxxxxx\"}","notifyUrl":"http://ngrok.4jicao.com/goods/payNotify","currency":"CAD","device":"WEB","channelId":"WX_JSAPI"}
附加参数extra说明
小程序支付(WX_JSAPI)
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
附加参数 | extra | 是 | JSON | {"openId":"o2RvowBf7sOVJf8kJksUEMceaDqo", "type":"minipay","appId":"xxxxxxxxx"} | openid,type,appId为必填。 |
微信App支付(WX_APP)
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
附加参数 | extra | 是 | JSON | {"type":"apppay","appId":"xxxxxxxxx"} | type,appId为必填。 |
微信原生扫码支付(WX_NATIVE)
productId参数必填,对应业务系统定义的商品ID。
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
附加参数 | extra | 是 | JSON | {"productId":"120989823"} | 对应业务系统定义的商品ID。 |
注意
当notify回传时,参数"mchOrderNo"被放入"param1","parma1"在发起订单时不要填入参数,否则回传时被覆盖。
支付完成后仍需根据notify判断是否支付成功或失败
返回结果
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
返回状态码 | retCode | 是 | String | SUCCESS | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看resCode来判断 |
返回信息 | retMsg | 否 | String | 签名失败 | 返回信息,如非空,为错误原因 签名失败 参数格式校验错误 |
签名 | sign | 是 | String |
channelId=ALIPAY_PC or ALIPAY_WAP or UPI_SEQ
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
支付订单ID | payOrderId | 是 | String | 支付订单ID | |
跳转url | payUrl | 是 | String | 跳转到此地址,直接echo该参数,或者redirect到扩展参数中的url | |
扩展参数 | retParams | 是 | Array | for ALIPAY_WAP, 跳转至retParams.alipayUrl, for UPI_SEQ, 跳转至retParams.unionpayUrl |
channelId=ALIPAY_QR
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
支付订单ID | payOrderId | 是 | String | 支付订单ID | |
二维码code | qr_code | 是 | String | 商家根据qr_code生成二维码,让用户使用支付宝扫码 |
channelId=WX_NATIVE
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
支付订单ID | payOrderId | 是 | String | 支付订单ID | |
二维码code | codeUrl | 是 | String | 商家根据codeUrl生成二维码,让用户使用微信扫码 | |
预支付标识 | prepayId | 是 | String | 第三方支付公司返回的预支付标识 |
channelId=CC_PAX
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
附加参数 | extra | y | String(json) | {"cardType": "M", "cardNum": "XXXXXXXX1166", "expireDate": "1022"} | credit card transaction info |
参数示例
"extra":"{\"cardType\":\"M\",\"cardNum\":\"XXXXXXXX1166\",\"expireDate\":\"1022\",\"emvLabel\":\"MASTERCARD\",\"emvAID\":\"A0000000041010\",\"emvTVR\":\"0000008000\",\"emvTSI\":\"0000\",\"emvTC\":\"ARQC: 3D36ACBD44BE512B\",\"termNum\":\"25957\",\"bankTermNum\":\"40880013\",\"termInvoiceNum\":\"724172\",\"seqNum\":\"000001000061\",\"authNum\":\"01046Z\",\"batchNum\":\"0008\",\"trxMethod\":\"T\",\"accountType\":\"\",\"receiptDisp\":\"000 Approved 00 Thank You\",\"cashbackAmount\":\"\",\"timeStamp\":\"20210120-19402057\",\"surchargeAmount\":\"\",\"langCode\":\"E\",\"trxDate\":\"01202021\",\"trxTime\":\"164033\",\"cvmResults\":\"1F0302\",\"trxCode\":\"00\"}"