2016-03-03 81 views
0

我知道使用贝宝按钮的自定义变量的推荐做法是传递一个标识符,这是一个数据库中的一些数据的引用,然后当贝宝返回一个响应时,验证该id与它的在数据库中相应的引用,以做额外的处理,贝宝自定义变量唯一标识符

但我的问题是,如果我保存数据库中的数据时,用户点击贝宝按钮,用户重定向到贝宝,我将如何知道如果用户点击浏览器上的后退按钮,交易从未完成?因为如果用户这样做,我将不会收到贝宝的回复(已完成或未完成)。如果我没有贝宝的任何回应,那么我无缘无故地将一些数据保存在我的数据库中。

我应该如何解决这个问题?

我有很多字段的大表格,所以我无法发送自定义变量中的所有数据,因为存在限制。

请帮忙!

+0

您可以使用临时表。并在你的情况下,在取消交易的情况下。你应该使用Session从临时表中删除数据。 – Deep

+0

您可以保存到缓存(文件缓存,redis,mongo或任何其他存储),然后在事务完成后删除并设置cron以删除olde缓存(可以说,比一天或任何其他时间长)从未完成的交易, – naneri

回答

1

当他们没有付款时,我会将它们保存为“挂起”状态。然后,如果付款永远不会完成,您将拥有挂单的记录,您可以跟进这些记录,尝试将其转换为订单,或者直接删除所有待处理订单进行清理。