异次元集成EPUSDT

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);
		}
	});
}

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Linux分类目录。将固定链接加入收藏夹。