Php 如果客户/付款人发生事故,如何保存在线交易数据?

Php 如果客户/付款人发生事故,如何保存在线交易数据?,php,mysql,template-engine,realex-payments-api,Php,Mysql,Template Engine,Realex Payments Api,我正在使用PHP与模板引擎和Realex支付,就像任何第三方支付 水电站出现一种情况,因此: 成功完成交易后,客户端浏览器与网络断开连接 无法保存付款状态信息 因此,特定订单的状态信息在付款后保持未付款状态 有人能为此提出解决方案吗?使用事务、提交和回滚 “启动事务”跟踪随后的所有SQL,直到我们输入COMMIT或ROLLBACK “承诺”使我们的代码永久化 “回滚”将所有内容反转到我们键入“启动事务”之前的位置 e、 g 但在您真正需要的时候使用事务,因为事务日志会记录所有事情,并且变得越

我正在使用PHP与模板引擎和Realex支付,就像任何第三方支付

水电站出现一种情况,因此:

  • 成功完成交易后,客户端浏览器与网络断开连接
  • 无法保存付款状态信息
  • 因此,特定订单的状态信息在付款后保持未付款状态

有人能为此提出解决方案吗?

使用事务、提交和回滚

“启动事务”跟踪随后的所有SQL,直到我们输入COMMIT或ROLLBACK

“承诺”使我们的代码永久化

“回滚”将所有内容反转到我们键入“启动事务”之前的位置

e、 g


但在您真正需要的时候使用事务,因为事务日志会记录所有事情,并且变得越来越大,这会消耗更多空间和时间。

Realex Payments HPP旨在防止这种情况发生

一旦支付成功完成,Realex服务器将直接向您的网站服务器发送一条包含交易结果的消息。不涉及客户的浏览器-您将始终知道交易的状态。此消息将发送到您的Realex付款响应URL

如果客户与网络断开连接,则有两种情况

  • 在他们付款之前,网络已断开连接。在这种情况下,您在他们的购物车中有一个他们尚未付款的项目。客户需要能够返回您的购物车并再次尝试付款
  • 他们付款后,网络断开。在这种情况下,客户将不知道他们是否已成功付款,但您将。他们可能会尝试返回并再次付款,如果订单id相同,则付款将失败。他们可能会回到你的网站,看看他们的购物车。您应该允许他们检查其客户帐户以查看已完成的订单 在任何情况下,您都应该在交易后收到Realex的消息后向客户发送电子邮件。这对客户来说是一个极大的安慰

    在将客户重定向到HPP之前,您还应收集所需的所有信息,因为网络可能会丢失,您将无法从他们那里获得更多数据(例如他们的地址或完成订单所需的其他信息)


    还有第三种情况,Realex无法连接到您的站点发送消息。我们会重试几次,然后通知我们的操作人员,他们将直接与您联系。客户将看到一条通用消息,要求他们与您联系以获取更多信息

    我找到了答案,所以我想与大家分享。。。 如果我们传递参数,则它们是一个名为“notify”的可选参数 当事务发生时,PayPal将rmi服务器抛出到服务器coll,而不涉及客户端


    并将响应参数传递给我们传递的通知Url

    此解决方案在这种情况下不适用,因为付款发生在多个网页上,客户离开网站进行付款。在客户返回您的站点之前,可能需要几分钟的时间。客户可能永远不会回来。您好,感谢您的回复。**Realex服务器直接向网站服务器发送包含交易结果的消息**。这是否意味着它正在合并RMI函数或页面???是作为商户\响应\ URL发送的页面还是其他页面来处理response@SwarnaSekharDhar这是一个HTTP POST请求,指向您在设置帐户时向我们提供的响应URL。您必须通过电话或电子邮件将此信息发送给您的支持联系人。谢谢…是的,我收到了,实际上我想它会重定向回我们的门户网站,并给出响应。。。好吧,那不是因为它是在后台工作。。。。这很好,解决了这个问题
    START TRANSACTION;
    SELECT * FROM bank;
    UPDATE bank SET amount = '25000' WHERE id ='23';
    COMMIT;