支付接口
接入文档
V8.8.8
1 接入接口
1.1 发起交易
1.1.1 请求地址:
GET请求返回收银台,POST请求返回JSON,根据实际情况自行选择。
① GET: http://{url}/trade/pay
② POST: http://{url}/trade/pay
Content-Type:application/json 或者application/form
1.1.2入参(支付宝/微信/网银)
字段名 | 变量名 | 类型 | 说明 | 可空 |
基本参数 | ||||
版本号 | version | String(5) | 当前接口版本号1.0 | N |
商户编号 | partnerid | String(4) | 商户在平台的用户ID | N |
商户订单号 | orderid | String(30) | 商户订单号(确保唯一) | N |
订单总金额 | payamount | Int | 单位:分 | N |
用户IP | payip | String(20) | 用户所在客户端的真实IP | N |
异步回调地址 | notifyurl | String(255) | 支付后返回的商户处理页面,URL参数是以http://或https://开头的完整URL地址(后台处理) 提交的url地址必须外网能访问到,否则无法通知商户 | N |
同步回调地址 | returnurl | String(255) | 支付后返回的商户处理页面,URL参数是以http://或https://开头的完整URL地址(后台处理) 提交的url地址必须外网能访问到,否则无法通知商户。异步 | N |
支付类型提供商 | paytype | String(12) | 支付类型见【支付类型代码】表 | N |
MD5签名 | sign | String(32) | MD5签名结果 | N |
业务参数 | ||||
商户自定义数据包 | remark | String(50) | 商户自定义数据包,原样返回,例如:可填写会员ID(加签时为编码状态) | Y |
1.1.3 响应参数(支付宝/微信/网银)
GET请求响应参数
字段名 | 变量名 | 类型 | 说明 | 可空 |
基本参数 | ||||
get交易地址 |
|
| 浏览器打开地址显示收银台交易内容 | N |
POST请求响应参数(JSON格式)
字段名 | 变量名 | 类型 | 说明 | 可空 | ||||
基本参数 | ||||||||
版本号 | version | String(3) | 当前接口版本号1.0 | N | ||||
商户编号 | partnerid | String(4) | 商户在平台的用户ID | N | ||||
商户订单号 | partnerorderid | String(32) | 商户订单号 | N | ||||
平台订单号 (订单号) | orderid | String(32) | 平台订单号 | N | ||||
支付类型 | paytype | String(10) | 支付类型见8表 | N | ||||
支付链接 | payurl | String(1000) | 支付链接 | N | ||||
支付状态 | message | String(10) | 支付状态:0为支付成功 | N | ||||
MD5签名 | sign | String(32) | MD5签名结果 | N | ||||
出错时返回参数 | ||||||||
错误码 | code | String(10) | 错误编码 | N | ||||
错误信息 | msg | String(50) | code=0时参数不存在 | Y | ||||
1.1.4 异步通知参数(支付宝/微信/网银)
注意:①有可能多次通知,商户需要自行判断处理,商户收到回调参数后返回字符串success表示已处理,服务不会再次发起回调。
②json格式
③ 以 POST方式,Content-Type: application/json;charset=UTF-8 推送
字段名 | 变量名 | 类型 | 说明 | 可空 |
基本参数 | ||||
版本号 | version | String(3) | 当前接口版本号1.0 | N |
商户ID | partnerid | String(4) | 商户在平台的用户ID | N |
商户订单号 | partnerorderid | String(32) | 商户订单号 | N |
订单总金额 | payamount | Int | 单位:分 | N |
订单状态 | orderstatus | Int | 订单状态: 1,4 已支付, 其他状态都是未成功 | N |
平台订单号 (订单号) | orderno | String(32) | 平台订单号 | N |
订单完成时间 | okordertime | Date | 订单完成时间 | N |
支付类型 | paytype | String(10) | 支付类型见8表 | N |
MD5签名 | sign | String(32) | MD5签名结果 | N |
业务参数 | ||||
订单交易结果说明 | message | String(255) | 订单交易结果说明(0 支付成功,其他失败) | N |
商家自定义数据包 | remark | String(50) | 商户自定义数据包,原样返回,例如:可填写会员ID(验签时为编码状态) | Y |
例子:
{"message":"0","okordertime":"2020/8/10 12:17:55","orderno":"47745045973762457667okp1ep","orderstatus":"1","partnerid":"67okp1ep","partnerorderid":"7772020081010958328","payamount":"5000","paytype":"wcHfWap","remark":"remark","sign":"f70259f77ccbc6aeb924773860885aa5","version":"1.0"}
1.1.5 同步通知参数(支付宝/微信)
注意:①有可能多次通知,商户需要自行判断处理,商户收到回调参数后返回字符串success表示已处理,服务不会再次发起回调。
②以get的格式推送给商户
字段名 | 变量名 | 类型 | 说明 | 可空 |
基本参数 | ||||
版本号 | version | String(3) | 当前接口版本号1.0 | N |
商户ID | partnerid | String(4) | 商户在平台的用户ID | N |
商户订单号 | partnerorderid | String(32) | 商户订单号 | N |
订单总金额 | payamount | Int | 单位:分 | N |
订单状态 | orderstatus | Int | 订单状态: 1,4 已支付, 其他状态都是未成功 | N |
平台订单号 (订单号) | orderno | String(32) | 平台订单号 | N |
订单完成时间 | okordertime | Date | 订单完成时间 | N |
支付类型 | paytype | String(10) | 支付类型见8表 | N |
MD5签名 | sign | String(32) | MD5签名结果 | N |
业务参数 | ||||
订单交易结果说明 | message | String(255) | 订单交易结果说明(0支付成功,其他失败) | N |
商家自定义数据包 | remark | String(50) | 商户自定义数据包,原样返回,例如:可填写会员ID(验签时为编码状态) | Y |
例子:
message=0&okordertime=2020/8/10 15:24:06&orderno=47749732525474201667okp1ep&orderstatus=1&partnerid=67okp1ep&partnerorderid=7772020081010961219&payamount=10000&paytype=wcHfWap&remark=remark&version=1.0&sign=ef6e8f5f81f08f65124f407e8dec17fa
1.2 交易查询
1.2.1 请求地址
POST:
URL: http://{url}/trade/query
Content-Type:applicaion/json
1.2.2 入参(支付宝/微信/网银)
字段名 | 变量名 | 类型 | 说明 | 可空 |
基本参数 | ||||
版本号 | version | String(5) | 当前接口版本号1.0 | N |
商户编号 | partnerid | String(4) | 商户在平台的用户ID | N |
平台订单号 | orderid | String(30) | 平台订单号(和商户订单号二选一) | N |
商户订单号 | partnerorderid | String(30) | 商户订单号(和平台订单号二选一) | N |
MD5签名 | sign | String(32) | MD5签名结果 | N |
参与签名字符串:
orderid=240208694078476288yxxguepklj&partnerid=yxxguepklj &version=1.0&key=xx232284f3d17517b
json格式提交参数。例如:
{"orderid":"240208694078476288yguepklj","partnerid":"yxxguepklj","sign":"7a02c9c66da4adff6d7f3290ee348b4f","version":"1.0"}
1.2.3 响应参数(支付宝/微信/网银)
返回JSON格式数据
字段名 | 变量名 | 类型 | 说明 | 可空 | ||||
基本参数 | ||||||||
版本号 | version | String(3) | 当前接口版本号1.0 | N | ||||
商户编号 | partnerid | String(4) | 商户在平台的用户ID | N | ||||
商户订单号 | partnerorderid | String(32) | 商户订单号 | N | ||||
订单总金额 | payamount | Int | 单位:分 | N | ||||
实际到账金额 | pay | Int | 单位:分 | N | ||||
订单状态 | orderstatus | Int | 订单状态: 0待支付,1 已支付,2 支付失败, 3.提交失败,4 已结算(注:已支付,平台已结算),5 未结算, 6 结算失败,7 冻结,8 解冻 9 异常 | N | ||||
平台订单号 (订单号) | orderid | String(32) | 平台订单号 | N | ||||
订单下单时间 | ordertime | Date | 订单下单时间 | N | ||||
订单完成时间 | okordertime | Date | 订单完成时间 | Y | ||||
支付类型 | paytype | String(10) | 支付类型见8表 | N | ||||
结算模式 | settle | Int | 结算模式:0 表示 T0,1 表示 T1,依次类推 | N | ||||
订单交易结果说明 | message | String(255) | 订单交易结果说明(0 支付成功,其他失败) | N | ||||
MD5签名 | sign | String(32) | MD5签名结果 | N | ||||
出错时返回参数 | ||||||||
错误码 | code | String(10) | 错误编码 | N | ||||
错误信息 | msg | String(50) | code=0时参数不存在 | Y | ||||
2 数字签名
2.1 签名机制
① 数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进行签名验证。
② 参与签名的字段必须不为空。
③ 参数签名顺序(必须按照字母a>z从小到大逐个排序)说明及示例:
示例:
sign=md5(notifyurl=http://localhost:25787/trade/pay&orderid=20170619114124697&partnerid=1002&payamount=0.01&payip=127.0.0.1&paytype=alipay&remark=%E6%B5%8B%E8%AF%95&returnurl=http://localhost:25787/home/back&version=1.0&key=fcc2456790af14eb)
2.2 签名方式
拼凑值不要有空格(时间空格除外)!
使用标准MD5算法对该字符串进行加密,加密结果全部转换成小写后,即为我们所需的订单MD5 校验码,将其写入sign字段即可。
3 状态码表
序号 | 返回码 | 说明 |
1 | 0 | 成功 |
2 | 99999 | 失败 |
3 | 其它状态码 | 其它错误 |
4 | 050xx | 服务器出现异常,请稍后再试 |
4 支付类型表
序号 | 银行名称 | 编码(储蓄卡) |
1 | 工商银行 | ICBC |
2 | 招商银行 | CMB |
3 | 建设银行 | CCB |
4 | 中国银行 | BOC |
5 | 农业银行 | ABC |
6 | 交通银行 | BOCM |
7 | 浦发银行 | SPDB |
8 | 广发银行 | CGB |
9 | 中信银行 | CTITC |
10 | 光大银行 | CEB |
11 | 兴业银行 | CIB |
12 | 平安银行 | SDB |
13 | 民生银行 | CMBC |
14 | 华夏银行 | HXB |
15 | 邮储银行 | PSBC |
16 | 北京银行 | BJBANK |
17 | 上海银行 | SHBANK |
18 | 渤海银行 | BOHAI |
19 | 上海农商 | SHNS |
20 | 支付宝扫码 | alScan |
21 | 支付宝扫码(非原生) | alScanNor |
22 | 支付宝反扫 | alRScan |
23 | 支付宝H5/WAP | alWap |
24 | 支付宝H5/WAP(非原生) | alWapNor |
25 | 微信扫码 | wcScan |
26 | 微信扫码(非原生) | wcScanNor |
27 | 微信反扫 | wcRScan |
28 | 微信H5/WAP | wcWap |
29 | 微信H5/WAP(非原生) | wcWapNor |
30 | QQ钱包扫码 | wcWScan |
31 | QQWAP | QQWap |
32 | 京东钱包扫码 | jdWScan |
33 | 京东WAP | jdWap |
34 | 京东包装微WAP | jdWCWap |
35 | 京东包装支付宝扫码 | jdALScan |
36 | 京东包装支付宝WAP | jdALWap |
37 | 京东包装微信扫码 | jdWCScan |
38 | 京东钱包快捷 | jdWQuick |
39 | 银联WAP | unpWap |
40 | 银联快捷 | unpQuick |
41 | 银联扫码 | unpScan |
42 | 淘宝红包 | taobaoHB |
43 | 话费微信H5/WAP | wcHfWap |
44 | 咸鱼支付宝H5 | alXyWap |
45 | 支付宝SDK | alSDK |
46 | 拼多多SDK | pddSDK |
47 | 支付宝卡转卡 | alZCard |
48 | 话费支付宝H5/WAP | alHfWap |
49 | 支付宝H5(iOS专用) | alH5ISOSDK |
50 | 话费微信H5-慢充 | wcHfMcWap |