支付场景:请求扫码支付的二维码串(支持支付宝、数字人民币、云闪付),公众号JS支付(支付宝,微信,数字人民币,云闪付),微信小程序支付(小程序直接发起支付,小程序调起通联小程序支付)。
营销场景:如果交易时上送了用户手机号/openid/外部会员ID等账号标识memberId时,会自动取该账号memberId下的商家+银行资产,静默核销账户资产后,剩下金额再执行支付收款。
适用场景:对接方通过接口直接调起微信、支付宝支付,无中间收银台界面,支付金额为静默执行营销活动后的实付金额。
如果是调用JS支付,需要在商户收银宝后台配置支付授权目录:https://dms.shopoint.cn/
该接口不支持阶梯分账(可正常收款,但不执行阶梯分账规则)。
method: allinpay.shopoint.orderService.unifiedPay
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqOrderNo |
String |
是 |
64 |
外部订单号 |
接入方必须保证唯一 |
shopId |
Integer |
是 |
11 |
店铺ID |
|
amount |
String |
是 |
14 |
订单金额 |
单位:元 |
idType |
String |
否 |
4 |
会员账号类型 |
1-手机号 2-会员卡号 3-Openid 4-会员动态码 5-外部会员ID 6-内部会员ID |
memberId |
String |
否 |
180 |
会员账号 |
|
payType |
String |
是 |
4 |
支付方式 |
W01-微信扫码支付 W02-微信JS支付 W06-微信小程序支付 W11-微信订单支付 A01-支付宝扫码支付 A02-支付宝JS支付 A03-支付宝APP支付 U01-银联扫码支付(CSB) U02-银联JS支付 S01-数币扫码支付 S03-数字货币H5 I01-聚合支付 IM01-微信小程序聚合支付 |
acctNo |
String |
否 |
180 |
支付平台用户标识 |
JS支付时使用: 微信支付-用户的微信openid 支付宝支付-用户user_id 微信小程序-用户小程序的openid 云闪付JS-用户userId |
subAppid |
String |
否 |
50 |
微信子appid |
微信小程序/微信公众号/APP的appid |
ipAddress |
String |
否 |
16 |
终端IP |
用户下单和调起支付的终端ip地址。云闪付JS支付不为空 |
splitList |
JSONArray |
否 |
1024 |
分账信息 |
参照附录7.2splitList字段说明 |
inAccountFlag |
String |
否 |
2 |
入金账户标识 |
0-余额户 1-储值卡专用户 |
splitFlag |
Integer |
否 |
2 |
分账标识 |
1-自动分账,默认1 2-不分账 3-延时分账 若上送2时,忽略接口上送的splitList;若上送3,则必须调用“3.5.23分账确认”接口完成分账和入账。 |
remark |
String |
否 |
160 |
备注 |
最大160个字节(80个中文字符)。 禁止出现+,空格,/,?,%,#,&,=这几类特殊符号 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
||
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
||
msg |
String |
是 |
200 |
错误信息 |
|
||
data |
reqOrderNo |
String |
是 |
64 |
外部订单号 |
|
|
orderCode |
String |
是 |
40 |
数字营销订单号 |
|
||
transTime |
String |
是 |
19 |
下单时间 |
时间格式:yyyy-dd-MM HH:mm:ss |
||
shopCode |
String |
否 |
20 |
店铺号 |
与shopId功能相同,shopId和shopCode同时输入则只取shopId,二者必输一个 |
||
shopName |
String |
否 |
50 |
店铺名称 |
|
||
amount |
String |
是 |
14 |
订单金额 |
单位:元 |
||
paymentFrom |
Integer |
否 |
4 |
支付来源 |
0-微信支付,1-支付宝支付,3-云闪付,7-数字人民币,99-全抵扣,100-聚合支付 |
||
paymentAmount |
String |
否 |
14 |
支付金额 |
单位:元 |
||
trxId |
String |
否 |
30 |
渠道支付流水号 |
|
||
score |
Integer |
否 |
11 |
积分抵扣数量 |
|
||
scoreAmount |
String |
否 |
14 |
积分支付金额 |
单位:元 |
||
bankScore |
Integer |
否 |
11 |
银行积分抵扣数量 |
|
||
bankScoreAmount |
String |
否 |
14 |
银行积分抵扣金额 |
单位:元 |
||
balanceAmount |
String |
否 |
14 |
余额支付金额 |
单位:元 |
||
transStatus |
Integer |
是 |
4 |
交易状态 |
1-下单成功,2-支付成功,3-下单失败 |
||
payInfo |
Sting |
否 |
不限 |
支付串 |
扫码支付返回二维码串; JS支付返回json字符串,云闪付的JS支付返回支付的链接,商户只需跳转到此链接即可完成支付; 支付宝App支付返回支付信息串; 聚合支付返回支付链接,跳转到此链接进行支付; 小程序聚合支付返回json串,商户小程序跳转至appid小程序的paypath进行支付 |
||
discountList |
ArrayList |
否 |
|
优惠抵扣信息 |
|
||
couponNo |
String |
否 |
32 |
券号 |
11*****1111 |
||
couponType |
Integer |
否 |
4 |
券类型 |
0-金额券,2-计次券,3-满减券 |
||
couponName |
String |
否 |
50 |
券名称 |
|
||
amount |
String |
否 |
14 |
抵扣金额 |
单位元 |
||
bankSubsidyAmount |
String |
否 |
14 |
银行补贴金额 |
单位:元 |
||
initAmount |
String |
否 |
14 |
面额 |
单位:元 |
请求示例
响应示例
调起通联小程序支付流程:
1. 请求参数的支付方式 `paytype` 上送 “IM01”,并调用接口 3.5.14 获取支付信息。
2. 接收返回的 `payinfo`,其中包含通联小程序的 `appid` 和支付路径 `paypath`。
3. 使用接口返回的参数调起通联小程序发起支付,代码示例如下:
4. 支付完成或失败后,通联小程序前端通过 `extraData` 返回 `payStatus` 给来源小程序,具体值为:
- "0":支付失败
- "1":支付成功
- "2":用户取消支付
5. 来源小程序结合以上结果和后台查询的支付结果状态实现具体的业务需求,建议来源小程序调用查询接口主动查询订单结果。
具体业务需求建议:
- 在接收到 `payStatus` 结果后,来源小程序应调用查询接口确认订单支付结果,以确保支付结果的准确性。
- 实现支付结果的业务逻辑处理,包括支付成功、失败、用户取消支付等情况的处理。
注意事项:
- 确保传递的参数符合接口要求,尤其是 `paytype` 参数必须为 “IM01”。
- 小程序支付路径 `paypath` 和 `appid` 应从返回的 `payinfo` 中获取并正确使用。