smart-pay支付开发包
聚合支付
- 目前已经接入支付渠道:微信(条码支付、扫码支付)、支付宝(条码支付、扫码支付);
- 后台自动生成对账文件
统一下单
业务通过统一下单接口可以发起任意三方支付渠道的支付订单。业务系统不必关心该如何调用三方支付,统一下单接口会根据业务系统选择的支付渠道ID,选择对应支付渠道的支付产品,发起下单请求,然后响应给业务系统支付请求所需参数。
URL地址:http://127.0.0.1:3020/api/pay/create_order
安全密钥:
ReqKey= M86l522AV6q613Ii4W6u8K48uW8vM1N6bFgyv769220MdYe9u37N4y7rI5mQ
ResKey= Hpcl522AV6q613KIi46u6g6XuW8vM1N8bFgyv769770MdYe9u37M4y7rIpl8
请求参数:
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
商户ID |
mchId |
是 |
String(30) |
10000000 |
支付中心分配的商户号 |
商户订单号 |
mchOrderNo |
是 |
String(30) |
20160427210604000490 |
商户生成的订单号 |
订单类型 |
payOrderType |
是 |
String(1) |
1 |
支付订单号是否采用商户订单号 |
渠道ID |
channelId |
是 |
String(24) |
WX_NATIVE、ALIPAY_PC |
扫码支付,目前只有两种 |
币种 |
currency |
是 |
String(3) |
cny |
三位货币代码,人民币:cny |
支付金额 |
amount |
是 |
int |
100 |
支付金额,单位分 |
客户端IP |
clientIp |
否 |
String(32) |
210.73.10.148 |
客户端IP地址 |
设备 |
device |
否 |
String(64) |
ios10.3.1 |
客户端设备 |
支付回调URL |
notifyUrl |
是 |
String(200) |
http://127.0.0.1/notify.htm |
支付结果回调URL,将支付结果通知给业务系统,如自助机。 |
商品主题 |
subject |
是 |
String(64) |
挂号费 |
商品主题 |
描述信息 |
body |
是 |
String(256) |
XX医院,专家号,20元。 |
商品描述信息 |
扩展参数1 |
param1 |
否 |
String(64) |
|
支付中心回调时会原样返回 |
扩展参数2 |
param2 |
否 |
String(64) |
|
支付中心回调时会原样返回 |
附加参数 |
extra |
是 |
String(512) |
{“openId”:”o2RvowBf7sOVJf8kJksUEMceaDqo”} |
特定渠道发起时额外参数,见下面说明 |
签名 |
sign |
是 |
String(32) |
|
签名值,详见签名算法 |
extra参数说明
当请求参数channelId = WX_NATIVE (微信原生扫码支付)时,productId参数必填,对应业务系统定义的商品ID。
例如:
{"openId":"P2017120511225677"}
返回结果:
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
返回状态码 |
retCode |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看resCode来判断 |
返回信息 |
retMsg |
否 |
String(128) |
签名失败 |
返回信息,如非空,为错误原因 签名失败 参数格式校验错误 |
以下字段在retCode为SUCCESS的时候有返回:
变量 |
必填 |
类型 |
示例 |
说明 |
resCode |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL |
errCode |
否 |
String(32) |
SYSTEMERROR |
错误码 |
errCodeDes |
否 |
String(128) |
系统错误 |
结果信息描述 |
以下字段在retCode和resCode都为SUCCESS的时候有返回
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
支付订单号 |
payOrderId |
是 |
String(32) |
P20170001215 |
支付中心生成的订单号 |
预支付标识 |
prepayId |
否 |
String(64) |
Wx2017002423 |
第三方支付公司返回的预支付标识 |
二维码链接 |
codeUrl |
是 |
String(200) |
weixin://wxpay |
可将该参数值生产二维码展示 |
微信签名 |
paySign |
否 |
String(32) |
C380BEUYTUC… |
签名 |
微信返回示例:
{
codeUrl=weixin: //wxpay/bizpayurl?pr=A7W1hFm,
payOrderId=P0020171206233614680006,
mchOrderNo=P0020171206233614680006,
sign=1C576ED262CA87777C9EB4984E975B0A,
resCode=SUCCESS,
prepayId=wx201712062336170a0dbec3ec0035903577,
retCode=SUCCESS,
retMsg=
}
支付宝返回示例:
{
codeUrl=https: //qr.alipay.com/bax03162pv1meea5nnag0059,
payOrderId=P0020171207001840996000,
mchOrderNo=P0020171207001840996000,
sign=E76E40019D1DAFEC909C3318B5F87E6E,
resCode=SUCCESS,
prepayId=P0020171207001840996000,
retCode=SUCCESS,
retMsg=OK
}
退费
统一退单,分为退费和撤销两种。
URL地址:http://127.0.0.1:3020/api/ refund/create_order
安全密钥:
ReqKey= M86l522AV6q613Ii4W6u8K48uW8vM1N6bFgyv769220MdYe9u37N4y7rI5mQ
ResKey= Hpcl522AV6q613KIi46u6g6XuW8vM1N8bFgyv769770MdYe9u37M4y7rIpl8
请求参数:
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
商户ID |
mchId |
是 |
String(30) |
10000000 |
支付中心分配的商户号 |
商户订单号 |
mchOrderNo |
二选一 |
String(30) |
20160427210604000490 |
商户订单号 |
支付订单号 |
payOrderId |
String(30) |
20160427210604000490 |
支付订单号 |
|
渠道ID |
channelId |
是 |
String(24) |
WX_NATIVE、ALIPAY_PC |
扫码支付,目前只有两种 |
币种 |
currency |
是 |
String(3) |
cny |
三位货币代码,人民币:cny |
支付金额 |
amount |
是 |
int |
100 |
支付金额,单位分,退费必填,撤销可选 |
客户端IP |
clientIp |
否 |
String(32) |
210.73.10.148 |
客户端IP地址 |
设备 |
device |
否 |
String(64) |
ios10.3.1 |
客户端设备 |
支付回调URL |
notifyUrl |
是 |
String(200) |
http://127.0.0.1/notify.htm |
支付结果回调URL,将支付结果通知给业务系统,如自助机。 |
商品主题 |
subject |
是 |
String(64) |
挂号费 |
商品主题 |
描述信息 |
body |
是 |
String(256) |
XX医院,专家号,20元。 |
商品描述信息 |
扩展参数1 |
param1 |
否 |
String(64) |
|
支付中心回调时会原样返回 |
扩展参数2 |
param2 |
否 |
String(64) |
|
支付中心回调时会原样返回 |
退款方式 |
refundType |
是 |
String(5) |
1 |
退款方式 0、退款 1、撤销 默认0 |
签名 |
sign |
是 |
String(32) |
|
签名值,详见签名算法 |
返回结果:
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
返回状态码 |
retCode |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看resCode来判断 |
返回信息 |
retMsg |
否 |
String(128) |
签名失败 |
返回信息,如非空,为错误原因 签名失败 参数格式校验错误 |
以下字段在retCode为SUCCESS的时候有返回:
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
业务结果 |
resCode |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL |
错误代码 |
errCode |
否 |
String(32) |
SYSTEMERROR |
错误码 |
错误描述 |
errCodeDes |
否 |
String(128) |
系统错误 |
结果信息描述 |
以下字段在retCode和resCode都为SUCCESS的时候有返回
字段 |
变量 |
必填 |
类型 |
示例 |
说明 |
退款订单号 |
refundOrderId |
是 |
String(32) |
R20170001215 |
支付中心生成的订单号 |
支付订单号 |
payOrderId |
否 |
String(64) |
P2017002423 |
第三方支付公司返回的预支付标识 |
微信签名 |
paySign |
否 |
String(32) |
C380BEUYTUC… |
签名 |
商户信息配置截图
渠道配置截图
订单截图