PHP锁定事务



我有一个PHP拍卖网站,我想立即支付任何金额的客户出价(我将退还所有非中标以后)。假设我的商品现在是10美元,我有两个顾客A和b。

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

假设当A输入他的信用卡信息时,B也出价了。A首先输入信用卡信息,然后单击提交。如果B的出价低于或等于15,它会提示B的东西,如"对不起,有人把更高的出价,而你把你的信用卡信息"。如果B的出价大于15,那么它当然会从B的卡上收取这笔钱,并且最新的价格是B的出价。

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

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

使用您的数据库。对于每一个出价,创造一排;使用"状态"栏,例如:1=投标金额;2=CC信息输入/验证;3 =报价接受。收费已获批准后(如:在状态2和状态3之间),进行查询,检查投标金额是否仍然足够,然后才收取CC(并同时将状态更新为3)

如果出价已被取代,因为其他人已经完成了更高的出价,拒绝出价。

最新更新