使用 Authorize.NET PHP SDK 的 SSL 选项无效
Invalid SSL option using the Authorize.NET PHP SDK
我正在尝试使用 Authorize.NET 的 PHP SDK 为卡充电。但它一直给我这个错误:
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 行
这里是我找到答案的地方:https://github.com/AuthorizeNet/sdk-php/issues/223
您应该从 https://github.com/AuthorizeNet/sdk-php/tree/master/lib/ssl 获取最新的证书。最后一次更新是在撰写本文时 5 天前 post 以包含新的授权证书。
禁用或更改默认的对等和证书验证可能很危险。
我正在尝试使用 Authorize.NET 的 PHP SDK 为卡充电。但它一直给我这个错误:
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 行这里是我找到答案的地方:https://github.com/AuthorizeNet/sdk-php/issues/223
您应该从 https://github.com/AuthorizeNet/sdk-php/tree/master/lib/ssl 获取最新的证书。最后一次更新是在撰写本文时 5 天前 post 以包含新的授权证书。
禁用或更改默认的对等和证书验证可能很危险。