我必须使用PayPal检查付款状态。 如果用户使用PayPal支付其PayPal帐户,则我的代码运行良好。但是当他们在PayPal网站上用信用卡付款时,我遇到了问题。
$req = 'cmd=_notify-validate';
foreach($_POST as $key=>$value){
$value = urlencode(stripslashes($value));
$value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i','${1}%0D%0A${3}',$value);// IPN fix
$req .= "&$key=$value";
}
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);
//$fp = fsockopen('ssl://sandbox.paypal.com', 443, $errno, $errstr, 30);
if(!$fp){
die("HTTP ERROR");
}else{
fputs($fp, $header . $req);
while(!feof($fp)){
$res = fgets($fp, 1024);
if(strtoupper(trim($res)) == "VERIFIED"){
//i can save the payment in my table
}
}
}
我注意到的问题是,使用信用卡付款时我没有得到验证的答复。 为什么?
我尝试打印$ res变量,但是得到很多不同的值