我在实时服务器上上传代码后收到以下错误消息
[error_message] => Error connecting to AuthorizeNet
我正在使用AIM,相同的代码在我们的开发服务器上给出了适当的响应。 当我在我的实时服务器上传它然后它无法正常工作
答案 0 :(得分:3)
第一。更新SDK库,有一个cert.pem文件,如果过期将产生该错误。
第二。您可以禁用ssl verify peer以避免此错误。但是,请始终尝试第一个选项。
$yourIPNInstance->VERIFY_PEER = false
答案 1 :(得分:3)
扩展Arnold Roa的答案,特别是指Authorize.net IPN网关。
设置VERIFY_PEER也适用于Authorize.net AIM网关。
请注意,设置VERIFY_PEER = false是一个TEMPORARY修补程序。不要打算这样离开。
$transaction = new AuthorizeNetAIM()
$transaction->VERIFY_PEER = false;
最好定期更新SDK。但是,由于更新通常会破坏比修复更多的内容,因此可以更新cert.pem文件而无需更新整个SDK /代码库。
如果你正在
连接到AuthorizeNet时出错
并且您几年前没有更新SDK代码/目录,因此最有可能的原因是您的SDK具有较旧的,现已弃用的SHA1证书文件。它使用lib / ssl / cert.pem文件与secure.authorize.net发回的证书进行比较,并确保它们匹配。这是一个额外的安全保护层。
如果用来自PHP SDK存储库https://github.com/AuthorizeNet/sdk-php/blob/master/lib/ssl/cert.pem的最新cert.pem的全部内容替换lib / ssl / cert.pem的内容 然后错误应该消失。
更换cert.pem文件后,请记得重新启用对等验证,例如
$transaction->VERIFY_PEER = true;
应该修复它,至少在Authorize.net获得新证书(通常每3 - 4年)之前,此时您需要再次更新cert.pem文件或完整的SDK。 / p>