请选择 进入手机版 | 继续访问电脑版

USDT代币支付平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 915|回复: 0

Epusdt支付接口开发文档

[复制链接]

3

主题

0

回帖

71

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
71
发表于 2023-11-6 18:15:31 | 显示全部楼层 |阅读模式
1、准备工作
接口地址:http://www.epusdt.com/plugin.php?id=epusdt_server
APPID:在 收银台 中申请;
APPKey:在 收银台 中申请;

2、请求接口获取支付地址
2.1请求方式GET:
  1. http://www.epusdt.com/plugin.php?id=epusdt_server&ac=init&appid='.$appid.'&client_orderid='.$orderid.'&amount='.$needMoney.'&url_n='.$notify_url.'&url_r='.$return_url.'&hash='.$hash;
复制代码
其中:
$notify_url为异步通知地址(见3.1异步通知);
$return_url为支付后返回地址;
$hash=md5($orderid.$appKey);

2.2接口返回信息
格式:json
status_code为响应码,200正常,其他为错误,错误信息:message
常见错误代码:
-101,appid不存在!
-102,签名错误!
-103,金额不正确!
-104,异步通知网址错误!
-105,返回网址错误!

400,系统错误
10002,支付交易已存在,请勿重复创建
10003,无可用钱包地址,无法发起支付
10004,支付金额有误, 无法满足最小支付单位
10005,无可用金额通道
10006,汇率计算错误
10007,订单区块已处理
10008,订单不存在
10009,无法解析参数

正常返回数据:
  1. {
  2.   "status_code": 200,
  3.   "message": "success",
  4.   "data": {
  5.     "trade_id": "202203271648380592218340",
  6.     "order_id": "9",
  7.     "amount": 53,
  8.     "actual_amount": 7.9104,
  9.     "token": "TNEns8t9jbWENbStkQdVQtHMGpbsYsQjZK",
  10.     "expiration_time": 1648381192,
  11.     "payment_url": "http://example.com/pay/checkout-counter/202203271648380592218340"
  12.   },
  13.   "request_id": "b1344d70-ff19-4543-b601-37abfb3b3686"
  14. }
复制代码
参数说明


3、回调
3.1异步回调
支付成功后,Epusdt会向目标服务器POST异步通知,告知该笔交易已经支付完成。
失败Epusdt最高最多重试5次,请注意验证消息签名。
目标服务器处理完成后请返回字符串ok即可,否则Epusdt会一直重试发送消息,最高5次
通知内容:
  1. {
  2.   "trade_id": "202203251648208648961728",
  3.   "order_id": "2022123321312321321",
  4.   "amount": 100,
  5.   "actual_amount": 15.625,
  6.   "token": "TNEns8t9jbWENbStkQdVQtHMGpbsYsQjZK",
  7.   "block_transaction_id": "123333333321232132131",
  8.   "signature": "xsadaxsaxsa",
  9.   "status": 2
  10. }
复制代码
参数说明


4、signature验证方式
签名生成的通用步骤如下:
第一步,将所有非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成待加密参数。
重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写; 第二步,待加密参数最后拼接上api接口认证token得到待签名字符串,并对待签名字符串进行MD5运算,再将得到的MD5字符串所有字符转换为小写,得到签名signature。 注意:signature的长度为32个字节。
举例:
假设传送的参数如下:
  1. order_id : 20220201030210321
  2. amount : 42
  3. notify_url : http://example.com/notify
  4. redirect_url : http://example.com/redirect
复制代码
假设api接口认证token为:epusdt_password_xasddawqe(api接口认证token可以在.env文件设置)
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
  1. amount=42&notify_url=http://example.com/notify&order_id=20220201030210321&redirect_url=http://example.com/redirect
复制代码
第二步:拼接API密钥并加密:
  1. MD5(amount=42&notify_url=http://example.com/notify&order_id=20220201030210321&redirect_url=http://example.com/redirectepusdt_password_xasddawqe)
复制代码
最终得到最终发送的数据:
  1. order_id : 20220201030210321
  2. amount : 42
  3. notify_url : http://example.com/notify
  4. redirect_url : http://example.com/redirect
  5. signature : 1cd4b52df5587cfb1968b0c0c6e156cd
复制代码

PHP加密示例
  1.     function epusdtSign(array $parameter, string $signKey)
  2.     {
  3.         ksort($parameter);
  4.         reset($parameter);
  5.         $sign = '';
  6.         $urls = '';
  7.         foreach ($parameter as $key => $val) {
  8.             if ($val == '') continue;
  9.             if ($key != 'signature') {
  10.                 if ($sign != '') {
  11.                     $sign .= "&";
  12.                     $urls .= "&";
  13.                 }
  14.                 $sign .= "$key=$val";
  15.                 $urls .= "$key=" . urlencode($val);
  16.             }
  17.         }
  18.         $sign = md5($sign . $signKey);//密码追加进入开始MD5签名
  19.         return $sign;
  20.     }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|USDT代币支付平台

GMT+8, 2024-10-4 14:15 , Processed in 0.040263 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表