1

我正在使用带有模板引擎和 Realex 支付的 PHP,就像任何第三方支付一样。

因此,HPP 会出现一种情况:

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

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

4

3 回答 3

2

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

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

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

  1. 在他们付款之前,网络已断开连接。在这种情况下,您的购物车中有一件他们尚未付款的商品。客户需要能够返回您的购物车并尝试再次付款。
  2. 付款后网络断开。在这种情况下,客户不会知道他们是否成功付款,但您会。他们可能会尝试返回并再次付款,如果订单 ID 相同,则会失败。他们可能会回到您的网站查看他们的购物车。您应该允许他们检查他们的客户帐户以查看已完成的订单。

在任何情况下,一旦您在交易后收到来自 Realex 的消息,您都应该向客户发送电子邮件。这对客户来说是一种极大的安慰。

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

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

于 2014-04-22T09:02:36.010 回答
-1

我找到了答案所以我想分享它......如果我们在交易发生时传递参数,那么它们是一个名为“notify”的可选参数,PayPal会在不涉及客户端的情况下向服务器coll抛出一个rmi服务器......

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

于 2014-11-16T21:40:16.727 回答
-1

使用事务、提交和回滚。

“START TRANSACTION”会跟踪所有的 SQL,直到我们输入 COMMIT 或 ROLLBACK。

“COMMIT”使我们的代码永久化。

“ROLLBACK”将所有内容反转到我们键入“START TRANSACTION”之前的位置。

例如

START TRANSACTION;
SELECT * FROM bank;
UPDATE bank SET amount = '25000' WHERE id ='23';
COMMIT;

但是当你真正需要的时候使用 TRANSACTION,因为 TRANSACTION 日志会记录一切,并且会变得越来越大,这会消耗更多的空间和时间。

于 2014-04-22T06:23:29.273 回答