支付
# 接口说明
该接口为接入商家提供消费购买的功能。
# 请求路径
`/api/v5/createorder`
# 请求参数
| 参数 | 类型 | 必填 | 描述 |
| ------------- | ----- | --- | ------------------------------------------------------------ |
| paymentBrand | String|是 | 支付品牌,参考 [交易场景和支持品牌](#5) |
| tradeFrom | String|是 | 交易场景,参考 [交易场景和支持品牌](#5)|
| orderNum | String|是 | 订单号:商户自行定义,需保证同一商户号下订单号不能重复|
| orderAmount | String|是 | 订单金额:如 100 元,表示为 100 或 100.00 |
| orderCurrency | String|是 | 订单币种:ISO标准。如:人民币填写“CNY”,美元填写"USD" |
| frontURL | String|是 | 支付完成后前端跳转到该URL。GET请求,参数详见[3.3 支付结果通知(回调)](#33-支付结果通知-回调) |
| backURL | String|是 | 支付结果异步通知到该URL。支付成功后,GoAllPay 会以 POST JSON 方式调用 backURL 通知支付结果(详见[3.3 支付结果通知(回调)](#33-支付结果通知-回调))。商户在接收到通知后,需响应字符串“OK”。<br>如果没有收到商户响应“OK”,GoAllPay将会过一段时间后重新推送,时间间隔为[15, 15, 15, 30, 180, 1800, 3600, 7200, 14400],单位为秒。 |
| merID | String|是 | 商户 ID,由 GoAllPay 分配 |
| goodsInfo | String|是 | 商品信息。注意不要包含特殊符号,如 "#","&","+" 等 |
| detailInfo | String|是 | 商品明细。<br>格式:[{"goods_name":"iPhone X","quantity":"2"},{"goods_name":"iPhone 8","quantity":"4"}],需Base64编码后上送。注意goods_name不要包含特殊符号,如 "#","&","+" 等 |
| transTime | String|是 | 交易时间,格式:"yyyyMMddHHmmss" |
| merReserve | String|否 | 预留内容,商户自定义。注意不要包含特殊符号,如 "#","&","+" 等 |
| osType | String|是 | 用户操作系统类型。<br>"IOS","ANDROID","HARMONYOS","WINDOWS","MAC","OTHER" 选其中一个上送 |
| osVersion | String|否 | 用户操作系统版本。示例:"10.0.19043" |
| userIP | String|是 | 用户IP |
| userID | String|是 | 用户在商家的唯一ID |
| logisticsStreet| String|是 | 收货地址。若为虚拟物品,填写用户邮箱地址 |
| openid | String|否 | 仅适用于微信小程序支付场景 |
| signType | String|是 | SHA256 |
| signature | String|是 | 签名 |
# 响应参数
| 参数 | 类型 | 必填 | 描述 |
| --------- | -------| ---- | ------------------------------------------------------------ |
| respCode | String | 是 | 应答码,00表示请求成功 |
| respMsg | String | 是 | 应答信息 |
| merID | String | 否 | 商户ID |
| orderNum | String | 否 | 订单号 |
| transID | String | 否 | GoAllPay流水号 |
| parameter | Object | 否 | 支付相关参数。RespCode为00且非后台支付模式时返
**响应参数`parameter`说明:**
(1) H5/WEB/JSAPI交易场景(tradeFrom=`H5`,`WEB`,`JSAPI`)
| 参数 | 类型 | 必填 | 描述 |
| -------- | ------ | ---- | ------------------------------- |
| payUrl | String | 否 | 支付URL |
(2) APP交易场景(tradeFrom=`APP`)
| 参数 | 类型 | 必填 | 描述 |
| -------- | ------ | ---- | --------------------------------------------------------- |
| tn | String | 否 | 交易流水号,作为调起 sdk 支付的参数 |
获取到tn后,根据[APP对接文档](AllPay_Integration_Specification_CH.md#6-app模式对接文档)调用SDK进行支付。
(3) APPLET交易场景(tradeFrom=`APPLET`)
| 参数 | 类型 | 必填 | 描述 |
| ---------- | ------ | ---- | ------------------------------------------------------ |
| sdk_params | Object | 否 | 小程序支付所需参数 |
(4) QRCODE交易场景(tradeFrom=`QRCODE`)
| 参数 | 类型 | 必填 | 描述 |
| -------- | ------ | ---- | ------------------------------- |
| code_url | String | 否 | 二维码字符串 |
(5) QUICK交易场景(tradeFrom=`QUICK`)
| 参数 | 类型 | 必填 | 描述 |
| -------- | ------ | ---- | ------------------------------- |
| payUrl | String | 否 | 收银台URL |
<a id ="5"></a>
# 交易场景和支持品牌
tradeFrom|支持paymentBrand列表|交易示例
---|---|---
H5|unionpay,alipay_cn,alipay_hk,...|[报文示例](https://easydoc.net/doc/76754915/bxVAhiI6/MAkFXbfC#H5_PAYMENT)
WEB|alipay_cn,alipay_hk,...
APP|unionpay,wechat_pay,alipay_cn,alipay_hk,...|[报文示例](https://easydoc.net/doc/76754915/bxVAhiI6/MAkFXbfC#APP_PAYMENT)
JSAPI|wechat_pay,alipay_cn
APPLET|wechat_pay,alipay_cn
QRCODE|unionpay,wechat_pay,alipay_cn,....
QUICK|wechat_pay