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 может привести к тому, что с транзакции будет взиматься максимальная применимая ставка.

Другие вопросы по тегам