2017-03-02 46 views
0

我有這個代碼工作6個月。現在,它停止工作。我花了2天的PayPal支持,Stackoverflow q/a,谷歌...我希望老實說,這不是一個重複的問題,但我真的在Stackoverflow上搜索了2天,並沒有找到答案。ASP經典IPN監聽器工作,現在不

通過本地測試,它產生了200個答案和INVALID,這對於沙盒來說是完美的。當我轉到PayPal上的IPN模擬器時,它總是返回紅色。幫助我Obi Wan Kanobi =>你是我唯一的希望!感謝您提供任何幫助。

我減少了代碼:

paypal_url = "https://www.paypal.com/cgi-bin/webscr" 

    strResponse = "cmd=_notify-validate&" & Request.Form 

    set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") 
    objHttp.open "POST", paypal_url, false 
    objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded" 
    objHttp.Send strResponse 

    if (objHttp.status <> 200) then 
     str = "ERROR 200" 
    elseif (objHttp.responseText = "VERIFIED") then 
     str = "VERIFIED" 
    elseif (objHttp.responseText = "INVALID") then 
     str = "INVALID" 
    else 
     str = "ERROR GENERAL" 
    end if 

    set objHttp = nothing 
+0

沒有承諾,但嘗試'Server.CreateObject(「Msxml2.ServerXMLHTTP.6.0」)' – John

+0

此外,還有一個可能相關的專家交換問題。 https://www.experts-exchange.com/questions/28937989/Msxml2-ServerXMLHTTP-6-0-not-using-TLS1-2-in-Windows-Server-2012.html – John

+0

我認爲可能有問題IPN模擬器。我注意到,如果我放入一個不存在的URL,我會得到相同的IPN未發送錯誤。看看你的網絡日誌,看看你是否從sandbox.paypal.com得到任何東西。它可能不會送你任何東西!此外,你是否嘗試過做測試支付(sandbox.paypal.com)或實際支付(paypal.com),看看你是否聽到了IPN消息。 – JBart

回答

0

我敢肯定的IPN模擬器不工作。我用這個創建了一個腳本

<?php 
    date_default_timezone_set('America/Los_Angeles'); 
    ini_set('error_log', 'ipn_errors.log'); 
    $fp = fopen('.log', "a"); 
    fwrite($fp, date("\tY-m-d H:i:s") . "\n"); 
    foreach ($_REQUEST as $key => $value) { 
     fwrite($fp, "$key\t$value\n"); 
    } 
    fwrite($fp, "--\n"); 
    fclose($fp); 

    header("HTTP/1.1 200 OK"); 
?> 

並指出IPN模擬器。它不寫入.log,它不被調用。