使用Authorize.NET PHP SDK的SSL选项无效
我正在尝试使用Authorize.NET的PHPSDK刷卡。但它总是给我这个错误:使用Authorize.NET PHP SDK的SSL选项无效,php,ssl,authorize.net,Php,Ssl,Authorize.net,我正在尝试使用Authorize.NET的PHPSDK刷卡。但它总是给我这个错误: Thu, 29 Mar 2018 17:00:56 +0000 ERROR : [_sendRequest] (/lib/shared/AuthorizeNetRequest.php : 100) - ----Request---- Invalid SSL option 它以前工作过,但现在它不断给我一个错误,我对此进行了研究,但没有找到答案,我在代码中尝试过: $sale->VERIFY_PEER =
Thu, 29 Mar 2018 17:00:56 +0000 ERROR : [_sendRequest] (/lib/shared/AuthorizeNetRequest.php : 100) - ----Request---- Invalid SSL option
它以前工作过,但现在它不断给我一个错误,我对此进行了研究,但没有找到答案,我在代码中尝试过:
$sale->VERIFY_PEER = false;
我还更新了我的cert.pem
文件,但它仍然给我一个错误
PHP代码:
<?php
require 'vendor/autoload.php';
use lib\net\authorize\api\contract\v1 as AnetAPI;
use lib\net\authorize\api\controller as AnetController;
define("AUTHORIZENET_LOG_FILE", "phplog");
$usermeta = get_user_meta(get_current_user_id(), '_carddetails_', TRUE);
define("AUTHORIZENET_API_LOGIN_ID", "[LOGIN_ID]");
define("AUTHORIZENET_TRANSACTION_KEY", "[TRANSACTION_KEY]");
define("AUTHORIZENET_SANDBOX", true);
$sale = new AuthorizeNetAIM(AUTHORIZENET_API_LOGIN_ID, AUTHORIZENET_TRANSACTION_KEY);
$sale->VERIFY_PEER = false;
$sale->amount = $_POST['grandTotal'];
$sale->card_num = $usermeta['number'];
$sale->exp_date = $usermeta['expdate'];
$sale->addLineItem('item1', // Item Id
'Order 1', // Item Name
'Order 1', // Item Description
'1', // Item Quantity
$_POST['grandTotal'], // Item Unit Price
'N' // Item taxable
);
$customer = (object) array();
$customer->first_name = $usermeta['firstname'];
$customer->last_name = $usermeta['lastname'];
$customer->company = $usermeta['company'];
$customer->address = $usermeta['address'];
$customer->city = $usermeta['city'];
$customer->state = $usermeta['state'];
$customer->zip = $usermeta['zip'];
$customer->country = $usermeta['country'];
$customer->cust_id = 9999;
$customer->customer_ip = $_SERVER['REMOTE_ADDR'];
$sale->setFields($customer);
$response = $sale->authorizeAndCapture();
$responseCode = $response->response_code;
$authCode = $response->authorization_code;
$avsResultCode = $response->avs_response;
$transId = $response->transaction_id;
$transHash = $response->md5_hash;
$accountNumber = $response->account_number;
$accountType = $response->card_type;
$description = $response->description;
if ($response->approved)
{
echo "iT worked";
}
else
{
echo $response->error_message;
}
?>
我已经弄明白了
我评论道:
$sale->VERIFY_PEER = false;
并注释了HttpClient.php的第80行
我在这里找到了答案:您应该从中获取最新的证书。最后一次更新是在写这篇文章的5天前,包括了新的授权证书
禁用或更改默认对等验证和证书验证可能很危险。我已经这样做了,但不起作用,我已经解决了我的问题,请查看我的答案!