我正在为具有以下架构的客户工作:
我们向服务器发出的所有请求都需要通过代理(安全功能)。
我们需要在我们的应用程序中集成Paypal API,因此我们为OK和KO回调创建了两个操作(让我们说/proxy/paymentOK
和/proxy/paymentKO
)来调用我们的服务器并更新记录的状态。
现在是解决问题的时候了:
让我们说用户付款。因此,paypal将调用我们的OK回调(/proxy/paymentOK
)。如果代理和服务器之间出现问题(例如,电源或网络故障),付款会发生什么?付款将自动退还给客户? Paypal如何知道打完电话后一切顺利?
在发送paypal请求之前,我会保留一些值,因此我有一个状态为PENDING_PAYMENT
的记录的ID。 Paypal需要知道此参数,因为无论付款接受还是拒绝,我都必须使用ACCEPTED
或REFUSED
状态更新记录。如何将此ID发送给Paypal以及如何在Paypal进行回拨时获取该ID?
谢谢大家!
答案 0 :(得分:2)
过程如下:
这只是声明有关交易的详细信息,但不会让用户参与付款。付款可以根据需要编辑,直到第2步。您将收到此付款的ID和网址。
您为用户提供交易的网址,用户付费。您会收到通知(您不应该信任OK / KO回调,只需支付付款ID)。
您检查付款状态,如果处于暂挂状态,则执行/批准。交易完成。
如果你崩溃第1步,没什么可担心的,交易甚至没有启动。你可以安全地开始另一个。
如果您崩溃第2步,则在启动服务器时,您将拥有所有付款ID,并且应该为每个付款ID执行第3步。
如果您崩溃第3步,您可以安全地重做它,paypal会通知您此付款已经执行,并告知您其状态。
注意:即使您丢失了信息,也可以随时检索。 (List payments或获得payment informations)