如何将金额字段设置为 PayPal SDK

时间:2021-03-08 07:40:35

标签: php paypal

我正在使用 PayPal express 并希望将金额字段值发送到服务器文件 (payment.php) 来自客户端脚本,并希望将其值获取到服务器端文件。

这里是客户端脚本

If you would like to keep these lines, you can also append ":$PATH" to each path like below, then wsl --shutdown

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:$PATH"
fi

这是我想获取金额字段值的payment.php

<script src="https://www.paypal.com/sdk/js?client-id=<client-id>"></script>
<script>
    paypal.Buttons({
        createOrder: function() {
          return fetch('payment.php', {
            method: 'post',
            headers: {
              'content-type': 'application/json'
            },
          }).then(function(res) {
            return res.json();
          }).then(function(data) {
            return data.id;
          });
        },
    onApprove: function(data, actions) {
      // This function captures the funds from the transaction.
      return actions.order.capture().then(function(details) {
        // This function shows a transaction success message to your buyer.
          window.location = "paypal-transaction-complete.php?&orderID="+data.orderID;             
      });
    }
  }).render('#paypal-button-container');
</script>
<div id="paypal-button-container"></div>

请让我知道我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:0)

对于 PHP,最简单的方法是使用 GET 字符串。

return fetch('payment.php?amount=' + document.getElementById('amount').value , {

^ 您可能想要验证或清理该输入或 URL 编码值,但在大多数情况下它应该可以工作。

                            array(
                                'currency_code' => 'USD',
                                'value' => $_GET['amount']
                            )

它不是现代的,但对你来说是 PHP,解析 JSON 可能有点矫枉过正。


在服务器上创建时不应该使用 actions.order.capture(),如果它甚至有效,我会感到惊讶。在您的服务器上实现捕获订单路由,并使用此具有正确错误处理的 JS 示例:https://developer.paypal.com/demo/checkout/#/pattern/server