lokielse / omnipay-wechatpay

(微信支付)WeChatPay driver for the Omnipay PHP payment processing library
MIT License
316 stars 103 forks source link

Can't find the certificate #26

Closed breeze-ev closed 7 years ago

breeze-ev commented 7 years ago

路径 /Users/Breeze/yeli_network/youbao_php/private/wechat/pay/apiclient_cert.pem 是从微信开放平台下载api证书并且内容正确

异常捕获的错误 SSL: Can't find the certificate "/Users/Breeze/yeli_network/youbao_php/private/wechat/pay/apiclient_cert.pem" and its private key in the Keychain.

路径文件是存在的 Breeze-MacBook-Pro:~ Breeze$ cat /Users/Breeze/yeli_network/youbao_php/private/wechat/pay/apiclient_cert.pem -----BEGIN CERTIFICATE----- MIIEaDCCA9GgAwIBAgIDZCtgMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTEyMjA0MDEwMloX....

以下是配置

/**

lokielse commented 7 years ago

你好,我刚试了一下,是OK的。

请确保当前用户对这两个文件具备读权限。可使用is_readable($filename)来判断

breeze-ev commented 7 years ago

感谢回复, is_readable 的结果为 true

网上找到一篇文章差不多也是这问题: 问题应该在mac os 的ssl 协议上 $ php -i | grep "SSL Version" SSL Version => SecureTransport SecureTransport是苹果的SSL协议栈 主流的协议栈 包括:开源的 OpenSSL、开源的 GnuTLS、微软的 SSP、苹果的 SecureTransport 苹果的 SecureTransport的解析方式与开源的 OpenSSL解析方式是不同的。 需要切换到这种方式: SSL Version => OpenSSL/1.0.2f

虽然没有切换到这种协议下测试,但是发布到linux server上是正常的,所以原因大概如此

lokielse commented 7 years ago

好的,谢谢分享~