我收到了SagePay的成功响应,其中包含一笔注册交易。
我已经填写了所有卡的详细信息,我知道数据正在到达我的通知URL。
但随后它停止了。零响应,并且不发送任何内容。
为了简化事情,我去掉了代码,并使用硬编码的vars来查看是否有人可以提供帮助。
ob_clean();
if(isset($_POST) && isset($_POST['Status'])){
if(isset($_POST['Status']) && $_POST['Status'] == 'OK'){
$data['Status'] = 'OK';
$data['RedirectURL'] = 'https://www.metano.com/payments/success';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'https://test.sagepay.com/gateway/service/vspserver-register.vsp');
curl_setopt($ch,CURLOPT_POSTFIELDS,"Status=OK'nRedirectURL=https://www.metano/payments/success");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
}
}
作为字符串传递给cURL的数据应该是URLencoded。请参阅curl_setopt()页面,并搜索CURLOPT_POSTFIELDS。
从php5开始,建议使用http_build_query: