贝宝智能按钮自定义金额

时间:2019-09-03 22:29:32

标签: paypal

我在与Paypal智能按钮有关的一些代码方面有点问题,我不是代码专家,我有点涉猎,但可以提供一些帮助。

我已经设置了按钮,并且一切正常,但是我想这样做,以便客户可以输入他们希望支付的金额,但是到目前为止,我尝试的所有操作都失败了。

例如,如果客户A欠25英镑,则可以访问“付款”部分,输入25英镑,然后单击漂亮的新花式Paypal按钮。

从现在开始我希望找三天的时间,却陷入僵局,我一点都不知道,但还不足以解决问题。

    <script src="https://www.paypal.com/sdk/js?client-id=xxxxxxx&currency=GBP&commit=true">

  </script>

<div id="paypal-button-container"></div>
<script>
  paypal.Buttons({
    createOrder: function(data, actions) {
      // Set up the transaction
 return actions.order.create({
        purchase_units: [{
          amount: {
            value: '10'
          }
        }]
      });
    }
  }).render('#paypal-button-container')
</script>

2 个答案:

答案 0 :(得分:1)

您必须将金额动态传递给PayPal创建订单功能。 在功能中添加了输入字段和传递的金额-除此之外,您还可以通过向输入字段添加检查来检查负数和非0金额。 试试下面的基本代码,希望这能解决问题

<script src="https://www.paypal.com/sdk/js?client-id=xxxxxxx&currency=GBP&commit=true">

  </script>

 <label>Enter amount : </label><input name="amount" type="text"  id="amount" />

    <!-- Set up a container element for the button -->
    <div id="paypal-button-container"></div>
<script>
  paypal.Buttons({
    createOrder: function(data, actions) {
        var amt = document.getElementById("amount").value;
      // Set up the transaction
 return actions.order.create({
        purchase_units: [{
          amount: {
            value: amt
          }
        }]
      });
    }
  }).render('#paypal-button-container')
</script>

答案 1 :(得分:0)

基于PayPal_vidya的示例,我使用了以下与最新的PayPal智能按钮代码配合使用的代码:

<div id="paypal-button-container">
   <label>Enter amount : </label><input name="amount" type="text"  id="amount" />
</div>
<script src="https://www.paypal.com/sdk/js?client-id=sb&currency=USD" data-sdk-integration-source="button-factory"></script>
<script>
  paypal.Buttons({
      style: {
          shape: 'rect',
          color: 'gold',
          layout: 'vertical',
          label: 'paypal',
          
      },
      createOrder: function(data, actions) {
          amt = document.getElementById("amount").value;
          return actions.order.create({
              purchase_units: [{
                  amount: {
                      value: amt
                  }
              }]
          });
      },
      onApprove: function(data, actions) {
          return actions.order.capture().then(function(details) {
              alert('Transaction completed by ' + details.payer.name.given_name + '!');
          });
      }
  }).render('#paypal-button-container');
</script>