gpt4 book ai didi

PayPal REST API v2/checkout/orders 不会在批准后重定向回来

转载 作者:行者123 更新时间:2023-12-02 18:35:33 25 4
gpt4 key购买 nike

我以前从未使用过 PayPal,它在这里并不流行,而且我对订单和付款的运作方式感到困惑。谁能给我解释一下?我已经阅读了文档,但仍然感到困惑。

To complete payer approval, use the approve link to redirect thepayer. The API caller has 3 hours (default setting, this which can bechanged by your account manager to 24/48/72 hours to accommodate youruse case) from the time the order is created, to redirect your payer.Once redirected, the API caller has 3 hours for the payer to approvethe order and either authorize or capture the order.

我已经根据示例在沙箱环境中为此 API 创建了一个有效的 PHP curl 调用 https://developer.paypal.com/docs/api/orders/v2/#orders_create

我之前创建的 API 是这样工作的:

  1. 向第三方支付发送请求
  2. 获取包含结帐链接的响应
  3. 将客户重定向到链接
  4. 客户完​​成付款
  5. 第 3 方将包含订单和付款详细信息的请求发送到我服务器上的文件/路径
  6. 我的服务器收到请求并在我的数据库中更新订单状态/付款
  7. 第 3 方将客户重定向到我的网页

使用 PayPal,到目前为止我得到的是:

  1. 将包含订单详细信息的请求发送到/v2/checkout/orders
  2. 获取包含各种链接的响应
  3. 将我的客户重定向到 rel:approve 结帐链接
  4. 登录到我的沙盒客户帐户并使用 PayPal 余额付款,点击继续
  5. 显示一条弹出消息:我们将您送回 xxx 的测试商店以完成此次购买
  6. 弹出消息已关闭,我仍处于带有“继续”按钮的同一付款页面,如图所示

PayPal payment page

最佳答案

  1. Send request containing order detail to /v2/checkout/orders
  2. Get a response containing links
  3. Redirect my customer to approve link

步骤 (3) 是一种旧的集成方法,适用于使用旧的基于重定向的流程的网站。集成 PayPal 的首选方式是不使用重定向。完全没有。您的网站仍然在后台加载。执行以下操作:

关注Set up standard payments在您的服务器上引导并制作 2 条路线,一条用于“创建订单”,一条用于“捕获订单”,documented here .两条路线都应仅返回 JSON 数据(无 HTML 或文本)。在第二条 route ,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id,这是 PayPal 交易 ID ) 并在将返回的 JSON 转发给前端调用者之前立即执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)。

将这 2 条路线与前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server


如果出于某种奇怪且无法解释的原因,您坚持使用带有完整页面重定向的旧流程而不是我上面刚刚描述的方法,则您必须在您的订单创建请求中包含一个 redirect_url,以便 PayPal 在订单获得批准后有地方可以返回。当发生返回时,立即通过 API 调用捕获订单并向客户显示成功/失败结果。如果您想要在捕获之前进行干预订单审查步骤,您可以这样做,但您必须编辑您的初始订单创建请求,将 PayPal 最后一个按钮的措辞从“立即付款”更改为“继续”,以便用户单击与下一步将要执行的操作相对应的内容。 application_context.user_action 需要 continue 才能进行此更改。

捕获订单将返回一个 v2/payments 对象,该对象是已完成的交易,具有自己的 ID,用于记帐和退款目的。 (订单ID仅在付款人审核时使用,其他不重要)

关于PayPal REST API v2/checkout/orders 不会在批准后重定向回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68828891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com