贝宝如何在故障转移中工作
我正在为具有以下架构的客户工作:
- 后端
- 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与ACCEPTED
或REFUSED
状态。 我怎样才能把这个ID发送到贝宝,如何在贝宝做callback时得到它?
感谢大家!
过程如下所示:
-
创build一个付款
这只是声明交易的细节,但不会使用户参与付款。 您可以根据需要多次编辑付款,直到第2步。您将收到一个ID并为此付款。
-
用户支付
你给用户的交易url,用户支付。 你会得到通知(你不应该相信OK / KOcallback,只是付款ID)。
-
批准付款
您检查付款状态,如果它处于挂起状态,则执行/批准。 交易完成。
如果你第一步崩溃,没有什么可担心的,交易甚至没有开始。 你可以安全地启动另一个。
如果你崩溃了第2步 ,当启动服务器时,你有所有的付款ID,并应为每一个做第3步。
如果您第3步崩溃,您可以安全地重做它,贝宝将通知您,这笔付款已经执行与否,并给你它的状态。
注意:即使您丢失了信息,您也可以随时取回信息。 ( 列出付款或获取付款信息 )