Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 如何将JS变量传递给第二个脚本,而不必从控制台访问或修改它?_Javascript_Html_Paypal_Global Variables_Private Key - Fatal编程技术网

Javascript 如何将JS变量传递给第二个脚本,而不必从控制台访问或修改它?

Javascript 如何将JS变量传递给第二个脚本,而不必从控制台访问或修改它?,javascript,html,paypal,global-variables,private-key,Javascript,Html,Paypal,Global Variables,Private Key,我有两个脚本,一个用于计算购物车中物品的总数,另一个用于将变量传递给PayPal API。是否可以将此变量从购物车脚本传递到PayPal脚本,而没有人能够从控制台更改其值?否则,人们将能够确定他们愿意为这些物品支付多少钱,并将信息发送到PayPal。这是我的密码: 购物车: ``` var total = 0; //Total for all the items in the shopping cart, value is passed off to paypal-buttons.js to c

我有两个脚本,一个用于计算购物车中物品的总数,另一个用于将变量传递给PayPal API。是否可以将此变量从购物车脚本传递到PayPal脚本,而没有人能够从控制台更改其值?否则,人们将能够确定他们愿意为这些物品支付多少钱,并将信息发送到PayPal。这是我的密码:

购物车:

```
var total = 0; //Total for all the items in the shopping cart, value is passed off to paypal-buttons.js to complete the checkout.
贝宝:


    paypal.Buttons({
  style: {
    shape: 'rect',
    color: 'gold',
    layout: 'vertical',
    label: 'checkout',

  },
  createOrder: function(data, actions) {

    return actions.order.create({
      purchase_units: [{
        amount: {
          value: total
        }
      }]
    });
  },
  onApprove: function(data, actions) {
    return actions.order.capture().then(function(details) {
      alert('Thank you for your order ' + details.payer.name.given_name +   ', your equipment is on its way!');
    });
  }
}).render('#paypal-button-container');


我想将购物车中的“总计”值发送到PayPal。我可能会尝试使用模糊处理作为部分解决方案,但我希望它更安全。

防止恶意客户端更改的唯一方法是切换到服务器端集成API调用以设置和捕获付款。以下是UI的演示模式:

以下是从服务器实现必要的v2/orders API调用的指南:


如果可以从控制台更改变量,则表示它在全局范围内。一个简单的生活方式就可以解决这个问题。但是,请记住,任何聪明到可以使用浏览器调试器的人都可以绕过这一问题。与其加载多个可以使用的脚本,不如以任何方式存储篮(不需要安全),然后将其发布到已知的安全服务器,而不是执行客户端处理。然后,该服务器根据存储在服务器上的价格计算出总价后,向PayPal发出付款请求。这样,即使客户机发出恶意请求,他们所能做的就是买东西。你还应该确认此人没有购买负数的物品,因为这是一种很容易的偷钱方式。

    paypal.Buttons({
  style: {
    shape: 'rect',
    color: 'gold',
    layout: 'vertical',
    label: 'checkout',

  },
  createOrder: function(data, actions) {

    return actions.order.create({
      purchase_units: [{
        amount: {
          value: total
        }
      }]
    });
  },
  onApprove: function(data, actions) {
    return actions.order.capture().then(function(details) {
      alert('Thank you for your order ' + details.payer.name.given_name +   ', your equipment is on its way!');
    });
  }
}).render('#paypal-button-container');