2016-05-02 45 views
0

我正在使用Bluepay处理Xamarin移动应用程序的付款。处理付款或退款时,Bluepay会提出请求,Bluepay会回应成功或失败。在此之后,应用程序将交易信息发送到我们的数据库进行存储。保持我的数据库与第三方支付处理器(Bluepay)同步?

如您所见,问题在于如果应用程序在收到响应之前或在数据库调用之前崩溃,则第三方支付处理器和我们的数据库可能很容易失去同步。

如果因为某种原因数据库调用失败,可能会检测到这种情况,并且可能会重新发送事务信息,但是如果交易数据从未实际从Bluepay收到(我们会在响应之前崩溃,或沿着这些行发生) ,如何重新发送我们没有的东西?

我想这是一个常见的和解决的问题,但我似乎无法找到类似的问题/答案。

回答

0

您希望在请求生成后立即记录请求。 如果您在规定的时间范围内没有收到任何回复,请向Bluepay申请交易。现在,如果Bluepay未响应或不知道事务,则记录超时并尝试以超时状态响应应用程序。此外,您的应用程序应该有超时的内部处理,例如,如果连接中断。