协议规则


传输方式:采用HTTP传输(生产环境建议HTTPS)

提交方式:采用POST/GET方式提交

字符编码:UTF-8

签名算法:MD5

签名算法


第一步: 设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

特别注意以下重要规则:

◆ 参数名ASCII码从小到大排序(字典序);

◆ 参数名区分大小写;

◆ 验证调用返回或支付中心主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。

第二步: 在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

待签名值:pid=1001&money=2.0&out_trade_no=P12312321123&type=TRC20&name=test&returnUrl=同步地址&notifyUrl=异步地址&isHtml=1&key=EWEFD123RGSR
签名结果:5E0AA05DD4BB4FE5AB65608123EBA591
最终请求支付系统参数:pid=1001&money=2.0&out_trade_no=P12312321123&type=TRC20&name=test&returnUrl=同步地址&notifyUrl=异步地址&isHtml=1&sign=5E0AA05DD4BB4FE5AB65608123EBA591

发起订单


接口地址:https://token123.cc/pay/create_order

请求参数:

字段名 变量名 必填 类型 示例值 描述
商户ID pid int 1001 系统分配的商户ID
订单号 out_trade_no String(80) USDT202309081750 商户生成的订单号
金额 money String 1001 支付金额
商品名称 name String 测试订单 商品名称
类型 type String TRC20 订单类型(目前只支持TRC20)
异步通知地址 notifyUrl String https://自己网站/notify_url.php 服务器异步通知地址
同步跳转地址 returnUrl String https://自己网站/return_url.php 页面跳转地址
isHtml isHtml int 1 1跳转支付页面2返回订单信息(json)
签名 sign String 32位MD5签名值 签名值,详见签名算法
PHP示例:
$data = array(
    //商户ID
    'pid' => $pid,
    //商户订单号
    "out_trade_no" => rand(111111111,999999999).time(),
    //自定义参数
    "name" => '租号陪玩',
    //订单金额
    "money" => rand(11,99),
    //通道类型
    'type' => 'TRC20',
    //同步跳转地址
    "returnUrl" => $_SERVER['REQUEST_SCHEME']."://". $_SERVER['HTTP_HOST'] . '/user',
    //异步通知地址
    "notifyUrl" => $_SERVER['REQUEST_SCHEME']."://". $_SERVER['HTTP_HOST'] . '/pay/Notify.php',
    //1=跳转支付页面 2=返回订单信息
    'isHtml' => 1
);
//参数名ASCII码从小到大排序(字典序)
ksort($data);
//构建URL查询字符串
$http = http_build_query($data);
//生成签名
$data['sign'] = md5($http.'&key=商户秘钥');
//发起订单
header("location:网关地址?".http_build_query($data));
exit;

查询订单


接口地址:https://token123.cc/pay/check_order

请求参数:

字段名 变量名 必填 类型 示例值 描述
商户ID pid int 1001 系统分配的商户ID
订单号 out_trade_no String(80) USDT202309081750 商户生成的订单号

回调通知


通知参数:

字段名 变量名 必填 类型 示例值 描述
商户ID pid int 1001 系统分配的商户ID
系统订单号 trade_no String 1 系统生成的订单号
商户订单号 out_trade_no String USDT202309081750 商户提交的订单号
金额 money String 1001 支付金额
商品名称 name String 测试订单 商品名称
类型 type String TRC20 订单类型(目前只支持TRC20)
签名 sign String 32位MD5签名值 签名值,详见签名算法
PHP示例:
$data = array(
    'pid' => $_GET['pid'],
    'trade_no'=>$_GET['trade_no'],
    'out_trade_no'=>$_GET['out_trade_no'],
    'name'=>$_GET['name'],
    'type'=>$_GET['type'],
    'money'=>$_GET['money']
);
//参数名ASCII码从小到大排序(字典序)
ksort($data);
//构建URL查询字符串
$http = http_build_query($data);
//生成签名
$_sign = md5($http.'&key=商户秘钥');
//验证签名
if($_GET['sign'] == $_sign){
    echo "success";
}else{
    echo "签名验证失败";
}
返回结果

商户收到通知请求后,需返回字符串success给系统,系统收到success表示通知成功,商户返回非success则表示通知失败