Jquery 创建一个贝宝捐赠按钮,使用智能按钮选择价格或填写自己的价格

Jquery 创建一个贝宝捐赠按钮,使用智能按钮选择价格或填写自己的价格,jquery,paypal,Jquery,Paypal,当我输入自己想要的价格时,paypal支付平台会弹出良好的窗口,但我的问题是当我点击选项价格时,paypal似乎没有检测到价格值。 这就是我在下面所做的。当我点击这些单独的价格。贝宝似乎没有得到价格的价值。该值出现在输入字段中,但paypal无法识别,除非我手动输入所需的值 请我需要这个,我在做一个项目。这需要动态工作。javascript有什么问题吗?请告诉我。同时告诉我一个更好的方法 <table border="0" cellpadding=&quo

当我输入自己想要的价格时,paypal支付平台会弹出良好的窗口,但我的问题是当我点击选项价格时,paypal似乎没有检测到价格值。 这就是我在下面所做的。当我点击这些单独的价格。贝宝似乎没有得到价格的价值。该值出现在输入字段中,但paypal无法识别,除非我手动输入所需的值

请我需要这个,我在做一个项目。这需要动态工作。javascript有什么问题吗?请告诉我。同时告诉我一个更好的方法

       <table border="0" cellpadding="10" cellspacing="0" align="center">  
       <img src="https://www.paypalobjects.com/digitalassets/c/website/marketing/apac/C2/logos-buttons/optimize/26_Blue_PayPal_Pill_Button.png" alt="PayPal" /></table>

           
<h4 class="text-style-news">Paypal Payment Platform</h4>
<button id="Paypal1" class="btn btn-sm btn-danger" style="margin-right: 15px;">$10</button>
<button id="Paypal2" class="btn btn-sm btn-danger" style="margin-right: 15px;">$20</button>
<button id="Paypal3" class="btn btn-sm btn-danger" style="margin-right: 15px;">$50</button>
<button id="Paypal4" class="btn btn-sm btn-danger">$100</button> 

  <label style="float: left;" for="amount" class="mb-2"><p class="support-p"><strong>Any Amount*</strong></p></label>
             <br> <br>        
    <input type="number" id="amount" class="form-control mb-4" placeholder="in $USD" onchange="Pay()">
              <br>
 <!-- Set up a container element for the button -->
    <div id="paypal-button-container"></div>    
    <!-- Include the PayPal JavaScript SDK -->
        <script src="https://www.paypal.com/sdk/js?client-id=sb&currency=USD">          
          </script>

<script>
        var amount = 0;
        function Pay() {
            // body...
       amount = document.getElementById("amount").value;
        }
        // Render the PayPal button into #paypal-button-container
        paypal.Buttons({
            // Set up the transaction
            createOrder: function(data, actions) {
                return actions.order.create({
                    purchase_units: [{
                        amount: {
                            value: amount
                               }
                            }]
                        });
                  },
            // Finalize the transaction
            onApprove: function(data, actions) {
                return actions.order.capture().then(function(details) {
                    // Show a success message to the buyer
                    alert('Donation completed by ' + details.payer.name.given_name + '!');
                   location.replace("https://www.example.com/completed_success.php");
                });
            }

        }).render('#paypal-button-container');
    </script>
<script>
    $("#Paypal1").click(function () {
    $("#amount").val("10");   
});  
    $("#Paypal2").click(function () {
    $("#amount").val("20");   
});  
    $("#Paypal3").click(function () {
    $("#amount").val("50");   
});
   
    $("#Paypal4").click(function () {
    $("#amount").val("100");   
});
   </script>


贝宝支付平台
$10
$20
$50
$100 

任何金额*




风险价值金额=0; 职能薪酬(){ //身体。。。 金额=document.getElementById(“金额”).value; } //将PayPal按钮渲染到#PayPal按钮容器中 贝宝,按钮({ //设置事务 createOrder:函数(数据、操作){ return actions.order.create({ 购买单位:[{ 金额:{ 价值:金额 } }] }); }, //完成交易 onApprove:功能(数据、操作){ 返回actions.order.capture().then(函数(详细信息){ //向买家显示成功消息 警报(“+details.payer.name.given_name+”!”完成的捐赠); 位置。替换(“https://www.example.com/completed_success.php"); }); } }).render(“#贝宝按钮容器”); $(“#Paypal1”)。单击(函数(){ 美元(“金额”).val(“10”); }); $(“#Paypal2”)。单击(函数(){ 美元(“金额”).val(“20”); }); $(“#Paypal3”)。单击(函数(){ 美元(“金额”).val(“50”); }); $(“#Paypal4”)。单击(函数(){ 美元(“金额”).val(“100”); });
您可以通过使用一个
单击
功能简化您的
代码
,并在HTML按钮中添加属性,还可以向按钮添加一个
,用于调用单击事件

我们只需将
数据id
分配给每个按钮,每个按钮都有相应的金额,单击按钮时,我们使用jQuery
数据
获取
id
和分配给
id
的值,该值将为金额

此外,我将仅使用
jQuery
或纯
JS
进行修改。它不希望两者都混淆,因此没有混淆

要获得金额,只需在
Pay()
函数中使用
.val()
函数即可

我还建议使用以下函数将
字符串
转换为
数字
(整数)。我相信paypal希望数字是
金额
,而不是字符串值

贝宝的完整工作演示:

运行下面的代码段以查看它是否正常工作。(您可以将PayPal配置添加回代码中,如果我添加它,这里的代码段会阻止它。)

//一键取数功能(金额)
$(“.Paypal”)。单击(函数(){
$('#amount').val($(this.data('id'))
//再次调用pay函数,以便paypal的值也会更新。
支付
});
风险价值金额=0;
职能薪酬(){
//得到数量
amount=parseInt($('#amount').val()//使用parseInt获取int值
console.log(金额)
}

贝宝支付平台
$10
$20
$50
$100

任何金额*





如果我帮您解答了这个问题,您介意接受我的工作答案吗。让我知道。你好,谢谢你的回答,我不在家。很抱歉,我回信晚了。但我认为我的库存仍然充足。PayPal似乎将这些值视为一个字符串。仍然存在相同的问题,仅在手动输入值时有效。如何使用parseInt()?我已经更新了答案,以获取数值。请参见
支付
功能
amount=parseInt($('#amount').val())
我会这样做,稍后给你反馈。如果我仍然遇到问题,我还能对代码做些什么?我发现了问题所在。当您单击自定义金额等按钮时,根本没有调用
Pay()
函数。它只适用于手动输入的原因是您的输入中有
onchange=“Pay()”
。我在您的单击函数中也添加了
Pay()
函数,因此当您单击按钮时会调用该函数,当您手动键入金额时也会调用该函数。我在下面编辑了我的答案。