nano -w app/Controller/User/Api/Order.php
/**
* @return string
*/
public function callback(): string
{
$handle = $_GET['_PARAMETER'][0];
$data = $_POST;
if (empty($data)) {
$data = $_REQUEST;
unset($data['s']);
}
// 增加usdt的处理逻辑
if($handle =='Epusdt'){
$data = json_decode(file_get_contents('php://input'),true);
}
return $this->order->callback($handle, $data);
}
nano -w app/Controller/User/Api/RechargeNotification.php
public function callback(): string
{
$handle = $_GET['_PARAMETER'][0];
$data = $_POST;
if (empty($data)) {
$data = $_REQUEST;
unset($data['s']);
}
// 增加usdt的处理逻辑
if($handle =='Epusdt'){
$data = json_decode(file_get_contents('php://input'),true);
}
return $this->recharge->callback($handle, $data);
}
nano -w app/Pay/Epusdt/Impl/Signature.php
public static function generateSignature(array $data, string $key): string
{
ksort($data);
$sign = '';
foreach ($data as $k => $v) {
if ($v == '') continue;
$sign .= $k . '=' . $v . '&';
}
$sign = trim($sign, '&');
return md5($sign . $key);
}
到这边基本上修改完成,不过Epusdt页面容易被缓存
这里修改的是epusdt的代码
nano -w static/index.html
function checkOrderStatus() {
let now = new Date();
$.ajax({
type: "GET",
dataType: "json",
url: "/pay/check-status/{{.TradeId}}?_t="+now.getTime(),
timeout: 10000,
success: function (response, status) {
if (response.data.status == 2) {
layer.msg('支付成功,正在跳转中…', {icon: 16, shade: 0.01, time: 20000});
window.location.href = {{.RedirectUrl}};
} else {
setTimeout("checkOrderStatus()", 2000);
}
},
//Ajax请求超时,继续查询
error: function (e) {
setTimeout("checkOrderStatus()", 2000);
}
});
}