Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Paypal签出集成-onShippingChange不适用于新SDK_Javascript_Paypal - Fatal编程技术网

Javascript Paypal签出集成-onShippingChange不适用于新SDK

Javascript Paypal签出集成-onShippingChange不适用于新SDK,javascript,paypal,Javascript,Paypal,我遵循了教程 并且还想根据运输国家更改运输成本,如图所示 我的“贝宝按钮”代码如下所示 <!DOCTYPE html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script src="https://www.paypa

我遵循了教程 并且还想根据运输国家更改运输成本,如图所示

我的“贝宝按钮”代码如下所示

<!DOCTYPE html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<script src="https://www.paypal.com/sdk/js?client-id=XXXXXXXXXX&currency=EUR">
</script>
</head>
<body>

<h2>Checkout</h2>

<div id="paypal-button-container"></div>
<script>
  const baseOrderAmount = '15.00';
  const addFloats = (...floats) => floats.reduce((v, t) => parseFloat(t) + parseFloat(v), 0).toFixed(2);

  paypal.Buttons({

    createOrder: function(data, actions) {
      // Set up the transaction
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: baseOrderAmount
          }
        }]
      });
    },

    onApprove: function(data, actions) {
      // Capture the funds from the transaction
      return actions.order.capture().then(function(details) {
        // Show a success message to your buyer
        alert('Transaction completed by ' + details.payer.name.given_name);
        // Call your server to save the transaction
        return fetch('/paypal-transaction-complete.php', {
          method: 'post',
          body: JSON.stringify({
            orderID: data.orderID
          })
        });
      });
    },

    onShippingChange: function(data, actions) {

        // Reject all others
        if ((data.shipping_address.country !== 'DE') || (data.shipping_address.country !== 'AT') || (data.shipping_address.country !== 'CH')) {
            return actions.reject();
        }

        // Patch the shipping amount
        var shippingAmount = 10.0;
        if (data.shipping_address.country == 'AT') {
            shippingAmount = 20.0;
        }
        if (data.shipping_address.country == 'CH') {
            shippingAmount = 30.0;
        }

        return actions.order.patch([
        {
            op: 'replace',
            path: "/purchase_units/@reference_id=='default'/amount",
            value: {
                currency_code: 'EUR',
                value: addFloats(baseOrderAmount, shippingAmount),
                breakdown: {
                    item_total: {
                        currency_code: 'EUR',
                        value: baseOrderAmount
                    },
                    shipping: {
                        currency_code: 'EUR',
                        value: shippingAmount
                    }
                }
            }
        }]);
    }
  }).render('#paypal-button-container');
</script>
</body>
</html>

结账
常量baseOrderAmount='15.00';
constaddfloats=(…floats)=>floats.reduce((v,t)=>parseFloat(t)+parseFloat(v,0).toFixed(2);
贝宝,按钮({
createOrder:函数(数据、操作){
//设置事务
return actions.order.create({
购买单位:[{
金额:{
值:baseOrderAmount
}
}]
});
},
onApprove:功能(数据、操作){
//从交易中获取资金
返回actions.order.capture().then(函数(详细信息){
//向买家显示成功消息
警报('交易由'+详细信息.付款人.名称.给定名称'完成);
//调用服务器以保存事务
返回fetch(“/paypal transaction complete.php”{
方法:“post”,
正文:JSON.stringify({
orderID:data.orderID
})
});
});
},
onShippingChange:功能(数据、操作){
//拒绝所有其他
如果((data.shipping_address.country!=='DE')| |(data.shipping_address.country!=='AT')| |(data.shipping_address.country!=='CH')){
返回操作。拒绝();
}
//修补装运金额
var shippingAmount=10.0;
如果(data.shipping_address.country=='AT'){
发货金额=20.0;
}
如果(data.shipping_address.country=='CH'){
发货金额=30.0;
}
return actions.order.patch([
{
op:“替换”,
路径:“/purchase\u units/@reference\u id=='default'/amount”,
价值:{
货币代码:“欧元”,
值:addFloats(baseOrderAmount、shippingAmount),
细分:{
项目u总计:{
货币代码:“欧元”,
值:baseOrderAmount
},
装运:{
货币代码:“欧元”,
价值:发货金额
}
}
}
}]);
}
}).render(“#贝宝按钮容器”);

其他一切都很好,但当我加入onShippingChange()时,我总是从paypal那里得到消息,“卖家不在这个国家发货,使用不同的地址…”(但我使用的是德国地址)

更改以下行:

data.shipping_address.country
致:

致以最良好的祝愿,
托马斯更改以下行:

data.shipping_address.country
致:

致以最良好的祝愿, 托马斯