目录
3.6 订单支付
3.5.9订单查询
根据商户订单号、订单号或渠道支付流水号查询订单明细。ISV订单查询只支持根据外部订单号查询。
method:
非ISV订单查询:allinpay.shopoint.orderService.orderQuery
ISV订单查询:allinpay.shopoint.orderService.isvOrderQuery
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqOrderNo |
String |
否 |
64 |
外部订单号 |
三选一,同时传则取orderCode进行查询。对于全抵扣订单,不支持使用trxId进行查询。推荐使用orderCode进行查询。 |
orderCode |
String |
否 |
40 |
数字营销订单号 |
|
trxId |
String |
否 |
30 |
支付流水号 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
||
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 |
||
shopId |
String |
否 |
11 |
店铺ID |
|
||
shopCode |
String |
否 |
20 |
店铺号 |
与shopId功能相同,shopId和shopCode同时输入则只取shopId,二者必输一个 |
||
shopName |
String |
否 |
50 |
店铺名称 |
|
||
customerId |
Integer |
否 |
11 |
会员ID |
数字营销系统会员编号 |
||
openId |
String |
否 |
180 |
用户openid |
|
||
amount |
String |
是 |
14 |
订单金额 |
单位:元 |
||
giveScores |
Integer |
否 |
11 |
返积分值 |
|
||
score |
Integer |
否 |
11 |
积分抵扣数量 |
|
||
scoreAmount |
String |
否 |
14 |
积分支付金额 |
单位:元 |
||
bankScore |
Integer |
否 |
11 |
银行积分抵扣数量 |
|
||
bankScoreAmount |
String |
否 |
14 |
银行积分抵扣金额 |
单位:元 |
||
balanceAmount |
String |
否 |
14 |
余额支付金额 |
单位:元 |
||
orderRemark |
String |
否 |
200 |
订单备注 |
|
||
paymentStatus |
Integer |
是 |
4 |
支付状态 |
1-支付中,2-已支付,3-支付失败 |
||
fee |
String |
否 |
14 |
手续费 |
单位:元 |
||
paymentFrom |
Integer |
否 |
4 |
支付来源 |
0-微信支付,1-支付宝支付,2-手机QQ支付,3-云闪付 |
||
paymentAmount |
String |
否 |
14 |
支付金额 |
单位:元 |
||
trxId |
String |
否 |
30 |
渠道支付流水号 |
|
||
discountList |
ArrayList |
否 |
|
优惠抵扣信息 |
|
||
couponNo |
String |
否 |
32 |
券号 |
|
||
couponType |
Integer |
否 |
4 |
券类型 |
0-金额券,2-计次券,3-满减券 |
||
couponName |
String |
否 |
50 |
券名称 |
|
||
initAmount |
String |
否 |
14 |
面额 |
单位:元 |
||
amount |
String |
否 |
14 |
抵扣金额 |
单位:元 |
||
bankSubsidyAmount |
String |
否 |
14 |
银行补贴金额 |
单位:元 |
||
startValidityPeriod |
String |
否 |
19 |
有效开始日期 |
时间格式:yyyy-dd-MM HH:mm:ss |
||
endValidityPeriod |
String |
否 |
19 |
有效截止日期 |
时间格式:yyyy-dd-MM HH:mm:ss |
||
couponStatus |
String |
否 |
10 |
券状态 |
有效、已核销 |
||
giveCouponList |
ArrayList |
否 |
|
返券信息 |
|
||
couponNo |
String |
否 |
32 |
券号 |
11*****1111 |
||
couponType |
Integer |
否 |
4 |
券类型 |
0-金额券,2-计次券,3-满减券 |
||
couponName |
String |
否 |
50 |
券名称 |
|
||
initAmount |
String |
否 |
14 |
面额 |
单位:元 |
||
splitDetailList |
ArrayList |
否 |
|
分账明细 |
|
||
shopId |
Integer |
否 |
11 |
店铺ID |
|
||
shopName |
String |
否 |
50 |
店铺名称 |
|
||
amount |
String |
否 |
14 |
分账实付金额 |
单位:元 |
||
discountAmount |
String |
否 |
14 |
优惠金额 |
单位:元 |
||
fee |
String |
否 |
14 |
手续费 |
单位:元 |
请求示例
待补充
响应示例
待补充
3.5.10订单退款
根据原交易商户订单号、订单号或渠道支付流水号进行退款,支持部分退款。
特别说明:
1、存在优惠抵扣、积分和钱包的非分账订单不支持部分退款
2、ISV订单退款只支持根据外部订单号退款
3、存在优惠抵扣、积分和钱包的分账订单,收款店铺分账部分不支持部分退款
method:
非ISV订单退款:allinpay.shopoint.orderService.refund
ISV订单退款:allinpay.shopoint.orderService.isvRefund
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqRefundNo |
String |
是 |
64 |
外部退款单号 |
必须保证唯一 |
reqOrderNo |
String |
否 |
64 |
原外部订单号 |
三选一,同时传则取orderCode进行处理。对于全抵扣订单,不支持使用trxId进行退款。推荐使用orderCode进行退款。 |
orderCode |
String |
否 |
40 |
数字营销订单号 |
|
trxId |
String |
否 |
30 |
支付流水号 |
|
amount |
String |
否 |
14 |
退款金额 |
存在优惠抵扣、积分和钱包的非分账订单不支持部分退款 |
splitList |
JSONArray |
否 |
1024 |
分账退款信息 |
相见附录7.2 splitList字段说明。 分账订单退款使用,整单退不传。部分退时,若不传,则按退款金额与总金额的比例挨个从分账中退款。 |
noSplitAmount |
String |
否 |
14 |
退款未分账金额 |
预留字段,暂不可用 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
|
msg |
String |
是 |
200 |
错误信息 |
|
|
data |
reqOrderNo |
String |
是 |
64 |
原交易外部订单号 |
|
orderCode |
String |
是 |
40 |
数字营销原交易订单号 |
|
|
refundNo |
String |
是 |
40 |
数字营销退款订单号 |
|
|
amount |
String |
否 |
14 |
退款金额 |
单位:元 |
|
trxId |
String |
否 |
30 |
渠道退款流水号 |
|
|
refundStatus |
Integer |
是 |
4 |
退款状态 |
1-退款中,2-退款成功,3-退款失败 |
|
refundTime |
String |
是 |
19 |
退款时间 |
时间格式:yyyy-dd-MM HH:mm:ss |
|
errMsg |
String |
否 |
200 |
失败描述 |
|
|
fee |
String |
否 |
14 |
手续费 |
单位:元 |
请求示例
{ “reqOrderNo”:”32132132132131”,” orderCode”:”11121212”}
响应示例
{
"code": 0,
"data": {
"reqOrderNo": “1212121212121”,
"orderCode": “1212121212121”,
"refundNo": “0000”,
"amount": “100”
}
"token": "DlRXdIjEBLRLCJgwTP37sZW6ls--NflxVS2-KUHl"
}
3.5.11退款订单查询
根据退款单号查询退款信息。ISV退款订单查询只支持根据外部退款单号查询。
method:
非ISV退款订单查询:allinpay.shopoint.orderService.refundQuery.v2
ISV退款订单查询:allinpay.shopoint.orderService.isvRefundQuery
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqRefundNo |
String |
否 |
64 |
外部退款单号 |
三选一,同时传则取refundNo进行查询。对于全抵扣退款订单,不支持使用trxId进行查询。推荐使用refundNo进行查询。 |
refundNo |
String |
否 |
40 |
数字营销退款订单号 |
|
trxId |
String |
否 |
30 |
退款流水号 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
||
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
||
msg |
String |
是 |
200 |
错误信息 |
|
||
data |
reqOrderNo |
String |
是 |
64 |
原交易商户订单号 |
|
|
refundNo |
String |
是 |
40 |
数字营销退款订单号 |
|
||
amount |
String |
是 |
14 |
退款订单金额 |
单位:元 |
||
refundStatus |
Integer |
是 |
4 |
退款状态 |
1-退款中,2-退款成功,3-退款失败 |
||
refundTime |
String |
是 |
19 |
退款时间 |
格式:yyyy-MM-dd HH:mm:ss |
||
orderCode |
String |
是 |
40 |
原交易订单号 |
|
||
trxId |
String |
否 |
30 |
渠道退款流水号 |
|
||
srcAmount |
String |
是 |
14 |
原交易金额 |
单位:元 |
||
errMsg |
String |
否 |
200 |
失败描述 |
|
||
fee |
String |
否 |
14 |
手续费 |
单位:元 |
||
splitRefundList |
ArrayList |
否 |
|
分账退款明细 |
|
||
shopId |
Integer |
否 |
11 |
店铺ID |
|
||
shopName |
Strinig |
否 |
50 |
店铺名称 |
|
||
amount |
String |
否 |
14 |
分账实退金额 |
单位:元 |
||
fee |
String |
否 |
14 |
退手续费 |
单位:元 |
请求示例
待补充
响应示例
待补充
3.5.12统一扫码
使用场景:扫一扫付款二维码,获取付款二维码内容调用此接口进行收款。支持微信、支付宝、手机qq、银联规范付款二维码。当结果码为支付中时,商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议40秒)。
本交易支持一码付。
该接口不支持阶梯分账(可正常收款,但不执行阶梯分账规则)。
method: allinpay.shopoint.orderService.scanQrPay
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqOrderNo |
String |
是 |
64 |
外部订单号 |
接入方必须保证唯一 |
shopId |
Integer |
否 |
11 |
店铺ID |
|
shopCode |
String |
否 |
20 |
店铺编号 |
shopId与shopCode必传其一 |
amount |
String |
是 |
14 |
订单金额 |
单位:元 |
idType |
String |
否 |
4 |
会员账号类型 |
1-手机号 2-会员卡号 3-Openid 4-会员动态码 5-外部会员ID 6-内部会员ID |
memberId |
String |
否 |
180 |
会员账号 |
|
authcode |
String |
是 |
200 |
支付授权码 |
如微信,支付宝,银联的付款二维码 |
termInfo |
String |
否 |
200 |
终端信息 |
终端信息的json字符串,详见附录7.1终端信息字段说明 |
orderTitle |
String |
否 |
100 |
订单标题 |
订单商品名称 |
remark |
String |
否 |
160 |
备注 |
禁止出现+,空格,/,?,%,#,&,=这几类特殊符号 |
splitList |
JSONArray |
否 |
1024 |
分账信息 |
参照附录7.2splitList字段说明 |
inAccountFlag |
String |
否 |
2 |
入金账户标识 |
0-余额户 1-储值卡专用户 |
splitFlag |
Integer |
否 |
2 |
分账标识 |
1-自动分账,默认1 2-不分账 3-延时分账 若上送2时,忽略接口上送的splitList;若上送3,则必须调用“3.5.23分账确认”接口完成分账和入账。 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
||
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-支付宝支付,2-手机QQ支付,3-云闪付,7-数字人民币,99-全抵扣 |
||
paymentAmount |
String |
否 |
14 |
支付金额 |
单位:元 |
||
trxId |
String |
否 |
30 |
渠道支付流水号 |
|
||
score |
Integer |
否 |
11 |
积分抵扣数量 |
|
||
scoreAmount |
String |
否 |
14 |
积分支付金额 |
单位:元 |
||
bankScore |
Integer |
否 |
11 |
银行积分抵扣数量 |
|
||
bankScoreAmount |
String |
否 |
14 |
银行积分抵扣金额 |
单位:元 |
||
balanceAmount |
String |
否 |
14 |
余额支付金额 |
单位:元 |
||
paymentStatus |
Integer |
是 |
4 |
支付状态 |
1-支付中,2-已支付,3-支付失败 |
||
fee |
String |
否 |
14 |
手续费 |
单位:元 |
||
giveScores |
Integer |
否 |
11 |
返积分值 |
|
||
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 |
面额 |
单位:元 |
||
giveCouponList |
ArrayList |
否 |
|
返券信息 |
|
||
couponNo |
String |
否 |
32 |
券号 |
11*****1111 |
||
couponType |
Integer |
否 |
4 |
券类型 |
0-金额券,2-计次券,3-满减券 |
||
couponName |
String |
否 |
50 |
券名称 |
|
||
initAmount |
String |
否 |
14 |
面额 |
单位:元 |
请求示例
响应示例
3.5.13终端信息采集
在进行交易前,需要通过此接口进行终端信息报备,否则可能存在无法交易等情况。开通资金分账功能的机构店铺进行终端报备时,建议上送termSn和shopId字段,以自动完成商户信息与终端信息的相关绑定。若未上送shopId,则默认不做该绑定。
method: allinpay.shopoint.orderService.addTerm
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
mchtCd |
String |
否 |
15 |
商户号 |
|
termNo |
String |
是 |
8 |
终端号 |
8位数字,商户下唯一 |
deviceType |
String |
是 |
2 |
设备类型 |
01:自动柜员机(含 ATM 和 CDM)和多媒体自助终端 02:传统 POS 03:mPOS 04:智能 POS 05:II 型固定电话 06:云闪付终端; 07:保留使用; 08:手机 POS; 09:刷脸付终端; 10:条码支付受理终端; 11:条码支付辅助受理终端; 12:行业终端(公交、地铁用于指定行业的终端); 13:MIS 终端; |
termSn |
String |
否 |
50 |
终端序列号 |
终端类型(deviceType)填写为 02、03、04、05、06、08、09 或 10时,必须填写终端序列号。 |
operationType |
String |
是 |
2 |
操作类型 |
取值范围:00:新增;01:修改;02:注销;(注销时,仅需上送termNo字段) |
termState |
String |
是 |
2 |
终端状态 |
取值范围:00:启用;01:注销;注:终端注销时非必填 |
termAddress |
String |
是 |
100 |
终端地址 |
省-市-区-详细地址,详细地址长度控制在 30 个汉字以内。注:终端注销时非必填 |
shopId |
Integer |
否 |
11 |
店铺ID |
mchtCd与shopId不能同时为空,mchtCd为空时,shopId的店铺需要开通支付。 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
code |
Integer |
是 |
4 |
返回码 |
0:表示报备受理成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
msg |
String |
是 |
200 |
错误信息 |
|
请求示例
待补充
响应示例
待补充
3.5.14统一支付
支付场景:请求扫码支付的二维码串(支持支付宝、数字人民币、云闪付),公众号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` 中获取并正确使用。
3.5.15 ISV收银台
根据传入的shopId返回跳转到智慧小店ISV收银台或者智慧门店ISV收银台的地址,再由对接方跳转到该地址
如果对接方为通惠,则shopId为通惠关联的智慧小店或者智慧门店的店铺
如果对接方为智慧门店,则shopId为机构自身的店铺或者子机构的店铺
该接口不支持阶梯分账(可正常收款,但不执行阶梯分账规则)。
method: allinpay.shopoint.orderService.isvCheckout
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
oid |
String |
是 |
25 |
对接方系统订单号 |
无论是否完成支付或者支付成功与否,均不能重复上送 |
|
shopId |
Integer |
否 |
11 |
数字营销平台的店铺Id |
· 对接方为智慧门店时,与shopId必传其中之一 · 对接方为通惠时,必传
店铺下至少拥有一个码牌 |
|
shopCode |
String |
否 |
20 |
数字营销平台智慧门店机构的店铺编号 |
· 对接方为智慧门店时,与shopId必传其中之一 其中,对接方为智慧门店集团时,shopCode需要在集团范围内唯一 · 对接方为通惠时,该参数无效
店铺下至少拥有一个码牌 |
|
amt |
Integer |
是 |
14 |
订单金额 |
单位:分,正数 |
|
returnUrl |
String |
是 |
200 |
支付成功时前端跳转地址 |
|
|
authToken |
String |
否 |
60 |
调用接口3.1.6联合登录时返回的token |
|
|
payMethods |
String |
否 |
100 |
指定支付方式 |
格式为: default,银行id1,银行id2
对接方为通惠时,有效值为: 不传(默认为default和对接方机构及起子机构) default default,指定的对接方机构及其子机构 指定的对接方机构及其子机构
参数说明: 不传该参数,则显示用户app(微信/支付宝)支付方式,以及有可用活动时的快捷支付方式
只传default,则只根据用户app(微信/支付宝)显示支付方式,无论是否有银行活动,均不出现任何快捷支付方式
只指定了银行id,则无论有没有银行活动,均出现该银行的快捷支付方式,且无论是否有活动均不出现未指定银行的快捷支付方式
传入default和银行id,则显示用户app(微信/支付宝)支付方式,以及指定银行的快捷支付方式 |
|
qrCode |
String |
否 |
20 |
码牌号 |
需与上送店铺关联 |
|
cusid |
String |
否 |
40 |
收银宝商户号 |
shopId为智慧小店的店铺时有效。需与上送店铺关联。 |
|
trxType |
Integer |
否 |
11 |
交易类型 |
3001 |
账单收款 |
3006 |
点餐消费 |
|||||
3007 |
餐饮外卖消费 |
|||||
3008 |
非餐饮外卖消费 |
|||||
3010 |
商城消费 |
|||||
pageTitle |
String |
否 |
20 |
页面标题 |
|
|
remark |
String |
否 |
160 |
备注 |
|
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
code |
Integer |
是 |
|
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
|
msg |
String |
是 |
|
错误信息 |
|
|
data |
isvUrl |
String |
是 |
|
跳转地址 |
|
请求示例
{
"oid": "1236158361962",
"amt": 100,
"shopId": 12,
"notfiyUrl": "https://www.baidu.com",
"returnUrl": "https://www.baidu.com",
}
响应示例
{
"code": 0,
"data": {
"isvUrl": "https://dms.shopoint.cn/..."
},
"token": "DlRXdIjEBLRLCJgwTP37sZW6ls--NflxVS2-KUHl"
}
3.5.16生成订单
使用场景:终端POS交易支付,使用本接口请求返回的orderNo订单号,完成支付。如果上送分账信息,调用此接口前需要开通数字营销结算资金管理功能。
该接口不支持阶梯分账(可正常收款,但不执行阶梯分账规则)。
method: allinpay.shopoint.orderService.createOrder
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqOrderNo |
String |
是 |
64 |
外部订单号 |
接入方必须保证唯一 |
shopId |
Integer |
否 |
11 |
店铺ID |
|
shopCode |
String |
否 |
20 |
店铺编号 |
shopId与shopCode必传其一 |
amount |
String |
是 |
14 |
订单金额 |
单位:元 |
idType |
String |
否 |
4 |
会员账号类型 |
1-手机号 2-会员卡号 3-Openid 4-会员动态码 5-外部会员ID 6-内部会员ID |
memberId |
String |
否 |
180 |
会员账号 |
|
paymentMethod |
Integer |
是 |
2 |
支付方式 |
1-通联POS智收银支付,默认1 |
remark |
String |
否 |
|
|
|
splitList |
JSONArray |
否 |
1024 |
分账信息 |
参照附录7.2splitList字段说明 |
splitFlag |
Integer |
否 |
2 |
分账标识 |
1-自动分账,默认1 2-不分账 3-延时分账 若上送2时,忽略接口上送的splitList;若上送3,则必须调用“3.5.23分账确认”接口完成分账和入账。 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
|
msg |
String |
是 |
200 |
错误信息 |
|
|
data |
reqOrderNo |
String |
是 |
64 |
外部订单号 |
|
orderNo |
String |
是 |
40 |
云商通订单号 |
|
|
amount |
String |
否 |
14 |
订单金额 |
单位:元 |
|
paymentAmount |
String |
否 |
14 |
支付金额 |
单位:元 |
3.5.20终端信息查询
终端信息采集结果查询。
method: allinpay.shopoint.orderService.queryTerm
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
mchtCd |
String |
是 |
15 |
商户号 |
|
termNo |
String |
是 |
8 |
终端号 |
8位数字,商户下唯一 |
queryType |
String |
否 |
2 |
操作类型 |
空或者AT时仅返回AT报备状态;UAT的时候返回AT加银联报备状态 |
shopId |
Integer |
否 |
11 |
店铺ID |
查询云商通终端绑定结果时需要上送 |
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
|
msg |
String |
是 |
200 |
错误信息 |
|
|
data |
mchtCd |
String |
是 |
15 |
商户号 |
|
termNo |
String |
是 |
8 |
终端号 |
|
|
deviceType |
String |
是 |
2 |
设备类型 |
01:自动柜员机(含 ATM 和 CDM)和多媒体自助终端 02:传统 POS 03:mPOS 04:智能 POS 05:II 型固定电话 06:云闪付终端; 07:保留使用; 08:手机 POS; 09:刷脸付终端; 10:条码支付受理终端; 11:条码支付辅助受理终端; 12:行业终端(公交、地铁用于指定行业的终端); 13:MIS 终端; |
|
termSn |
String |
否 |
50 |
终端序列号 |
|
|
termState |
String |
是 |
2 |
终端状态 |
取值范围:00:启用;01:注销;注:终端注销时非必填 |
|
termAddress |
String |
是 |
100 |
终端地址 |
|
|
wxState |
String |
是 |
4 |
微信报备状态 |
0000:成功 0001:报备处理中 3999:失败 |
|
wxMsg |
String |
是 |
100 |
微信报备错误信息 |
|
|
alState |
String |
是 |
4 |
支付宝报备状态 |
0000:成功 0001:报备处理中 3999:失败 |
|
alMsg |
String |
是 |
100 |
支付宝报备错误信息 |
|
|
unState |
String |
否 |
4 |
银联报备状态 |
0000:成功 0001:报备处理中 3999:失败 |
|
unMsg |
String |
否 |
100 |
银联报备错误信息 |
|
|
ystState |
String |
否 |
4 |
云商通绑定结果 |
0000:成功 3999:失败 |
3.5.23分账确认
使用场景:对接口3.5.12统一扫码、3.5.14统一支付、3.5.16生成订单上送字段splitFlag值为3时,必须调用此接口完成分账和上账确认,一笔交易可以调用多次进行分账。接口调用返回成功后,需要调用3.22分账确认结果查询接口获取分账确认结果。
3.5.14统一支付接口支付类型为W11时,需用户在微信侧“确认收货”后,微信侧才释放资金参与结算,才可调用此接口进行分账确认。
该接口不支持阶梯分账(可正常收款,但不执行阶梯分账规则)。
method: allinpay.shopoint.orderService.splitConfirm
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqSn |
String |
是 |
64 |
分账子单号 |
须保证在一笔交易中各分账单号唯一。如果是支付接口上送的子订单号,则按支付接口上送的参数进行分账;如果非支付接口上送的子订单号,则按本接口上送的参数进行分账 |
amount |
String |
否 |
14 |
分账金额 |
单位:元。非支付接口上送的子订单时必填 |
splitIdType |
Integer |
否 |
2 |
分账主体类型 |
0-机构,3-分账方。非支付接口上送的子订单时必填 |
splitId |
Integer |
否 |
11 |
分账主体ID |
非支付接口上送的子订单且分账主体类型上送3时必填 |
remark |
String |
否 |
50 |
备注 |
|
origReqSn |
String |
是 |
64 |
原商户交易单号 |
|
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
|
msg |
String |
是 |
200 |
错误信息 |
|
|
data |
reqSn |
String |
是 |
64 |
分账子单号 |
|
trxAmt |
String |
是 |
14 |
分账金额 |
单位元 |
|
fee |
String |
是 |
7 |
手续费 |
单位元,分摊的手续费 |
3.5.24分账确认结果查询
使用场景:查询3.5.23分账确认的结果。
method: allinpay.shopoint.orderService.querySplitConfirmStatus
version: 1.0
业务请求参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
reqSn |
String |
是 |
64 |
分账子单号 |
接入方必须保证在一笔交易下分账子单号唯一 |
origReqSn |
String |
是 |
64 |
原商户交易单号 |
|
业务响应参数
字段名 |
参数类型 |
必填 |
最大长度 |
说明 |
取值 |
|
code |
Integer |
是 |
4 |
返回码 |
0:表示成功; 3:表示失败,具体失败原因参见msg字段; 其他:参见4.1 公共返回码 |
|
msg |
String |
是 |
200 |
错误信息 |
|
|
data |
reqSn |
String |
是 |
64 |
分账子单号 |
|
trxAmt |
String |
是 |
14 |
分账金额 |
单位元 |
|
fee |
String |
是 |
7 |
手续费 |
单位元,分摊的手续费 |
|
splitstatus |
Integer |
是 |
2 |
分账状态 |
1-处理中,2-分账成功,3-分账失败 |
|
errmsg |
String |
否 |
100 |
分账失败原因 |
|
7.1终端信息字段说明
terminfo字段
参数 |
参数名称 |
可空 |
最大长度 |
取值 |
备注 |
termno |
终端号 |
否 |
8 |
8位数字 |
商户下唯一 |
devicetype |
设备类型 |
否 |
2 |
01:自动柜员机(含 ATM 和 CDM)和多媒体自助终端 02:传统 POS 03:mPOS 04:智能 POS 05:II 型固定电话 06:云闪付终端; 07:保留使用; 08:手机 POS; 09:刷脸付终端; 10:条码支付受理终端; 11:条码支付辅助受理终端; 12:行业终端(公交、地铁用于指定行业的终端); 13:MIS 终端; |
|
termsn |
终端序列号 |
是 |
50 |
|
终端类型(device_type)填写为 02、03、04、05、06、08、09 或 10时,必须填写终端序列号。 |
encryptrandnum |
加密随机因子 |
是 |
10 |
仅在被扫支付类交易报文中出现:若付款码为 19 位数字,则取后6 位;若付款码为 EMV 二维码,则取其tag 57 的卡号/token 号的后 6 位 |
|
secrettext |
密文数据 |
是 |
16 |
仅在被扫支付类交易报文中出现:64bit 的密文数据,对终端硬件序列号和加密随机因子加密后的结果。本子域取值为:64bit 密文数据进行base64 编码后的结果。 |
|
appversion |
终端程序版本号 |
是 |
8 |
|
终端应用程序的版本号。应用程序变更应保证版本号不重复。当长度不足时,右补空格。 |
longitude |
经度 |
是 |
16 |
经度信息格式:1位正负号+3位整数 +1位小数点 +5位小数, +表示东经, -表示西经,例如 +121.483527 |
受理终端设备实时经度信息 |
latitude |
纬度 |
是 |
16 |
纬度信息格式:1位正负号+2位整数+1位小数点 +6 位小数,+表示北纬, -表示南纬,例如+31.221345或-03.561345 |
受理终端设备实时纬度信息 |
deviceip |
终端IP |
是 |
40 |
|
商户端终端设备 IP 地址。注:如经、维度信息未上送,该字段必送。 |
示例
terminfo={"termsn":"dfjskljioe13238023","longitude":"+37.12","latitude":"-37.12","termno":"00000001","devicetype":"04"}
7.2 splitList字段说明
该字段提供对接方上送指定分账信息。如果上送此字段,必须开通数字营销资金管理功能。
- 最多支持3层分账。延时分账业务只支持一层。
- splitIdType为0-机构的主体类型时,不需要传splitCode和splitId,其他类型必须传splitCode或splitId,都传以splitId为准。
- splitIdType为0-机构或3-分佣方时,上送金额为最终分账金额,不再匹配系统配置的分账规则进行分账。
- 每层未全部分完时,剩余部分默认分账到对应的上层分账主体中,且不再匹配系统配置的分账规则进行分账。(建议:对未分完的部分,为了简化商户对接部分退款的处理,商户进行计算与管理,一并上送到分账信息中,splitIdType传3。否则商户在进行部分退款退分账未分完部分时,业务处理会比较复杂)。
- 延时分账splitIdType支持0、3。
- 退款
- 整单退时,不需要上送splitList字段,如果上送splitList字段,则按部分退款规则处理
- 部分退款,若需要各个分账完均摊退款金额,则不需要上送splitList,系统会自动计算各个分账主体退的金额;
- 部分退款,非均摊退款时,需要上送各分账方完整的退款分账规则。若上送的分账方对应的订单分账存在下级分账时,需要上送指定下级退款的分账规则,包含默认的分账。
- 部分退款,指定退分账未分完的部分时,splitIdType传3。
- 延时分账退款时,若已存在部分分账确认的子单号,则未分账确认部分不可退款,如果要对未分账确认部分进行退款,则需先调用分账确认接口分账到收款店铺后再进行退款。若整笔订单未进行分账确认,则可发起退款。
参数 |
参数名称 |
取值 |
splitIdType |
分账主体类型 |
0-机构、1-店铺,2-大类,3-分佣方,4-商品 |
splitCode |
分账主体CODE |
数字营销的店铺、大类、商品、分佣方等的code,分账主体类型为0时可不传 |
splitId |
分账主体ID |
数字营销的店铺、大类、商品、分佣方等的ID,分账主体类型为0时可不传 |
amount |
分账金额 |
金额,单位分 |
remark |
备注 |
|
subReqSn |
分账子订单号 |
延时分账业务,需要上送 |
splitList |
下层分账 |
asinfo |
示例:订单收款0.3元(30分)
[
{
"splitIdType": 1,
"splitCode": "10668",
"amount": 10,
"remark": "分给店铺10668"
},
{
"splitIdType": 3,
"splitId": "10666",
"amount": 10,
"remark": "分给分佣方10666"
},
{
"splitIdType": 0,
"amount": 10,
"remark": "分给平台机构"
}
]
说明:分给平台和10666的为最终分账结果,即到账金额;分给10668的0.1元,若系统配置有分账规则,则还要根据配置的分账规则继续进行分账处理。