Authorize.net AIM Транзакция
require_once 'anet_php_sdk/AuthorizeNet.php';
define("AUTHORIZENET_API_LOGIN_ID", $authLogin);
define("AUTHORIZENET_TRANSACTION_KEY", $authKey);
//Set to true for test account, set to false for real account
define("AUTHORIZENET_SANDBOX", true);
$sale = new AuthorizeNetAIM;
$sale->amount = $contractorRate;
$sale->card_num = $ccnumber;
$sale->exp_date = $ccexpire;
$sale->card_code = $cccvv;
$response = $sale->authorizeAndCapture();
//If approved, use this for getting the transaction ID.
if ($response->approved) {
$transaction_id = $response->transaction_id;
//ARB creates the subscription and sets the start date 30 days from the time of submission.
require_once 'anet_php_sdk/AuthorizeNet.php';
define("AUTHORIZENET_API_LOGIN_ID", $authLogin);
define("AUTHORIZENET_TRANSACTION_KEY", $authKey);
$subscription = new AuthorizeNet_Subscription;
$subscription->name = "PumpSpy Monitoring";
$subscription->intervalLength = "1";
$subscription->intervalUnit = "months";
$subscription->startDate = $subStartDate;
$subscription->totalOccurrences = "9999";
$subscription->amount = $contractorRate;
$subscription->creditCardCardNumber = $ccnumber;
$subscription->creditCardExpirationDate= $ccexpire;
$subscription->creditCardCardCode = $cccvv;
$subscription->billToFirstName = $firstname;
$subscription->billToLastName = $lastname;
// Create the subscription.
$request = new AuthorizeNetARB;
$response = $request->createSubscription($subscription);
Выше приведен мой код для проверки кредитной карты (с использованием AIM) и создания подписки через 30 дней (с использованием ARB). У меня возникла проблема с попыткой использовать 0,00 для суммы продажи AIM. Он ничего не принимает, даже если я изменю продажу на AUTH_ONLY.
Я думаю, что Visa требует адрес и почтовый индекс? Есть ли что-то, что я пропускаю с необходимыми значениями с AIM для зарядки 0,00?
Примечание. Этот код работает до тех пор, пока значение $ contractorRate имеет значение выше 0 - это нормально, но если подрядчик хочет подождать 30 дней, чтобы выставить счет клиенту, сначала я не хочу связывать его с AIM.
1 ответ
Поставщик торгового счета, вероятно, не поддерживает суммы в размере 0,00 долларов США. Вы должны довольствоваться ими, чтобы убедиться, что они это делают. Если нет, вы можете сделать авторизацию за 0,01 доллара, а затем аннулировать транзакцию.
Адрес и почтовый индекс не требуется для обработки транзакции, но требуется для выполнения AVS. Невыполнение AVS может привести к тому, что с транзакции будет взиматься максимальная применимая ставка.