首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PayPal Orders v2:订单的审批the ("checkoutnow?token..")返回302重定向

PayPal Orders v2:订单的审批the ("checkoutnow?token..")返回302重定向
EN

Stack Overflow用户
提问于 2020-07-19 22:41:40
回答 1查看 127关注 0票数 0

我正在努力使用Orders v2 PayPal应用编程接口创建订单。

我有令牌,并且我用这些头创建了一个请求来创建订单:

代码语言:javascript
复制
{
  "intent": "CAPTURE",
  "purchase_units": [{
    "description": "Payment",
    "amount": {
      "value": 'X',
      "currency_code": "EUR",
      "breakdown": {
        "item_total": {
          "currency_code": "EUR",
          "value": 'X'
        },
      }
    },
    "items": [{
      "unit_amount": {
        "currency_code": "EUR",
        "value": 'X'
      },
      "quantity": "1",
      "name": 'item name',
    }]
  }],
  "application_context": {
    "brand_name": "My brand name",
    "locale": "it-IT",
    "return_url": 'my-return-url',
  }
}

订单创建完成后,我将获得让用户付款的approveurl

对于approveurl,我执行以下调用:

代码语言:javascript
复制
try {
  var response = await http.post(approveurl, body: jsonEncode({"payer_id": payerId}), headers: {
      "content-type": "application/json",
      'Authorization': 'Bearer ' + accessToken
  });

  final body = jsonDecode(response.body);
  if (response.statusCode == 200) {
    return body;
  }
  return null;
} catch (e) {
  rethrow;
}

但我得到的回应是:

代码语言:javascript
复制
url = "https://www.sandbox.paypal.com/checkoutnow?token=..."
payerId = "..."
accessToken = "..."
response = {Response}
 request = {Request} POST https://www.sandbox.paypal.com/checkoutnow?token=...
 statusCode = 302
 reasonPhrase = "Found"
 contentLength = 61
 headers = {_InternalLinkedHashMap} size = 9
     0 = {map entry} "paypal-debug-id" -> "95934918777a1"
     1 = {map entry} "cache-control" -> "max-age=0, no-cache, no-store, must-revalidate"
     2 = {map entry} "location" -> "/webapps/hermes?token=..."
     3 = {map entry} "set-cookie" -> "X-PP-SILOVER=name%3DSANDBOX3.WEB.1%26silo_version%3D880%26app%3Dhermesnodeweb%26TIME%3D1595167415%26..."
     4 = {map entry} "date" -> "Sun, 19 Jul 2020 14:03:35 GMT"
     5 = {map entry} "vary" -> "Accept"
     6 = {map entry} "strict-transport-security" -> "max-age=63072000"
     7 = {map entry} "content-length" -> "61"
     8 = {map entry} "content-type" -> "text/plain; charset=utf-8"
 isRedirect = false
 persistentConnection = true

response.body是:

代码语言:javascript
复制
Found. Redirecting to /webapps/hermes?token=...
EN

回答 1

Stack Overflow用户

发布于 2020-07-19 22:50:29

使用approvalurl的

我执行此调用:

审批URL不是供您调用的。这是一个web URL,而不是API URL。这是由付费客户登录并批准付款。

然而,将它们重定向到它将是一个糟糕的网络体验。对于现代网页设计,你应该提供一个“在上下文中”的批准,让你的网站保持在后台加载。下面是如何做到这一点的:https://developer.paypal.com/demo/checkout/#/pattern/server

通过这种集成,您不需要自己读取approval_url,只需在从createOrder获取时返回订单id。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62981710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档