使用PHP的PayPal Checkout API-安全地发送和检索其他数据

时间:2019-07-08 00:12:21

标签: php api paypal

我正在学习使用Paypal的新API版本,我对此有些疑问。

  

注意:我已经在https://www.sandbox.paypal.com上进行过尝试,并且可以正常工作,   我尚未在Live上进行测试。

onApprove:

我需要将其他个性化数据发送到Paypal,一旦用户付款,我将返回服务器上的URL,然后检索我发送的数据。

Paypal使用 fetch()来指定URL和一个称为标头的Json对象,在那里我添加了需要恢复的名为 user_ID 的附加值。

我正在使用PHP函数 getallheaders()来检索我指定的 user_ID

我的问题是:

  1. 这是将个性化数据发送到PayPal然后进行恢复的正确方法吗?
  2. 使用 getallheaders()是安全的,我了解可以在发送标头之前对其进行修改,是否有可能对其进行更改?
  3. 使用 $ _ SERVER ['HTTP_REFERER'] 来检测所引用的网站来自Paypal,这仍然安全还是很难破解?
  4. 这是整合Paypal Checkout的安全方法吗?
  5. 任何可以给我的建议。

非常感谢您的帮助。

<!DOCTYPE html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>

<body>


    <input type="text" id="price" value="100.00">
  <input type="hidden" id="user_id" value="15">

    <div id="paypal-button-container"></div>

    <script src="https://www.paypal.com/sdk/js?client-id=HERE_CLIENT_ID&currency=USD"></script>

    <script>
    paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: document.getElementById("price").value
          }
        }]
      });
    },
    onApprove: function(data, actions) {
      return actions.order.capture().then(function(details) {
        alert('Transaction completed by ' + details.payer.name.given_name);
        // Call your server to save the transaction
        return fetch('https://my-domain.com/payment-from-paypal.php', {
          method: 'post',
          headers: {
            'content-type': 'application/json'
          },
          body: JSON.stringify({
            orderID: data.orderID,
            user_ID: document.getElementById("user_id").value
          })
        });
      });
    }
  }).render('#paypal-button-container');

  </script>
</body>

0 个答案:

没有答案