2013-11-03 2 views
-4

작동하지 않습니다 :페이팔 IPN은이 내 코드입니다 제대로

if (strcmp (trim($res), 'VERIFIED') == 0) 
: 나는 그것을 변경

if (strpos ($res, "VERIFIED") !== false) 

:

// post back to PayPal system to validate 
$header .= "POST cgi-bin/webscr HTTP/1.1\r\n"; 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $header .="Host: www.paypal.com\r\n"; 
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; 
    $header .="Connection: close\r\n\r\n"; 
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); 

if (!$fp) { // HTTP ERROR 
    echo 'HTTP ERROR'; 
} else { 

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

     if (strpos ($res), "VERIFIED") !== false) { 
      switch ($transaction_type) { 
       case "subscr_payment": 
        if ($payment_status == "Completed" &&strtolower($receiver_email) == strtolower($receiverEmail)&&$currency=$payment_currency) 

앞서 나는이 라인에 trim 문을 입력 시도했다

+0

굉장! 고맙습니다!!! –

답변

2

'연결 : 닫기'헤더 (뒤에는 \r\n으로 끝남) 뒤에 빈 줄이옵니다 (예 : 또 다른 \r\n)은 마지막 헤더이지만 이전 헤더 ('Content-Length')도 마찬가지입니다. 따라서 'Connection : close'헤더가 페이로드의 일부로 표시됩니다. 이전 헤더에서 빈 줄을 제거하십시오. 즉, 마지막 두 번째를 \r\n\r\n\r\n으로 변경하십시오. 사실 나는 그것들을 둘 다 바꿀 것이고 마지막 헤더 다음에 \r\n이라는 또 다른 프린트를 추가 할 것이다. 그래서 이것을 다시 깨뜨리지 않을 것이다.

+0

*** 진행자 메모 *** *이 게시물 아래의 주석은 신호보다 더 많은 잡음으로 인해 제거되었습니다. 토픽과 모든 전문가의 의견을 간략하게 적어주십시오. * –