收藏
回答

企业付款到零钱报错 The cURL request was retried 3 times and

The cURL request was retried 3 times and did not succeed. The most likely reason for the failure is that cURL was unable to rewind the body of the request and subsequent retries resulted in the same error. Turn on the debug option to see what went wrong. See https://bugs.php.net/bug.php?id=47204 for more information."

而且文档https://gitee.com/TheNorthMemory/wechatpay-php/blob/v1.1/README.md中说的用

'mchid'            => '1900000109',// 注意这个商户号,key是`mchid``mch_id`


我用mchid,报错,加上了mch_id又报上面的错误了, 麻烦解答一下这个问题,感谢

回答关注问题邀请回答
收藏

1 个回答

  • 肚叽
    肚叽
    2021-12-20

    2021-12-20
    有用
    回复 12
    • 北望沣渭
      北望沣渭
      2021-12-20
      文中提示来自Guzzle: https://github.com/guzzle/guzzle/blob/c1fd316f0a0f3325ed1e7cdbe61030418b868f9f/src/Handler/CurlFactory.php#L505-L516 ,看备注信息是说,curl 发送数据失败,需要回滚stream,而这个时候回滚也失败了,即会抛这个异常。

      问题就在于,企业付款到零钱是需要加载商户rsa私钥及证书,未加载到的时候请求就会失败,进而引发重试失败,所以你需要排查Builder::factory([‘merchant’ => []]) 中的 cert 及 key 文件路径是否可以访问到。

      另外建议使用一个Linux环境做开发调试,在Windows上也可以尝试docker,已知在windows上跑php有许多莫名其妙的问题无法解决。
      2021-12-20
      回复
    • 北望沣渭
      北望沣渭
      2021-12-20
      在请求付款到零钱接口的时候,添加一个参数retries=0,关闭重试,看下服务端第一次返回的信息是什么,参数位置如下:
      2021-12-20
      回复
    • 肚叽
      肚叽
      2021-12-20回复北望沣渭
      好吧,我再试一下,实在不行,就换成Linux, 应该是能访问到, 不然会报错, SSL certificate not found:
      2021-12-20
      回复
    • 肚叽
      肚叽
      2021-12-20回复肚叽
      之前是金额的问题, 最低不能小于1块钱, 我把金额调大就成功了, 但是没有接收到返回信息, 还是那个错误,但是接口却调用成功了, 我都收到钱了
      2021-12-20
      回复
    • 肚叽
      肚叽
      2021-12-20回复北望沣渭
      好的我试一下
      2021-12-20
      回复
    查看更多(7)
登录 后发表内容