2014-04-28 68 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)创建订阅的代码。我遇到的问题是试图将AIM销售额用于0.00。即使我将销售更改为AUTH_ONLY,它也不接受任何内容。Authorize.net AIM交易

我认为Visa需要地址和邮政编码? AIM收取0.00时所需的值是否有缺失?

注意:只要$ contractorRate的值高于0--这很好,但如果承包商想要等待30天来为客户收费,那么我不想在第一时间用AIM向他们收费。

回答

1

商家账户提供商可能不支持$ 0.00金额。你应该满足他们去验证他们的确。如果他们不这样做,你可以以0.01美元的价格进行授权,然后在事后撤销交易。

地址和邮政编码不需要处理交易,但需要执行AVS。未能执行AVS可导致交易以最高适用速度收费。

相关问题