API 接口文档

1. 接口概述

该文档描述了接口的所有功能,包含请求方式、入参、出参、错误码等内容,供开发者在接入时参考。

2. 公共参数

所有 API 请求需要包含一些 公共参数,这些参数对每个接口都是通用的。

参数名称类型描述是否必填
app_keyString商户唯一标识
timestampString10位请求时间戳
nonceString随机数,用于防止重放攻击
signatureString签名

3.签名算法(HMAC-SHA256)

  1. 筛选:获取所有不为空的请求参数。

  2. 排序:将筛选的参数按照第一个字符的键值ASCII码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值ASCII码递增排序,以此类推。

  3. 拼接:将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用 & 字符连接起来,此时生成的字符串为参数字符串。

  4. 秘钥:将商户秘钥拼接在第3步中的参数字符串后面,此时生成的字符串为待签名字符串。

以下为签名过程:

  1. 将所有请求参数按参数名排序(字典序)

    如: { "amount": "bb", "app_key": "aa", "client_order_no": "cc", "nonce": "nn", "notify_url": "ee", "pay_type": "dd", "timestamp": "tt", "upstream_id": "uu" }

  2. 拼接,格式为 key=value,多个参数之间用 & 分隔。 amount=bb&app_key=aa&client_order_no=cc&nonce=nn&notify_url=ee&pay_type=dd&timestamp=tt&upstream_id=uu

  3. 使用 SHA-256 对拼接后的字符串进行哈希加密,其中密钥为abbcde

    932d8321548dbcdbc2e351ccc6d59b497d9e8605ad695088fdaf93660ceceecf

4.接口

4.1下单

链接:/api/order/create

请求方式:POST

请求参数

参数名描述可选值是否必填
client_order_no商户订单编号 唯一 最长64位 
pay_type支付类型wx、zfb、union
amount金额 分 当前仅支持CNY 
notify_url商户订单回调链接 
code上游通道编码,用于指定上游通道支付 
ip付款用户客户端IP地址 

响应结果

参数名类型描述
codeInt返回码 200:成功 其他值为错误码
msgString返回值非200时具体错误信息
dataobject数据详情
data.pay_infoString|Object支付链接或小程序支付参数等
data.pay_modelString跳转方式
data.channel_infoObject渠道信息
data.channel_info.nameString上游通道名称
data.channel_info.codeString上游通道编码

4.2 回调通知

链接:由下单接口获取

请求方式:POST

请求参数

参数名描述可选值是否必填
client_order_no商户订单号 
order_no平台订单号 
upstream_order_no通道订单号 
status订单状态默认success
amount订单金额 分 
app_key商户唯一标识 
timestamp10位时间戳 
nonce32随机字符串 
signature签名 

响应结果

参数名类型描述
 String成功SUCCESS 失败FAIL

 

5.支付类型(pay_type)

内容描述
wx微信
zfb支付宝
union银联

 

6.跳转方式(pay_model)

内容描述
app打开app支付
web内部浏览器
web_outer外部浏览器
wechat_applet微信小程序

 

7.渠道信息(channel_info)

渠道codename(上游名称-支付方式-商户号-?支付编码)
7098864107610512功夫熊猫-wx-1001-111

 

8.商户渠道

app_key渠道code
IUALV4NaTkvFmfWmK7098864107610512