经过搜索和google搜索后,使用https(自签名证书)启用我的wamp安装[我按照本指南click here] 我还为域名激活了dyn-dns免费服务。 但是我一直试着测试ipn模拟器,总是得到相同的消息。 另外,如果我测试在线网站IPN无法发送请求。
签署证书是强制性的吗? ipn接受的网址格式是什么? 它目前正在运作? 这个错误消息的原因是什么?
答案 0 :(得分:0)
试一试:
$req = 'cmd=_notify-validate';
foreach($_POST as $key => $value) {
$value = urlencode($value);
$req .= "&{$key}={$value}";
}
$res = '';
$ch = curl_init(paypal_url());
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//Should be 1 if you want to verify peer
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);//Should be 2 if you want to verify host
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
$res = curl_exec($ch);
curl_close($ch);
$fname = 'ipn_intial_' . date('Y.m.d-h.i.s', time()) . '.txt';
file_put_contents('log/' . $fname, $req);
$fname = 'ipn_intial_result_' . date('Y.m.d-h.i.s', time()) . '.txt';
file_put_contents('log/' . $fname, $res);
if(strcmp($res, "VERIFIED") == 0)
{
....
}
如果paypal请求甚至没有发送到您的服务器,那么您可能会遇到防火墙问题。