PHP锁定事务

时间:2013-01-14 22:36:32

标签: php locking

我有一个PHP的拍卖网站,我希望立即支付客户出价的任何金额(我将在稍后退还所有非获胜的出价)。说我的项目目前是10美元,我有客户A和B.

如果A以15美元的价格出价,那么我要求A立即输入他的信用卡信息并从卡中收取15美元。在信用卡处理完成之前,出价不计入出价。

当A正在输入他的信用卡信息时,B也会投标。完成首先输入信用卡信息并单击提交。如果B的出价低于或等于15,它将提示B类似于"抱歉有人在您输入信用卡信息时提出更高的出价"。如果B的出价是> 15当然它只会从B&K的卡中收取这笔款项,最新的价格是B的出价。

现在我的问题是,在此期间,我的网站以15美元的价格发送了向A卡收费的请求(让我们说Paypal),B应该不能同时付款(否则我们将向两个人的卡收费。 B必须等到A的付款完成后我的服务器才能处理B"提交付款"请求。当我的服务器处理请求时,它应检查B的出价是高于还是低于提交的最新付款(A $ 15)。

所以基本上我想"锁定" "提交付款"当A的付款发送到Paypal并等待Paypal的响应时,所有其他用户的功​​能。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用您的数据库。对于每个出价,创建一行;使用包含例如“状态”的列1 =输入的出价金额; 2 =输入/验证CC信息; 3 =已接受出价。在充电被授权之后(即在状态2和3之间),进行查询以检查出价金额是否仍然足够,然后仅对CC充电(并同时将状态更新为3。)

如果由于其他人已完成更高出价而取代了出价,请拒绝出价。

相关问题