【问题标题】:Auth.net eCheck implementation using John Conde's AuthnetXML Class使用 John Conde 的 AuthnetXML 类的 Auth.net eCheck 实现
【发布时间】:2016-03-02 11:15:49
【问题描述】:

我有一个通过信用卡处理订阅的此类的现有实现,但我现在需要添加工具以接受 eCheck 付款,但我不确定如何更改这部分代码:

        'payment' => array(
            'creditCard' => array(
                'cardNumber' => '4111111111111111',
                'expirationDate' => '2016-08'
            )
        ),

我通过参考 AIM 指南 pdf 和 A​​IM 指南 XML pdf 得出以下结论

        'payment' => array(
            'bankAccount' => array(     // x_method equivalent ?
                'routingNumber' => '',  // x_bank_aba_code equivalent ?
                'accountNumber' => '',  // x_bank_acct_num equivalent ?
                'nameOnAccount' => '',  // x_bank_acct_name equivalent ?
                'bankName' => '',       // x_bank_name equivalent ?
                'echeckType' => 'WEB'   // x_echeck_type equivalent
                /*
                x_bank_acct_type has no equivalent ?
                */
            )
        ),

但必填字段之间似乎存在一些差异?

在我开始之前的任何指示将不胜感激。

【问题讨论】:

    标签: php authorize.net


    【解决方案1】:

    看看Authorize.Net's documentation 这应该可以工作:

        'payment' => array(
            'bankAccount' => array(     
                'accountType' => '',  // 'checking'
                'routingNumber' => '',  
                'accountNumber' => '',  
                'nameOnAccount' => '' 
            )
        ),
    

    【讨论】:

    • 谢谢约翰,非常感谢我会修改我的测试文件并试一试。
    【解决方案2】:

    从约翰的回答开始,这是我用来解决这个问题的完整代码,供任何人通过谷歌搜索找到这个问题:

    $xml->ARBCreateSubscriptionRequest(array(
    'subscription' => array(
        'name' => 'SubscriptionName',
        'paymentSchedule' => array(
            'interval' => array(
                'length' => '1',
                'unit' => 'months'
            ),
            'startDate' => date('Y-m-d', time()), // Format: YYYY-MM-DD
            'totalOccurrences' => '9999' // To submit a subscription with no end date (an ongoing subscription), this field must be submitted with a value of 9999
        ),
        'amount' => $eCart1->GrandTotal(), // total monthly subscription
        'payment' => array(
            'bankAccount' => array(    
              'accountType'     => ((isset($_POST["accountType"]))?$_POST["accountType"]:""),        // options available are checking or businessChecking in this instance
              'routingNumber' => ((isset($_POST["routingNumber"]))?$_POST["routingNumber"]:""),    
              'accountNumber' => ((isset($_POST["accountNumber"]))?$_POST["accountNumber"]:""),  
              'nameOnAccount' => ((isset($_POST["nameOnAccount"]))?$_POST["nameOnAccount"]:""),
              'echeckType'      => ((isset($_POST["echeckType"]))?$_POST["echeckType"]:"")          // if businessChecking is chosen then 'CCD' else 'WEB'
            )
        ),
        'customer' => array(
          'id' => "'".$_SESSION['clientID']."'",
          'email' => "'".((isset($_POST["email"]))?$_POST["email"]:"")."'"
        ),
        'billTo' => array(
            'firstName' => "'".((isset($_POST["firstname"]))?$_POST["firstname"]:"")."'",
            'lastName' => "'".((isset($_POST["lastname"]))?$_POST["lastname"]:"")."'",
            'company' => "'".((isset($_POST["company"]))?$_POST["company"]:"")."'",
            'address' => "'".((isset($_POST["street1"]))?$_POST["street1"]:"")."'",
            'city' => "'".((isset($_POST["city"]))?$_POST["city"]:"")."'",
            'state' => "'".((isset($_POST["state_province"]))?$_POST["state_province"]:"")."'",
            'zip' => "'".((isset($_POST["postcode"]))?$_POST["postcode"]:"")."'"            
        )
    )
    

    ));

    【讨论】:

      猜你喜欢
      • 2016-11-28
      • 2016-07-06
      • 1970-01-01
      • 2012-02-21
      • 2023-03-06
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 2016-08-15
      相关资源
      最近更新 更多