【问题标题】:PayPal Checkout Buttons - client/server communicationPayPal 结帐按钮 - 客户端/服务器通信
【发布时间】:2020-07-09 14:38:43
【问题描述】:

我正在集成 Paypal 的智能结账。我不明白 javascript 部分期望从服务器返回什么。这就是我在JS中得到的

...
...
createOrder: function(data, actions) {
    return fetch('/paypal/sandbox/createOrder', {
        method: 'post',
        headers: {
            'content-type': 'application/json'
        }
    }).then(function(res) {
        return res.json();
    }).then(function(data) {
        return data.orderID;
    });
},
...
...

这就是调用 /paypal/sandbox/createOrder' 时服务器端所做的事情……

$request = new OrdersCreateRequest();
$request->prefer('return=representation');
$request->body = $this->buildRequestBody();

$response = $this->PayPalClient->execute($request);

我在任何地方都找不到什么:我应该如何处理响应?我尝试简单地回显它,将其回显为 JSON,但我总是收到诸如“预期订单 ID”之类的错误

我需要什么来响应客户的请求?

【问题讨论】:

    标签: paypal paypal-ipn


    【解决方案1】:

    createOrder 前端 JS 和后端服务器路由(依次调用 PayPal API)之间的通信结构是您定义的。它可以是简单的,也可以是你需要的复杂的。您可以根据需要来回发送任意数量的参数。您可以使用 JSON、XML、摩尔斯电码、RFC 1149 或任何您想要的在客户端和服务器之间进行传输。

    唯一需要的信息是订单 ID,您的服务器端代码又从 PayPal API v2/checkout/orders 调用中获取(响应中的 id),然后您的 createOrder 函数必须使用它一旦获得就传播回其调用者,在示例代码中发生在这里:

        ...
        return data.orderID;
    

    一个非常简单的实现是回显整个 v2/checkout/orders API 响应,而不仅仅是 id,并将上面的客户端代码更改为 return data.id,以便读取该键名

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2011-09-05
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      相关资源
      最近更新 更多