javascript - 集成 braintree 导致问题

标签 javascript php braintree

我是第一次在 Braintree 上工作,并且在第一步就遇到了问题。我无法访问 dropin 功能和其他.. 我需要帮助来解决这个问题。

我按照此处给出的步骤操作:https://developers.braintreepayments.com/javascript+php/start/overview

第一步是 Javascript 客户端! - 我按照提到的那样进行操作,添加了脚本

 <script src="https://js.braintreegateway.com/v2/braintree.js"></script>

然后添加HTML部分

<form id="checkout" method="post" action="/checkout">
  <div id="dropin"></div>
  <input type="submit" value="Pay $10">
</form>

最后,我在脚本标签中添加了以下脚本。

braintree.setup("CLIENT_TOKEN_KEY", 'dropin', {
   container: 'checkout'
})

我已经检查了从我们的服务器获得的客户端 token key 。

对于下一步,我添加了提到的配置

Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('use_your_merchant_id'); //updated with our merchant id
Braintree_Configuration::publicKey('use_your_public_key'); // updated with our public key
Braintree_Configuration::privateKey('use_your_private_key'); //updated with our private key

然后添加

$clientToken = Braintree_ClientToken::generate(array(
   "customerId" => $aCustomerId 
));

现在,我遇到的问题 -

当我用我们的客户 ID 更新 $aCustomerId 时,我收到了 Braintree_ClientToken 中未定义的“customer_id”字段的 fatal error 。所以删除了 array("customer"=>$aCustomerId) 并获得了客户端 token ..

客户端 token 在 brantree.setup('TOKEN_KEY','dropin',{container:'checkout'}) 中使用并得到

Error: Unable to find valid container. -braintree.js(line 18) 

我还在 brantree.setup('TOKEN_KEY','dropin',{container:'checkout'}) 上面提到过 var braintree = Braintree.create("CLIENT_TOKEN_KEY"); 那时我得到了 TypeError: braintree.setup is not a function

我试图从过去两天解决这个问题,但我仍然没有得到演示中显示的下拉屏幕。

希望得到好的帮助..

最佳答案

将所有脚本放在 html/footer 部分之后,这将起作用:

<?php
require_once 'braintree-php-2.30.0/lib/Braintree.php';

Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('-----------');
Braintree_Configuration::publicKey('-----------');
Braintree_Configuration::privateKey('-----------');
if(isset($_POST['submit'])){
    /* process transaction */
    $result = Braintree_Transaction::sale(array(
     'amount' => '234.00',
     'creditCard' => array(
     'number' => '30569309025904',
     'expirationDate' => '05/14'
    )
  ));

if ($result->success) {
  print_r("success!: " . $result->transaction->id);
  } else if ($result->transaction) {
    print_r("Error processing transaction:");
    print_r("\n  code: " . $result->transaction->processorResponseCode);
    print_r("\n  text: " . $result->transaction->processorResponseText);
    } else {
      print_r("Validation errors: \n");
      print_r($result->errors->deepAll());
    }
}

$clientToken = Braintree_ClientToken::generate();

?>

<html>
  <head>
  </head>
  <body>
    <div id="checkout" method="post" action="/checkout">
      <div id="dropin"></div>
      <input data-braintree-name="number" value="4111111111111111">
      <input data-braintree-name="expiration_date" value="10/20">
      <input type="submit" id="submit" value="Pay">
      <div id="paypal-button"></div>
    </div>  

  <!-- Scripts -->
  <script src="https://code.jquery.com/jquery-2.1.1.js"></script>
  <script src="https://js.braintreegateway.com/v2/braintree.js"></script>
  <script>
    braintree.setup("<?php print $clientToken; ?>",  "dropin", { container:
    jQuery("#dropin") ,  form: jQuery("#checkout") , 

    paymentMethodNonceReceived: function (event, nonce) {
      // do something
      }
    });
  </script>

  </body>
</html>                 

关于javascript - 集成 braintree 导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24912893/

相关文章:

javascript - 如何实现 Wordpress 的 the_permalink();进入Javascript?

php - Laravel Blade : Getting access to a variable in a nested partial from a parent view

javascript - AngularJS 通过 $http.post 将更新的数据发送到 php 页面

c# - Braintree API 在 Sandbox 中的 CreateCard.Create 上抛出 Braintree.Exceptions.AuthorizationException

android - 如何在 Woocommerce Rest API 中获取 token 化 key ?

paypal - Braintree 沙箱接受不存在的 PayPal 账户?

javascript - 使用模板以表格格式显示数据

javascript - 使用源映射 Unuglify js 文件

javascript - 无法使用 Promise 绑定(bind)到 Angular 存储库数据

javascript - var dump formdata as POST 返回 NULL