Javascript 贝宝客户端休息:动态价格

Javascript 贝宝客户端休息:动态价格,javascript,php,rest,paypal,Javascript,Php,Rest,Paypal,我正在为我的项目使用PayPal客户端REST。我有不同的产品,每个都有不同的价格。我有一个文本框,其中包含购物车中所有产品的总价格。但是当我试图获取文本框的值时,我发现PayPalAPI出现了一个错误。下面是我的代码: <input type="number" id="total_amount"> <div id="paypal-button-container" class="text-right"></div> <script src="http

我正在为我的项目使用PayPal客户端REST。我有不同的产品,每个都有不同的价格。我有一个文本框,其中包含购物车中所有产品的总价格。但是当我试图获取文本框的值时,我发现PayPalAPI出现了一个错误。下面是我的代码:

<input type="number" id="total_amount">
<div id="paypal-button-container" class="text-right"></div>

<script src="https://www.paypalobjects.com/api/checkout.js"></script>

<script>
    var amt =  $('#total_amount').val();
    paypal.Button.render({
    env: 'sandbox',
    client: {
        sandbox:    '<sandbox_api_ey>',
        production: '<insert production client id>'
    },

    payment: function(data, actions) {
        var amt = $('#total_amount').val();
        return actions.payment.create({
            payment: {
                transactions: [
                    {
                        amount: { total: amt, currency: 'JPY' }
                    }
                ]
            }
        });
    },

    onAuthorize: function(data, actions) {
        return actions.payment.execute().then(function() {
            window.alert('Payment Complete!');
        });
    }

}, '#paypal-button-container');
</script>

var金额=$('总金额').val();
paypal.Button.render({
环境:“沙盒”,
客户:{
沙盒:“”,
生产:''
},
支付:功能(数据、操作){
var金额=$('总金额').val();
返回操作.payment.create({
付款:{
交易:[
{
金额:{总计:金额,币种:'JPY'}
}
]
}
});
},
onAuthorize:函数(数据、操作){
返回actions.payment.execute().then(function()){
window.alert('Payment Complete!');
});
}
}“#贝宝按钮容器”);
从我的代码中可以看到,我将金额存储在变量
var amt=$(“#total_amount”).val()中
然后在json中使用该变量

我的问题是我在控制台中遇到了这个错误,paypal窗口无法打开。


它指向的是货币,但我很确定它是正确的,只要我硬编码了金额,它就会正常工作。

你可以尝试类似的方法

payment: function (data, actions) {

var x = document.getElementById("total_amount");
var currentVal = x.value;

console.log(currentVal);
return actions.payment.create({
  transactions: [{
    amount: {
      total: currentVal,
      currency: 'JPY'
    }
  }]
});
}
另外,请确保在HTTPS环境中进行测试

请参见此处的完整工作片段

<iframe width="100%" height="300" src="//jsfiddle.net/vwas4cqj/embedded/" allowfullscreen="allowfullscreen" allowpaymentrequest frameborder="0"></iframe>

您可以尝试以下方法

payment: function (data, actions) {

var x = document.getElementById("total_amount");
var currentVal = x.value;

console.log(currentVal);
return actions.payment.create({
  transactions: [{
    amount: {
      total: currentVal,
      currency: 'JPY'
    }
  }]
});
}
另外,请确保在HTTPS环境中进行测试

请参见此处的完整工作片段

<iframe width="100%" height="300" src="//jsfiddle.net/vwas4cqj/embedded/" allowfullscreen="allowfullscreen" allowpaymentrequest frameborder="0"></iframe>


您是将其硬编码为数字还是字符串?我将其硬编码为字符串您是将其硬编码为数字还是字符串?我将其硬编码为字符串