# 统一下单

# 统一下单

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

An image

对于商户APP,商户发送支付请求到支付中心后,支付中心向商户返回加密数据且不向三方支付发送消息。商户利用接收到的加密数据调用三方支付的SDK,向三方支付发起支付请求。当支付中心收到三方支付 的支付消息后,支付中心通知商户支付结果。

An image

关于微信支付宝的更多文档请访问如下链接:

# 请求URL

服务地址: 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) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法

# 参数示例

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

field name required type sample description
extra y String(json) {"cardType":"M","cardNum":"XXXXXXXXXXXX1166","expirDate":"1022"} credit card transaction info

# 参数示例

"extra":"{\"cardType\":\"M\",\"cardNum\":\"XXXXXXXXXXXX1166\",\"expirDate\":\"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\"}"

# 下单测试

统一下单测试点击这里 源码下载 下载

扫码(商家扫用户)下单测试点击这里 源码下载 下载

在线签名检查

上次更新: 1/26/2021, 4:10:48 PM