协议规则
传输方式:HTTPS
数据格式:JSON
签名算法:MD5
字符编码:UTF-8
签名计算
将所有用到的参数按ASCII顺序排列拼接再进行url编码,然后加上商户appkey(在商户端APP的开发者中心获取),最后进行MD5运算,即得到signature值(小写),如:
假设原始数据为:
appid: 'EZB1681980865972', nonce_str: 'j6aNx1Lqhm', timestamp: 1682660363550, amount: 0.01, notify_url: 'https://www.easybill.cc/pay/notify', out_trade_no: 'CZ1682660363525898090', pay_type: 'wxpay', attach: 'uid=100',
第一步 按ASCII顺序排列拼接再进行url编码 得到如下数据
amount=0.01&appid=EZB1681980865972&attach=uid%3D100&nonce_str=j6aNx1Lqhm¬ify_url=https%3A%2F%2Fwww.easybill.cc%2Fpay%2Fnotify&out_trade_no=CZ1682660363525898090&pay_type=wxpay×tamp=1682660363550
第二步 加上商户appkey 假设appkey为Juzi0RiboPdEN2uerARUCE77tnw34EQP amount=0.01&appid=EZB1681980865972&attach=uid%3D100&nonce_str=j6aNx1Lqhm¬ify_url=https%3A%2F%2Fwww.easybill.cc%2Fpay%2Fnotify&out_trade_no=CZ1682660363525898090&pay_type=wxpay×tamp=1682660363550Juzi0RiboPdEN2uerARUCE77tnw34EQP
第三步 进行MD5运算转小写 得到signature 5ed3bc387b3f3e10fba9ba2da46b4384
[API]查询商户信息
URL地址:https://api.boda18.com/v1/api/query/merchant
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | mch_id | 是 | Int | 100 | |
商户签名 | sign | 是 | String | 43214324321432 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 200 | 200为成功,其它值为错误信息 |
返回错误信息 | message | String | 成功 | 错误信息提示 |
商户ID | id | Int(14) | 100 | 所创建的商户ID |
商户密钥 | secret_key | String(32) | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | 所创建的商户密钥 |
商户状态 | state | Int | 1 | 1为正常,0为封禁 |
商户余额 | balance | String | 0.00 | 商户所拥有的余额 |
商户冻结 | freeze | String | 0.00 | 商户提现冻结 |
商户名称 | title | String | 张三 | 商户的别名 |
[API]查询单个订单
URL地址:https//api.boda18.com/v1/api/query/order
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | mch_id | 是 | Int | 100 | |
商户签名 | sign | 是 | String | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | |
商户订单号 | mch_order_sn | 是 | String | 20160806151343349 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 200 | 200为成功,其它值为失败 |
返回信息 | message | String | 成功 | |
平台订单号 | order_sn | String | 2016080622555342651 | 平台订单号 |
商户订单号 | mch_order_sn | String | 20160806151343349 | 商户系统内部的订单号 |
支付方式 | payment_code | String | alipay_h5 | 支付方式 |
商户ID | mch_id | Int | 100 | 发起支付的商户ID |
创建订单时间 | created_at | String | 2016-08-06 22:55:52 | |
支付时间 | paid_at | String | 2016-08-06 22:55:52 | |
商品名称 | goods_name | String | VIP会员 | |
商品金额 | money | String | 1.00 | |
支付状态 | state | Int | 0 | 1为支付成功,0为未支付 |
发起支付请求
URL地址:https://api.boda18.com/v1/api/pay
请求方式:POST
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | mch_id | 是 | Int | 100 | |
支付方式 | payment_code | 是 | String | alipay_h5 | alipay_h5:支付宝 tenpay:财付通, qqpay:QQ钱包 wxpay:微信支付 |
商户订单号 | mch_order_sn | 是 | String | 20160806151343349 | |
异步通知地址 | notify_url | 是 | String | //www.xxx.cc/notify_url.php | 服务器异步通知地址 |
跳转通知地址 | return_url | 否 | String | //www.xxx.cc/return_url.php | 页面跳转通知地址 |
商品名称 | goods_name | 是 | String | VIP会员 | |
商品金额 | money | 是 | String | 1.00 | |
时间戳 | timestamp | 是 | String | 1546534543 | |
签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 详细见签名算法 |
返回格式 | format | 是 | String | page | page或者json,默认page |
支付结果通知
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
请求方式:POST
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | mch_id | 是 | Int | 100 | |
平台订单号 | order_sn | 是 | String | 20160806151343349021 | 平台订单号 |
商户订单号 | mch_order_sn | 是 | String | 20160806151343349 | 商户系统内部的订单号 |
支付方式 | payment_code | 是 | String | alipay_h5 | alipay:支付宝 qqpay:QQ钱包 wxpay:微信支付 |
商品金额 | money | 是 | String | 1.00 | |
支付状态 | state | 是 | String | 1 | 1:成功,0:失败 |
签名字符串 | sign | 是 | String | 342423 | 详细见签名算法 |
支付时间 | paid_at | 是 | String | 2023-09-01 09:23:56 | 支付时间 |
SDK下载
Php_Sdk.zip
SDK版本:V1.0