异次元epusdt显示未支付问题解决
|异次元后台的epusdt插件配置后,支付了返回现实未支付及未发货解决方案。
打开插件文件
app/Pay/Epusdt/Impl/Signature.php
将里面代码替换为下面的。
<?php
declare(strict_types=1);
namespace App\Pay\Epusdt\Impl;
use Kernel\Util\Context;
/**
* Class Signature
* @package App\Pay\Kvmpay\Impl
*/
class Signature implements \App\Pay\Signature
{
/**
* 生成签名
* @param array $data
* @param string $key
* @return string
*/
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);
}
/**
* @inheritDoc
*/
public function verification(array $data, array $config): bool
{
$data = json_decode(file_get_contents('php://input'),true);
$sign = $data['signature'];
unset($data['signature']);
$generateSignature = self::generateSignature($data, $config['key']);
Context::set(\App\Consts\Pay::DAFA, $data);
if ($sign != $generateSignature) {
return false;
}
return true;
}
}
之后该问题就会解决。