支付系统对接文档

在这里将简单的叙述接入方式以及注意事项。

  • 接口最佳应该使用那种请求方式进行交互?
    希望使用content-type為application/x-www-form-urlencoded的POST請求方式來進行API交互,這是我方推薦使用的請求方式。

统一下单接口

注意:下方参数merchant_id,channel_id这两个参数务必在接入时使用动态可修改的技术方式进行对接,以便商户方便修改支付通道和商户ID

网关地址: http(s)://支付域名/order/trade

参数名称数据类型必须説明
merchant_idinteger商户ID
amountfloat下单金额
channel_idinteger支付通道
subinteger子通道
app_idinteger应用ID
notification_urlstringHTTP(S)异步通知地址
sync_urlstringHTTP(S)同步跳转地址
ipstring用户IP地址
out_trade_nostring商户订单号
attachstring商户附加信息
signstringMD5簽名(详见签名算法)

无论如何,只有下单成功时,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

参数名称数据类型説明
tradeNostring系统订单号(三方平台)

无论如何,code为200的情况下只有两个状态,那就是未支付订单和已支付订单,如果code为0,那么该订单可能已经超时或已关闭。

{
    code : 200,
    msg : "success",
    data : {
        qrcode : "二维码地址",
        status : "支付状态:0=未支付/1=已支付"
    }
}

异步通知(回调数据)

以下参数将会使用POST方式(application/x-www-form-urlencoded)提交给商户服务器,如果商户服务器验证成功并且处理完成,请返回success纯文本字样,以便我方服务器进行确认处理。

参数名称数据类型説明
merchant_idinteger商户ID
app_idinteger应用ID
out_trade_nostring商户订单号
trade_nostring系统订单号
costfloat订单手续费
amountfloat下单金额(原样返回)
pay_amountfloat实际支付金额
pay_datestring支付时间
attachstring附加参数(原样返回)
statusinteger支付状态(等于1表示支付成功)
signstringMD5签名数据(详见签名算法)

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
&notification_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-demov1.0.02KB立即下载
java-demov1.0.06KB立即下载

插件下载

如果这里没有针对您系统的插件,请联系我们,我们会在24小时内完成添加。

程序教程DEMO版本大小下载地址

监控说明

最后修改:2021 年 12 月 05 日 05 : 40 PM