首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成Braintree php时出错

集成Braintree php时出错
EN

Stack Overflow用户
提问于 2015-11-23 11:54:15
回答 1查看 865关注 0票数 3

我正在使用braintree来处理我的代码点火器项目中的信用卡支付,Braintree_Transaction::sale抛出无效的参数异常,说无效的密钥消息用于计费地址参数。但我认为没有任何验证错误。我想做的事情可以简化如下:

代码语言:javascript
复制
$card_info = [
      'cardholderName' =>mysql_real_escape_string($_POST['full_name']),
      'number' =>mysql_real_escape_string($_POST['number']),
      'expirationMonth' =>mysql_real_escape_string($_POST['expiry_month']),
      'expirationYear' =>mysql_real_escape_string($_POST['expiry_year']),
      'cvv' =>mysql_real_escape_string($_POST['card_cvv']),
      'billingAddress' =[
              'firstName' =>mysql_real_escape_string($_POST['first_name']),
              'lastName'=>mysql_real_escape_string($_POST['last_name']),
              'streetAddress'=>mysql_real_escape_string($_POST['user_address']),
              'city'=>mysql_real_escape_string($_POST['user_city']),
              'state'=>mysql_real_escape_string($_POST['user_state']),
              'country' =>mysql_real_escape_string($_POST['user_country']),

                ]
       ]
       $result = Braintree_Transaction::sale(['amount'=>'4.99',
                                              'creditCard'=>$card_info,
                                              'options'=>['submitForSettlement' => true]
                                              ])

但是,当我运行以下代码时,会得到以下错误:

代码语言:javascript
复制
 <br />
 <b>Fatal error</b>:  Uncaught exception 'InvalidArgumentException' with       message 'invalid keys: creditCard[billingAddress][city],   creditCard[billingAddress][country], creditCard[billingAddress][firstName], creditCard[billingAddress][lastName], creditCard[billingAddress][state], creditCard[billingAddress][streetAddress]' in   C:\xampp\htdocs\naya_admin\application\third_party\braintree\lib\Braintree\Util.php:343
 Stack trace:
     #0 C:\xampp\htdocs\naya_admin\application\third_party\braintree\lib\Braintree\TransactionGateway.php(48): Braintree\Util::verifyKeys(Array, Array)
      #1    C:\xampp\htdocs\naya_admin\application\third_party\braintree\lib\Braintree\TransactionGateway.php(251): Braintree\TransactionGateway-&gt;create(Array)
      #2 C:\xampp\htdocs\naya_admin\application\third_party\braintree\lib\Braintree\Transaction.php(480): Braintree\TransactionGateway-&gt;sale(Array)
      #3  C:\xampp\htdocs\naya_admin\application\modules\brain_tree\controllers\brain_tree .php(67): Braintree\Transaction::sale(Array)
      #4 [internal function]: Brain_tree-&gt;transaction()
      #5 in 
 <b>C:\xampp\htdocs\naya_admin\application\third_party\braintree\lib\Braintree\Ut il.php</b> on line 
     <b>343</b>
      <br />
EN

回答 1

Stack Overflow用户

发布于 2015-11-23 12:03:02

您需要分离账单地址:

代码语言:javascript
复制
    $card_info = [
    'cardholderName' =>mysql_real_escape_string($_POST['full_name']),
    'number' =>mysql_real_escape_string($_POST['number']),
    'expirationMonth' =>mysql_real_escape_string($_POST['expiry_month']),
    'expirationYear' =>mysql_real_escape_string($_POST['expiry_year']),
    'cvv' =>mysql_real_escape_string($_POST['card_cvv']),
];

$billing =[
    'firstName' =>mysql_real_escape_string($_POST['first_name']),
    'lastName'=>mysql_real_escape_string($_POST['last_name']),
    'streetAddress'=>mysql_real_escape_string($_POST['user_address']),
    'city'=>mysql_real_escape_string($_POST['user_city']),
    'state'=>mysql_real_escape_string($_POST['user_state']),
    'country' =>mysql_real_escape_string($_POST['user_country']),

];

$result = Braintree_Transaction::sale(['amount'=>'4.99',
    'creditCard'=>$card_info,
    'billing' => $billing,
    'options'=>['submitForSettlement' => true]
]);

请参阅Braintree PHP API

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33870498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档