沙盒帐户在批准创建的付款时缺少付款方式

时间:2018-08-15 12:44:06

标签: php paypal paypal-sandbox paypal-rest-sdk

我正在尝试实现PayPal REST API。

当我使用服务器上的请求创建PayPal付款时,付款创建成功,付款ID传递给PayPal。

下一步,用户必须批准付款。

在用户浏览器中打开“ PayPal”窗口,并提示用户登录或使用信用卡付款。

问题是: 当我使用沙箱客户帐户登录时,PayPal不会显示任何可用的附加信用卡或贝宝钱包余额,它只会提示将新的信用卡添加到沙箱帐户。

如果我在一个单独的浏览器窗口中使用此沙盒帐户登录,则可以看到它具有钱包余额和附带的信用卡。

如果我使用客户端JS请求而不是服务器来创建“付款”,则不会复制该问题,并且PayPal会同时显示钱包余额和信用卡。

因此,我认为问题在于付款的格式。服务器付款的格式为:

{
    "intent": "sale",
    "payer": {
        "payment_method": "paypal"
    },
    "transactions": [
        {
            "amount": {
                "total": "10.00",
                "currency": "USD"
            },
            "description": "silver membership",
            "custom": "account_id:1"
        }
    ],
    "redirect_urls": {
        "return_url": "https://example.com/return",
        "cancel_url": "https://example.com/cancel"
    }
}

使用客户端JS创建的付款格式更加简单,我从开发人员手册中的一个示例中获取了付款格式。如果我在服务器请求中使用相同的简单格式,将不允许我创建付款(我认为客户端checkout.js只是默默地添加缺少的必填字段)。

payment: function (data, actions) {
    return actions.payment.create({
      transactions: [{
        amount: {
          total: '10.00',
          currency: 'USD'
        }
      }]
    });
  },

非常感谢您对此主题的任何提示。

0 个答案:

没有答案