2 API支付接口
2.1 订单支付
2.1.1 功能描述
我司目前开通的支付通道包括:微信个人码扫码,支付宝个人码扫码,微信原生 H5,微信原生扫码。
微信个人码扫码:用户通过手机端使用微信扫描二维码的方式完成支付,需要用户手动输入金额。
支付宝个人码扫码:用户通过使用手机端支付宝APP扫描二维码的方式完成支付,需要用户手动输入金额。
微信原生 H5:用户通过外部浏览器直接唤起微信发起并完成支付。
微信原生扫码:用户通过手机端使用微信扫描二维码的方式完成支付,无需用户输入金额,可直接唤起微信支付。
所有支付务必在支付时间内完成支付,否则支付被视为无效,无法到账。
2.1.2 请求参数
接口名称:/pay/recharge
通过POST 请求
中文名
字段名
必填
类型
说明
商户号
m_id
是
string(10)
商户在我司注册的账号。 我司维度唯一
商户用户
accounts
是
string(16)
在商户注册的账号。
商户维度唯一。
必须为字母或数字,注意不是商户号。
商户订单号
order_id
是
string(25)
商户生成的订单号。
商户维度唯一。 必须为字母或数字。
订单交易金额
amount
是
int
订单的支付金额。 单位:元
通道类型
m
是
int
充值通道的类型。
0-微信个人码扫码
1-支付宝个人码扫码
2-支付宝原生 H5
3-微信原生 H5
4-微信原生扫码
附加信息
attach
否
string(255)
附加信息。异步通知时会完整返回
下单IP
order_ip
是
string(32)
用户提交订单的IP地址
随机字符串
r
是
string(32)
固定长度32个字节的随机字串。
必须为字母或数字。
页面返回地址
return_url
是
string(255)
支付完成后页面自动跳转地址。
异步通知地址
notify_url
是
string(255)
支付结果异步通知地址。
API模式
api
是
int
1 – 网页调用模式
签名
sign
是
string(32)
md5签名
2.1.3 应答参数
出错时会跳转错误页面
中文名
字段名
必返
类型
说明
结果
code
是
string(32)
参见错误码对照表
网页调用模式会返回支付页面地址。 {"code":"000000","url":""}
如果启用API模式,将返回一个json数据:
中文名
字段名
必返
类型
说明
结果
code
是
string(32)
参见错误码对照表
二维码
url
是
string(255)
要求商户自行生成二维码
支付金额
amount2
是
double
用户实际应支付金额
必须支付相等金额,否则不入账
过期时间
pay_lasttime
是
int
<时间戳,超过该时间支付不到账
目前为下单后5分钟内支付
2.1.4 异步通知结果
以下数据以POST PARAMS方式返回
中文名
字段名
必返
类型
说明
结果
code
是
string(32)
参见错误码对照表
注:code不参与签名
商户号
m_id
是
tring(10)
商户在我司注册的账号
我司系统维度唯一
商户订单号
order_id
是
string(25)
商户生成的订单号。
商户维度唯一
字母或数字
支付单号
pay_id
是
int
我司系统生成的单号。
我司维度唯一
纯数字
订单交易金额
amount
是
int
订单的支付金额。
单位:元
手续费
merchant_fee
是
int
该笔订单需要扣除商户的费用
单位:分
商户用户
accounts
是
int
商户发送的商户用户
返回结果时带回
附加数据
attach
否
string(255)
商户自定数据
返回结果时带回
付款时间
charge_time
是
string(32)
用户付款的时间
付款IP
charge_ip
是
string(32)
用户付款的IP
随机字符串
r
是
string(32)
固定长度32个字节的随机字串
为字母或数字
签名
sign
是
string(32)
md5签名
商户在收到异步回调结果后需要及时响应,从而停止我司继续异步回调过程。
返回结果JSON类型,code编码为000000表示响应成功
中文名
字段名
必返
类型
说明
结果
code
是
string(32)
参见错误码对照表
2.2 支付订单查询
2.2.1 功能描述
接入API的商户可以通过调用该接口主动查询订单支付结果。
2.2.2 请求参数
接口名称:/pay/query_recharge
通过GET/POST请求
中文名
字段名
必填
类型
说明
商户号
m_id
是
string(10)
商户在我司系统注册的账号
我司维度唯一
商户订单号
order_id
否
string(25)
商户生成的订单号。
商户维度唯一
必须为字母或数字
order_id和pay_id至少要传一个
都不为空以order_id为准
支付单号
pay_id
否
int
我司生成的订单号。
我司维度唯一
必须为纯数字
order_id和pay_id至少要传一个
都不为空以order_id为准
随机字符串
r
是
string(32)
固定长度32个字节的随机字串。
为字母或数字
签名
sign
是
string(32)
保证数据合法性的加密签名。
2.2.3 应答参数
以下数据为json格式返回
中文名
字段名
必返
类型
说明
如果出错仅返回code
结果
code
是
string(32)
参见错误码对照表
以下字段在支付时
返回需要进行验签
商户号
m_id
是
string(10)
商户在我司注册的账号
我司系统维度唯一
通道类型
m
是
int
通道类型
0-微信个人码收款
1-支付宝个人码收款
商户订单号
order_id
是
string(25)
商户生成的订单号。
商户维度唯一
字母或数字
支付单号
pay_id
是
int
我司系统生成的单号。
我司维度唯一
字母或数字
订单交易金额
amount
是
int
订单的支付金额。
单位:元
手续费
merchant_fee
是
int
该笔订单需要扣除商户的费用
商户用户
accounts
是
string
商户发送的商户用户
返回结果时带回
附加数据
attach
否
string(255)
商户自定数据,
返回结果时带回
下单时间
order_time
是
string(14)
用户下单时间
格式 YYYY-MM-DD hh:mm:ss
随机字符串
r
是
string(32)
固定长度32个字节的随机字串
为纯字母和数字
下单IP
order_ip
是
string(32)
用户下单的IP
订单状态
state
是
int
订单状态
0 未支付
1 已支付
以下字段只有支付
结果为成功时才有值
付款时间
charge_time
是
string(32)
用户付款的时间
付款IP
charge_ip
是
string(32)
用户付款的IP
签名
sign
是
string(32)
md5签名
3 错误码
错误码
错误信息
备注
000000
成功
000001
操作过快
111111
未知错误
100001
缺少商户号(m_id)
100002
缺少通道类型(m)
100003
缺少随机字符串(r)
100004
缺少签名(sign)
100005
缺少商户订单号(order_id)
100006
缺少支付金额(amount)
100007
缺少下单IP(order_ip)
100008
缺少商户用户(accounts)
100009
缺少附加数据(attach)
100010
缺少页面返回地址(return_url)
100011
缺少异步通知地址(notify_url)
100015
缺少商户订单号(order_id)或支付单号(pay_id)
100101
商户号(m_id)必须是6位数字
100102
通道类型(m)必须是数字
100103
随机字符串(r)必须是32位字母或数字
100104
签名(sign)必须是32位字母或数字
100105
商户订单号(order_id)必须是不超过25位的字母或数字
100106
支付单号(pay_id)必须是数字
100107
支付金额(amount)必须是正整数
100108
下单IP(order_ip)必须是有效IP地址格式
100109
商户用户(accounts)必须是不超过32位的字母或数字
100110
附加数据(attach)长度不超过255
100111
页面返回地址(return_url)长度不超过255
100112
异步通知地址(notify_url)长度不超过255
100113
终端类型(terminal)必须是数字
100201
商户不可用
商户关闭
100202
通道类型不可用
通道类型关闭
100203
商户通道不可用
商户通道关闭
100204
通道不可用
通道关闭
100205
商户通道类型不可用
商户通道类型关闭
100206
通道组不可用
100207
终端类型不可用
100301
订单不存在
100302
订单状态错误
100303
没有合适的通道
1. 通道有可能处于风控中。
2. 由于平台风控策略,一段时间内不允许多次出现重复
金额,请检查充值请求金额是否重复,建议使用随机小数金额
100401
商户通道当日限额
100402
用户多次充值失败
1. 该用户未能发送有效的用户账号,即accounts字段,
导致平台无法自动为其切换可用通道。
2. 该用户被风控,限制充值
200000
请求超时
200001
请求异常
200002
签名错误
1. 检查商户号和apikey是否匹配
2. 注意notify_url 和 return_url的处理,具体参见上面文档
Last updated
Was this helpful?