>我正在尝试在测试环境中应用低调(带有 iframe)的服务器 Inframe 集成 (v3.00)。一切似乎都很好,直到"请稍候,您的交易正在通过银行授权"消息。
之后,我收到一个5006
错误:无法重定向到供应商的网站。供应商未能提供重定向 URL。
但是重定向URL是正确的,因为我可以在此页面上收到SagePay (Status=OK/ABORT/REJECTED/ERROR/... and others datas )
发送的帖子。
为了正确关闭该过程,我必须回复SagePay的服务器三个"纯文本"数据,( for instance: Status=OK, SatusDetail=Thank you for this order, and RedirectURL=https://mySite.com/youpi.php )
。编码必须是由回车换行符 (CRLF) 分隔的名称=值字段。
我想问你是否有任何关于如何使用 PHP 编写这部分代码的想法或示例?
我在我的 php 页面中尝试了这些行,但没有成功:
header("Content-type: text/plain");
$redirect_url="Status=OK" . chr(13) . chr(10) ;
$redirect_url.="RedirectURL=https://mySite.com/redirectOK" . chr(13) . chr(10) ;
$redirect_url.="StatusDetail=Thank you." . chr(13) . chr(10) ;
echo $redirect_url;
我注意到 NotificationURL 被调用了 11 次,这与没有响应时的进程行为一致。
以下是从服务器接收的每个帖子集的数据(状态和状态详细信息):
set 1: Status="OK" StatusDetail="2014 : The Transaction was Registered Successfully."
set 2 to 10: Status="OK" StatusDetail="0000 : The Authorisation was Successful."
set 11: Status="ABORT" StatusDetail="2008 : The Transaction timed-out."
我暂时不回复SagePay服务器的帖子,因为我看不到/我不知道该怎么做!
提前感谢您的帮助!
现在没关系了。我已经在 2.23 版的旧 php 工具包中得到了答案。
现在的脚本:
if ($Status=="ABORT")
{
ob_flush(); // THIS LINE WAS MISSING
header("Content-type: text/plain");
$redirect_url="Status=OK" . chr(13) . chr(10) ;
$redirect_url.="RedirectURL=https://mySite.com/redirectCANCEL" . chr(13) . chr(10) ;
$redirect_url.="StatusDetail=Thank you." . chr(13) . chr(10) ;
echo $redirect_url;
exit(); // THIS LINE WAS MISSING TOO
}