wechatpay-apiv3 / wechatpay-php

微信支付 APIv3 的官方 PHP Library,同时也支持 APIv2
Apache License 2.0
475 stars 98 forks source link

商家转账到零钱接口调用成功,响应验证失败 #121

Closed xc9788 closed 11 months ago

xc9788 commented 12 months ago

运行环境

- OS: Centos
- PHP: 7.4 Hyperf
- wechatpay-php: 1.4.8

描述你的问题现象

$instance->chain('v3/transfer/batches')->post([]);

调用发生异常如下。不过转账已经生效,商户后台钱已经到账,响应成功200的校验却失败了,这是什么问题呢?

{"batch_id":"**********","batch_status":"ACCEPTED","create_time":"2023-07-14T11:49:40+08:00","out_batch_no":"*********"}PHP Fatal error:  Uncaught GuzzleHttp\Exception\RequestException: Verify the response's data with: timestamp=1689306580, nonce=e9c208e9ae2a5332a10239c68d537294, signature=nUsq4ZfWFty0nC5an0zoeX6PIahRfiQ1mhlEkma7EFQbffrcpRnM69WeMlU0rM9GUKQzw0ClIEPOyRYfoGnzOUJnLzuknyaXaQuYggKieNRk9qT5GdMdhdrNHeiNbS+jAQI1KIEiUDgKccgDqEae8IEWBcMYucK6r8V87NfAe/W8h8EzL/uh4E89sbXgDKidPwDmaOyMtltY4s7xKPTNyYnHImTodGdAeZwhEK1cJoPgfNC/VFg4W/WIRpsRTMPzxdUXJwSsQmPw8vSH5zBCoaxz8Rrp8ng/kPT2U28ZDomL2YSqn18zLluiuSjt5hLlGImudQaVc12YbS9Ves0A/g==, cert=[***************** => ...] failed. in
TheNorthMemory commented 12 months ago

非对称加解密,返回的BODY内容验签是需要用「微信支付平台证书」里携带的「公钥」验证,请检查你的初始化参数(平台证书序列号/平台证书实例) 'certs' => [] 键值对是否准确。

xc9788 commented 11 months ago

是正确的,使用不正确的'certs'初始化参数,请求接口直接返回错误