realexpayment-支付成功后提示错误
realexpayment-got an error message after successful payment
我正在使用带有 amember-5.1.5 的 realexpayment 并使用 realexpayment 系统的测试帐户。
当我注册并使用测试卡付款时,我收到以下消息,但它没有重定向回我们的网站:
Your transaction has been successful but there was a problem connecting back to the merchant's web site. Please contact the merchant and advise them that you received this error message.
这意味着我们的托管支付页面 (HPP) 无法连接到您提供给我们的响应 URL。此 URL 在 HTTP POST 字段 MERCHANT_RESPONSE_URL 中指定。
它必须是一个可公开访问的端点,以便我们的 HPP 可以连接到它。当我们尝试连接到您的响应 URL 时,您的 Realex Payments 客户经理将能够提供有关我们从您的服务器收到的响应的更多信息,前提是您可以向他们提供相关的客户 ID 和订单 ID。
最佳,
肖恩·麦克多姆纳尔
Realex 支付
我最近遇到了这个问题,想澄清一下。 Realex 不会重定向到 MERCHANT_RESPONSE_URL
,而是显示其内容。
它似乎接受了基本的 HTML 回复,但没有接受完整的 HTML 文档。
我所做的是在 MERCHANT_RESPONSE_URL
页面上输出一小段 JavaScript 以将客户重定向到另一个包含我们的品牌和成功(或错误)的 URL留言:
<script>
window.location=https://example.com/success?msg=<?php echo urlencode( $msg ); ?>
</script>
我先尝试了@MrCarrot 用 JavaScript 的解决方案,但没有用,但后来发现 another working one。我认为,我不只是评论,而是提到一些关于响应和错误处理的内容。
MERCHANT_RESPONSE_URL 需要是一个 public(我假设是 HTTPS)地址,您的脚本在其中等待来自 Realex 服务器的 POST。 POST 看起来像这样:
[RESULT] => 00
[AUTHCODE] => 12345
[MESSAGE] => [ test system ] AUTHORISED
[PASREF] => 16542926167123558
[MERCHANT_ID] => merchantid
[ORDER_ID] => INV-223665
[TIMESTAMP] => 20220603224317
[AMOUNT] => 9480
[SHA1HASH] => 934138a1157dead529806e9ed5578f538e1a68c8
现在您真的应该按照 Card Payments: Check hash 中的描述检查 SHA1HASH。您将需要您的请求来自的原始时间戳、MERCHANT_ID、ORDER_ID、结果编号、MESSAGE、PASREF 和 AUTHCODE。用一个句号将它们内爆,这样你就会得到类似
的东西
20220603224317.merchantid.INV-223665.00.[ test system ] AUTHORISED.16542926167123558.12345
和 运行 sha1() 就可以了。然后,添加您的秘密
ea4dcce506c6e5ee3fbaeae212477be838733694.mySecr3t
and 运行 sha1() 再次,然后将其与 SHA1HASH 响应进行比较。只有当它等于时,您才应该将付款标记为有效并发送 header("HTTP/1.0 200 OK").
然后你可以用上面的 JavaScript 重定向回来,也许你可以发送 this error id 而不是整个消息。我所做的是使用 /thanks 或 /error111 返回我的付款页面以显示可能的错误消息。
<script language='javascript' type='text/javascript'>
window.location.replace('https://pay.example.com/{orderId}/error{result}');
</script>
我正在使用带有 amember-5.1.5 的 realexpayment 并使用 realexpayment 系统的测试帐户。
当我注册并使用测试卡付款时,我收到以下消息,但它没有重定向回我们的网站:
Your transaction has been successful but there was a problem connecting back to the merchant's web site. Please contact the merchant and advise them that you received this error message.
这意味着我们的托管支付页面 (HPP) 无法连接到您提供给我们的响应 URL。此 URL 在 HTTP POST 字段 MERCHANT_RESPONSE_URL 中指定。
它必须是一个可公开访问的端点,以便我们的 HPP 可以连接到它。当我们尝试连接到您的响应 URL 时,您的 Realex Payments 客户经理将能够提供有关我们从您的服务器收到的响应的更多信息,前提是您可以向他们提供相关的客户 ID 和订单 ID。
最佳,
肖恩·麦克多姆纳尔
Realex 支付
我最近遇到了这个问题,想澄清一下。 Realex 不会重定向到 MERCHANT_RESPONSE_URL
,而是显示其内容。
它似乎接受了基本的 HTML 回复,但没有接受完整的 HTML 文档。
我所做的是在 MERCHANT_RESPONSE_URL
页面上输出一小段 JavaScript 以将客户重定向到另一个包含我们的品牌和成功(或错误)的 URL留言:
<script>
window.location=https://example.com/success?msg=<?php echo urlencode( $msg ); ?>
</script>
我先尝试了@MrCarrot 用 JavaScript 的解决方案,但没有用,但后来发现 another working one。我认为,我不只是评论,而是提到一些关于响应和错误处理的内容。
MERCHANT_RESPONSE_URL 需要是一个 public(我假设是 HTTPS)地址,您的脚本在其中等待来自 Realex 服务器的 POST。 POST 看起来像这样:
[RESULT] => 00
[AUTHCODE] => 12345
[MESSAGE] => [ test system ] AUTHORISED
[PASREF] => 16542926167123558
[MERCHANT_ID] => merchantid
[ORDER_ID] => INV-223665
[TIMESTAMP] => 20220603224317
[AMOUNT] => 9480
[SHA1HASH] => 934138a1157dead529806e9ed5578f538e1a68c8
现在您真的应该按照 Card Payments: Check hash 中的描述检查 SHA1HASH。您将需要您的请求来自的原始时间戳、MERCHANT_ID、ORDER_ID、结果编号、MESSAGE、PASREF 和 AUTHCODE。用一个句号将它们内爆,这样你就会得到类似
的东西20220603224317.merchantid.INV-223665.00.[ test system ] AUTHORISED.16542926167123558.12345
和 运行 sha1() 就可以了。然后,添加您的秘密
ea4dcce506c6e5ee3fbaeae212477be838733694.mySecr3t
and 运行 sha1() 再次,然后将其与 SHA1HASH 响应进行比较。只有当它等于时,您才应该将付款标记为有效并发送 header("HTTP/1.0 200 OK").
然后你可以用上面的 JavaScript 重定向回来,也许你可以发送 this error id 而不是整个消息。我所做的是使用 /thanks 或 /error111 返回我的付款页面以显示可能的错误消息。
<script language='javascript' type='text/javascript'>
window.location.replace('https://pay.example.com/{orderId}/error{result}');
</script>