2014-04-28 7 views
0
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.Authorize.net AIM Transaction

Я думаю, для Визы требуется адрес и ZIP-код? Есть ли что-то, что мне не хватает с необходимыми значениями с AIM для загрузки 0.00?

Примечание: Этот код работает до тех пор, пока $ contractorRate имеет значение выше 0 - это нормально, но если подрядчик хочет подождать 30 дней, чтобы зарядить клиента, я не хочу сначала взимать их с AIM ,

ответ

1

Поставщик торгового счета, вероятно, не поддерживает суммы в размере 0,00 руб. Вы должны довольствоваться их проверкой. Если они этого не сделают, вы можете сделать авторизацию за 0,01 доллара, а затем аннулировать транзакцию впоследствии.

Адрес и почтовый индекс не требуется для обработки транзакции, но необходимы для выполнения AVS. Несоблюдение AVS может привести к тому, что на транзакцию будет взиматься максимальная применимая ставка.