贝宝如何在故障转移中工作

我正在为具有以下架构的客户工作:

  • 后端
    • Java服务器
  • 前端
    • 代理(Node JS + Express应用程序)

我们向服务器发出的所有请求都需要经过代理(安全function)。

我们需要在我们的应用程序中集成Paypal API,所以我们为OK和KOcallback(比如/proxy/paymentOK/proxy/paymentKO )创build了两个动作,它们调用我们的服务器并更新logging的状态。

现在是我们问题的时候了:

  • 假设用户付款。 所以, /proxy/paymentOK宝将调用我们的OKcallback( /proxy/paymentOK )。 如果代理和服务器之间出现问题(例如,电源或networking故障),付款会发生什么情况? 付款将自动返回给客户? Paypal如何知道在拨打电话后一切正常?

  • 在发送PayPal请求之前,我会坚持一些值,所以我有一个身份为PENDING_PAYMENT的logging的ID。 贝宝需要知道这个参数,因为无论付款接受还是拒绝,我必须更新logging与ACCEPTEDREFUSED状态。 我怎样才能把这个ID发送到贝宝,如何在贝宝做callback时得到它?

感谢大家!

       

网上收集的解决方案 "贝宝如何在故障转移中工作"

过程如下所示:

  1. 创build一个付款

    这只是声明交易的细节,但不会使用户参与付款。 您可以根据需要多次编辑付款,直到第2步。您将收到一个ID并为此付款。

  2. 用户支付

    你给用户的交易url,用户支付。 你会得到通知(你不应该相信OK / KOcallback,只是付款ID)。

  3. 批准付款

    您检查付款状态,如果它处于挂起状态,则执行/批准。 交易完成。

如果你第一步崩溃,没有什么可担心的,交易甚至没有开始。 你可以安全地启动另一个。

如果你崩溃了第2步 ,当启动服务器时,你有所有的付款ID,并为每一个做第3步。

如果您第3步崩溃,您可以安全地重做它,贝宝将通知您,这笔付款已经执行与否,并给你它的状态。

注意:即使您丢失了信息,您也可以随时取回信息。 ( 列出付款或获取付款信息 )