当前位置: 首页 > 知识库问答 >
问题:

PayPal REST API订购工作流程:付款->销售->WebHook?

柴文林
2023-03-14

我正在尝试将PayPal REST API集成到我的Symfony2 web应用程序中,但我发现很难理解完整的工作流程到底是什么样子的:

PayPal文档描述了以下接受付款的步骤。可以使用PayPal Playground模拟以下步骤:

  1. 获取访问令牌
  2. 通过查询API创建付款对象
  3. 将用户重定向到付款响应
  4. 中接收的 批准URL
  5. 用户在PayPal页面上批准支付后,将使用支付对象中定义的成功链接将其重定向回我的页面。使用接收到的信息执行支付。
  6. 付款已完成,状态为已批准

除了在执行支付和接收Webhook之间的长时间延迟之外,这个工作流意味着,我只在处理成功链接之后才接收Webhook。这意味着,处理成功链接是绝对必要的支付完成。这是正确的吗?

我需要用网钩吗?

几天前我已经问过这个问题,nifr的回答相当合理:不能相信用户遵循任何重定向URL,而应该只依赖Webhook事件。

  1. 接受付款的5步流程并没有说明使用网络钩子。这似乎没有多大意义,因为如果没有网络钩子,就会错过更新事件等等?那么,真的有可能在没有网络钩子的情况下实现完整的支付工作流程吗?
  2. 如果是,在这种情况下如何处理更新(退款、挂起等)?
  3. 如果不是,由于完成接收和处理WebHook需要相当长的时间,执行订单的正确策略/时间是什么?

共有1个答案

宗政功
2023-03-14

我在PayPal世界还是个新手,但前几天我在一家网店集成了PayPal Plus REST API,并且从我的了解可以看出工作流程看起来是这样的:

  1. 创建付款
  2. 重定向到PayPal
  3. 付款人可以使用PayPal帐户或(使用银行直接借记或信用卡付款而不使用PayPal帐户)
  4. 在PayPal端完成过程后,PayPal将用户重定向回您的成功URL。
  5. 到现在用户仍然没有被收费(你没有钱)。当您(在您的成功URL中)执行$paymentexecution,$api);时,您要求Paypal向用户收取金额。但在这之后,你就没钱了。Paypal首先处理收费,然后通过WebHookEvents通知您。

当用户按直接借记卡或信用卡等付款时,Webhook通知(具有严重的延迟)尤为重要,处理此类付款需要几秒/分钟。

 类似资料:
  • 我正在检查机票预订的自助API。我的流程正常:航班优惠搜索- 我试过了,所有的回答都很好。我也知道我需要满足一些要求才能在生产中进行实际预订。 我不明白的是: 1) 我在哪里输入付款信息? 2)如果旅行者通过信用卡付款,是否有安全合规的在线表格,这样我就不会实际存储旅行者的信用卡信息? 谢啦!

  • 我试图集成PayPal快速退房在我们的网站上使用REST API与以下工作流程步骤。 客户添加项目到购物车,我们有项目列表信息(项目价格,数量,小计,但没有税,没有运输) 客户点击快速结账按钮,我们将估计的小计传递给PayPal 客户创建/选择送货地址 客户点击提交 客户返回我们的网站,并提供送货地址 根据发货地址计算客户的运费和税费 我们显示订单预览,其中包含总计=运费小计。 我们做另一个api

  • 我正在使用PHP中的PayPal API来创建交易,既可以使用信用卡,也可以通过PayPal本身。此外,我需要能够退款这些交易。我使用的代码(大部分是直接来自PayPal API示例)对于信用卡交易很好,但对于PayPal交易却失败了。具体地说,我正在尝试通过Payment对象向下钻取该销售的ID。通过信用卡支付的对象包含一个RelatedResources对象,该对象又包含带有ID的Sale对象

  • {“ID”:“Pay-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,“Create_Time”:“2016-06-20T11:45:28Z”,“Update_Time”:“2016-06-20T11:45:28Z”,“State”:“Created”,“Intent”:“Sale”,“Payment_Method”:“Credit_

  • 非常感谢您的帮助,在实施细节方面,以及我下面的两个澄清问题: 背景: 创建优惠促销工作流程。优惠有截止日期(我们在优惠被接受后开始倒计时。) 用户可以选择拒绝报价(工作流程随后停止)一旦报价被接受,他们将有7天的时间尝试兑换返现积分。一旦他们满足返现积分要求,我们将把积分记入他们的账户 第一个问题:下面的逻辑正确吗?我正在使用信号。 我是如何考虑编写工作流的(然而,当我尝试发出不同的信号时,我似乎

  • 我WooCommerce,我正在使用“更改管理付款状态返回到WoocommercePending order status unpayed for WoocommercePending”答案代码,当订单状态在后端手动更改为pending时,重置订单的已付款状态。 例如,如果订单状态从“完成”更改为“挂起”,则删除以下内容:“支付日期为4月2日,2019年@5:29 PM” 现在我这里的问题是在订单