支付系统对接文档
在这里将简单的叙述接入方式以及注意事项。
- 接口最佳应该使用那种请求方式进行交互?
希望使用content-type為application/x-www-form-urlencoded的POST請求方式來進行API交互,這是我方推薦使用的請求方式。
统一下单接口
注意:下方参数merchant_id,channel_id这两个参数务必在接入时使用动态可修改的技术方式进行对接,以便商户方便修改支付通道和商户ID
网关地址: http(s)://支付域名/order/trade
参数名称 | 数据类型 | 必须 | 説明 |
merchant_id | integer | ✔ | 商户ID |
amount | float | ✔ | 下单金额 |
channel_id | integer | ✔ | 支付通道 |
sub | integer | ✘ | 子通道 |
app_id | integer | ✔ | 应用ID |
notification_url | string | ✔ | HTTP(S)异步通知地址 |
sync_url | string | ✘ | HTTP(S)同步跳转地址 |
ip | string | ✔ | 用户IP地址 |
out_trade_no | string | ✔ | 商户订单号 |
attach | string | ✘ | 商户附加信息 |
sign | string | ✔ | MD5簽名(详见签名算法) |
无论如何,只有下单成功时,code才会为200,其他情况请直接判断code是否为200,msg为错误信息。
{
"code": 200,
"data": {
"amount": "下单时金额",
"createDate": "订单创建时间",
"tradeNo": "支付平台系统订单号",
"url": "支付页面地址,请直接进行302跳转至该地址"
}
"msg": "success",
}
订单查询接口
以下参数请使用POST方式(application/x-www-form-urlencoded)提交至接口。
网关地址: http(s)://支付域名/order/track
参数名称 | 数据类型 | 説明 |
tradeNo | string | 系统订单号(三方平台) |
无论如何,code为200的情况下只有两个状态,那就是未支付订单和已支付订单,如果code为0,那么该订单可能已经超时或已关闭。
{
code : 200,
msg : "success",
data : {
qrcode : "二维码地址",
status : "支付状态:0=未支付/1=已支付"
}
}
异步通知(回调数据)
以下参数将会使用POST方式(application/x-www-form-urlencoded)提交给商户服务器,如果商户服务器验证成功并且处理完成,请返回success纯文本字样,以便我方服务器进行确认处理。
参数名称 | 数据类型 | 説明 |
merchant_id | integer | 商户ID |
app_id | integer | 应用ID |
out_trade_no | string | 商户订单号 |
trade_no | string | 系统订单号 |
cost | float | 订单手续费 |
amount | float | 下单金额(原样返回) |
pay_amount | float | 实际支付金额 |
pay_date | string | 支付时间 |
attach | string | 附加参数(原样返回) |
status | integer | 支付状态(等于1表示支付成功) |
sign | string | MD5签名数据(详见签名算法) |
MD5签名算法
以下则是PHP演示代码,并且后续将使用PHP代码进行讲述。
public static function generateSignature(array $data, string $key): string
{
unset($data['sign']);
ksort($data);
foreach ($data as $k => $v) {
if ($v === '') {
unset($data[$k]);
}
}
return md5(urldecode(http_build_query($data) . "&key=" . $key));
}
值得注意的地方是,所有非空的参数都要加入签名,爲空的参数则不加入签名。
1.使用字典序对键值对map进行排序,以下的变量$data则是键值对map
ksort($data);
2.将键值对$data进行去空,以下代码将值为空的键值对去掉
foreach ($data as $k => $v) {
if ($v === '') {
//这里进行了去空的操作,直接删除了$data中的某个键
unset($data[$k]);
}
}
3.将处理好的键值对$data使用url参数拼接的方式进行拼接,在尾部拼接上&key=商户密钥,以下换行只是爲了方便观看,在实际操作中请勿换行。
amount=100
&channel_id=102
&ip=116.91.28.32
&merchant_id=10014
¬ification_url=https://www.baidu.com/home/msg/data/personalcontent
&out_trade_no=200629093336620840
&sync_url=https://www.baidu.com
&key=161781D6AA5D1471
DEMO下载
在这里你可以选择您网站适合的编程语言DEMO下载,然后您可以快速方便的接入我们的支付系统。
编程语言 | DEMO版本 | 大小 | 下载地址 |
php-demo | v1.0.0 | 2KB | 立即下载 |
java-demo | v1.0.0 | 6KB | 立即下载 |
插件下载
如果这里没有针对您系统的插件,请联系我们,我们会在24小时内完成添加。
程序 | 教程 | DEMO版本 | 大小 | 下载地址 |
8 条评论
我要个系统怎么下载呢 联系不上你呢 怎么联系 qq 3561913530
我要个系统怎么下载呢 联系不上你呢 怎么联系 qq 3561913530
你好哪里下载呢 怎么联系你呢
你好哪里下载呢 怎么联系你呢
你好哪里下载呢 怎么联系你呢
你好怎么联系你
老铁,在线支付测试不成功哦
钱当时有收到,因为监控没挂所以没有回调