yansongda / pay

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

关于微信平台公钥证书 #936

Closed EagriSiol closed 6 months ago

EagriSiol commented 6 months ago

包版本号

v3

问题描述

body错误导致 url\":\"/v3/certificates\"}},\"message\":\"错误的签名,验签失败\"}

文件

vendor/yansongda/pay/src/Plugin/Wechat/V3/AddPayloadSignaturePlugin.php 68行 get_wechat_body($payload)."\n"; 会返回 一个 [] ."\n"; 这里应该是 空才能正确获取

我修改为 v3/certificates 获取证书时候 body设置为空 其他时候获取body 不然也会导致其他请求失败

    // 修复证书获取签名串中body不为空导致验证失败
    $body = $payload->get('_url') === 'v3/certificates' ? '': get_wechat_body($payload);
    return get_wechat_method($payload)."\n".
        $urlPath.(empty($urlQuery) ? '' : '?'.$urlQuery)."\n".
        $timestamp."\n".
        $random."\n".
        $body."\n";
yansongda commented 6 months ago

这个很早以前已经修复了,麻烦查看下 yansongda/artful 的版本是不是最新的 v1.0.9 版本。如果不是,麻烦 composer update