未通过PHP中的paypal IPN验证或未经验证的响应 [英] Not getting verified or NOT verified response from paypal IPN in PHP

查看:89
本文介绍了未通过PHP中的paypal IPN验证或未经验证的响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用以下代码获取响应来自 paypal有关付款:


$ header = POST / cgi-bin / webscr HTTP / 1.1 \\\\ n; // HTTP POST请求
$ header。= Content-Type:application / x-www-form-urlencoded\r\\\
;
$ header。= 主持人:www.sandbox.paypal.com \\\\ n< /跨度>;
$ header。= Content-Length:。 strlen($ req)。 \\\\ n;
$ header。= 连接:关闭\\\\\ n /跨度>;

$ fp = fsockopen(' ssl://www.sandbox.paypal.com' 443 ,$ errno,$ errstr, 30 );
var_dump(fputs($ fp,$ header。$ req));
$ res = stream_get_contents($ fp, 1024 );

我在
$ res 中收到的的回复是

HTTP / 1. 1 200 OK

日期:星期四, 29 Dec 2016 10 :< span class =code-digit> 40
20 GMT

服务器:Apach
X-Frame-选项:SAMEORIGIN

的Set-Cookie:c9MWDuvPtT9GIMyPc3jwol1VSlO = qjMaqOzpxaPLPcyXOYWKZ-NX5MRwtYFCSIrPVHYGfoTJaKNmNnuSbyrOiWKzKaWfLfeHiVTx-XDIcY1d2e6A3ZRai-nHOR80ofVToWBq0aejvYegkL0PLifF9nVYOxwPP-nvoxO0LgRbSmwyUCmm4NG7bTfashi4cLPmgKMkklGZNgINaNe9RtAsEDW2NJI59asn6R1yFLkcLEG9HKawDTBGwkNs-G3B03IlC-0w0GCiEvKTsPGo3xUDxWAa-crufhxSDnsJq0-8YXAaFbMIzyCOOcZKDT3tMo3-vn5mapjwRcdnN7BUCzJ3MbaDF0CNdKYO-b3cSU-0DGHiQo7tpUH_58JEvWLJVxHxfh4G2Oyz-bjcliyo9vzJ5JLdRV1pR-o2FdzfHjq8hriVraMaMbtS9-jzeaVdTuuyAKdYOi_XJXZH-6YDQ cgYn0a;域= .paypal.com;路径= /;安全; HttpOnly

Set-Cookie:cookie_check = yes; expires = Sun,27-Dec-2026 10 40 21 GMT;域= .paypal.com;路径= /;安全; HttpOnly

Set-Cookie:navcmd = _notify-validate;域= .paypal.com;路径= /;安全; HttpOnly

Set-Cookie:navlns = 0 0 ; expires =星期六,29-Dec-2018 10 40 21 GMT;域= .paypal.com;路径= /;安全; HttpOnly

Set-Cookie:Apache = 10 72 108 11 1483008020869641 ;路径= /; expires =星期六,22日 - 12月46日 10 40

As远 as 我明白我应该获取 已验证但我无法获取。任何人都可以指出 out 问题

我尝试了什么:

我根据中的答案更改了我的代码 stackoverflow关于同一个问题。最初使用代码时,我没有得到任何东西响应中,它为NULL:

fputs($ fp,$ header。$ req);
while (!feof($ fp)){
$ res = fgets($ fp, 1024 );
}

解决方案

header = POST / cgi-bin / webscr HTTP / 1.1 \\\\ n; // HTTP POST请求


header。= Content-Type:application / x-www-form-urlencoded\r\ n;

header。= 主持人:www.sandbox.paypal.com\\\\ N;

I am using the following code to get response from paypal regarding payment:
 

    $header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; // HTTP POST request
    $header.= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header.= "Host: www.sandbox.paypal.com\r\n";
    $header.= "Content-Length: " . strlen($req) . "\r\n";
    $header.= "Connection: Close\r\n\r\n";
    
    $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
    var_dump(fputs($fp, $header . $req));
    $res = stream_get_contents($fp, 1024); 	

The response that I am receiving in $res is:

    HTTP/1.1 200 OK
    
    Date: Thu, 29 Dec 2016 10:40:20 GMT
    
    Server: Apach
    X-Frame-Options: SAMEORIGIN
    
    Set-Cookie: c9MWDuvPtT9GIMyPc3jwol1VSlO=qjMaqOzpxaPLPcyXOYWKZ-NX5MRwtYFCSIrPVHYGfoTJaKNmNnuSbyrOiWKzKaWfLfeHiVTx-XDIcY1d2e6A3ZRai-nHOR80ofVToWBq0aejvYegkL0PLifF9nVYOxwPP-nvoxO0LgRbSmwyUCmm4NG7bTfashi4cLPmgKMkklGZNgINaNe9RtAsEDW2NJI59asn6R1yFLkcLEG9HKawDTBGwkNs-G3B03IlC-0w0GCiEvKTsPGo3xUDxWAa-crufhxSDnsJq0-8YXAaFbMIzyCOOcZKDT3tMo3-vn5mapjwRcdnN7BUCzJ3MbaDF0CNdKYO-b3cSU-0DGHiQo7tpUH_58JEvWLJVxHxfh4G2Oyz-bjcliyo9vzJ5JLdRV1pR-o2FdzfHjq8hriVraMaMbtS9-jzeaVdTuuyAKdYOi_XJXZH-6YDQcgYn0a; domain=.paypal.com; path=/; Secure; HttpOnly
    
    Set-Cookie: cookie_check=yes; expires=Sun, 27-Dec-2026 10:40:21 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
    
    Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/; Secure; HttpOnly
    
    Set-Cookie: navlns=0.0; expires=Sat, 29-Dec-2018 10:40:21 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
    
    Set-Cookie: Apache=10.72.108.11.1483008020869641; path=/; expires=Sat, 22-Dec-46 10:40:

As far as I understand I should get "VERIFIED" but I am unable to get that. Can anyone point out what the problem is?

What I have tried:

I changed my code according to an answer in stackoverflow regarding the same question. Initially when I was using below code, I wasn&#39;t getting anything in response, it was NULL:

    fputs($fp, $header . $req);
    while (!feof($fp)) {
                    $res = fgets ($fp, 1024); 
    }

解决方案

header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; // HTTP POST request


header.= "Content-Type: application/x-www-form-urlencoded\r\n";


header.= "Host: www.sandbox.paypal.com\r\n";


这篇关于未通过PHP中的paypal IPN验证或未经验证的响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆