Braintree 与 PayPal 的自定义集成


braintree custom integration with paypal

我是Braintree支付网关的新手。 我正在使用自定义集成进行付款。我使用信用卡成功完成付款。但我有两个问题,我还想在表格中添加我选择的金额。

1)我想在我的表单中添加更多字段,例如客户姓名,地址,电话号码,电子邮件我不知道如何在托管字段中添加更多字段。

2)老实说,我不知道如何在Braintree中配置PayPal,甚至Braintree也说"PayPal在沙盒中默认启用"。当我单击PayPal按钮时,它显示错误,例如" 抱歉,我们无法连接到PayPal。请在几分钟后重试。

我在印度创建了沙盒帐户。也许PayPal不允许从印度PayPal付款。

    <?php 
require ('vendor/autoload.php');
$clientToken = Braintree_ClientToken::generate();
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Checkout</title>
  </head>
  <body>
    <form action="#" id="my-sample-form">
    <div id="paypal-container"></div>
      <label for="card-number">Card Number</label>
      <div id="card-number"></div>
      <label for="cvv">CVV</label>
      <div id="cvv"></div>
      <label for="expiration-date">Expiration Date</label>
      <div id="expiration-date"></div>
      <input type="submit" value="Pay" />
    </form>
    <script src="https://js.braintreegateway.com/v2/braintree.js"></script>
    <script>
      braintree.setup("<?php echo   $clientToken; ?>", "custom", {
        id: "my-sample-form",
        hostedFields: {
          number: {
            selector: "#card-number"
          },
          cvv: {
            selector: "#cvv"
          },
          expirationDate: {
            selector: "#expiration-date"
          }
        },
        paypal: {
      container: "paypal-container",
    },
    onPaymentMethodReceived: function (obj) {
      window.location.href = 'http://localhost/braintreecustom/payment.php?payment_method_nonce='+obj.nonce;
    },
    onError: function (){
        alert('wrong details');
    }
      });
    </script>
  </body>
</html>

这是付款代码.php

<?php
require ('vendor/autoload.php');

  $nonce = $_GET["payment_method_nonce"];

  $result = Braintree_Transaction::sale([
    'amount' => '700.00', // Your amount goes here
    'paymentMethodNonce' => $nonce
  ]);
  ?>

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系支持人员。

1) 要添加其他字段,您需要做的就是将输入字段添加到表单中,并以与托管字段输入相同的方式设置它们的样式。提交表单时,您可以将这些值捕获为普通表单输入。

<form action="#" id="my-sample-form">
  <div id="paypal-container"></div>
  <label for="card-number">Card Number</label>
  <div id="card-number"></div>
  <label for="cvv">CVV</label>
  <div id="cvv"></div>
  <label for="expiration-date">Expiration Date</label>
  <div id="expiration-date"></div>
  <label for="another-field">Another Field</label>
  <input type="text" id="another-field" name="another-field" />
  <input type="submit" value="Pay" />
</form>

这是服务器代码

<?php
require('vendor/autoload.php');
$nonce = $_GET["payment_method_nonce"];
$anotherField = $_GET["another-fild"];
// do something with fields

2)根据给定的信息,我不确定您的PayPal配置出了什么问题。我建议联系 Braintree 支持,以便他们可以帮助您进行故障排除。