yansongda / pay

可能是我用过的最优雅的 Alipay/WeChat/Douyin/Unipay/江苏银行 的支付 SDK 扩展包了
http://pay.yansongda.cn
MIT License
5.06k stars 1.04k forks source link

easyswoole 使用 v3的微信支付回调提示Provider response Error #842

Closed wksnow closed 1 year ago

wksnow commented 1 year ago

包版本号

v3.0.0

问题描述

微信支付回调提示Provider response Error,报错的文件是Functions.php。之前用 tp 调用正常,现在改成了 easyswoole之后报错,应该不会是配置的问题。

你的代码

   try{
        $config = WxPayExtend::getInstance()->config();
        Pay::config($config);
        $result = Pay::wechat()->callback(ServerRequestInterface::class);
    }catch (\Throwable $e){

// var_dump($e->getMessage(),$e->getLine(),$e->getFile()); Logger::getInstance()->info("回调错误,原因是>>>{$e->getMessage()},文件是:{$e->getFile()},对应的行数是{$e->getLine()}","pay"); return; }

报错详情

yansongda/pay/src/Functions.php暂时定位是这个地方出的错。没想到是什么原因导致的。 function decrypt_wechat_resource(array $resource, array $params): array { $ciphertext = base64_decode($resource['ciphertext'] ?? ''); $secret = get_wechat_config($params)->get('mch_secret_key');

    if (strlen($ciphertext) <= Wechat::AUTH_TAG_LENGTH_BYTE) {
        throw new InvalidResponseException(Exception::INVALID_CIPHERTEXT_PARAMS);
    }

}

sdk 日志

nginx/apache 日志

涉及到 异步通知、同步通知 的问题,请贴出来

wksnow commented 1 year ago

麻烦大佬帮忙分析下,是我哪里操作的不对。

yansongda commented 1 year ago

看下文档吧,ServerRequestInterface::class 传参有问题