PayPal IPN aktivieren oder nicht?

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
AW: PayPal IPN aktivieren oder nicht?

normalerweise sollte da gar keine Ausgabe kommen, auch keine "1" .... sicher, dass du den code richtig eingebaut hast ... poste mal bitte den kompletten code, verwende aber bitte code-tags (sorry ... meinen letzten 2.19er habe ich vor 4 Monaten zu Grabe getragen sonst würde ich selber nachsehen)
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

ich denke noch das die 1 richtig ist, bei anderen 2er shops kommt das auch.

Code:
<?php
/**
 *-------------------------------------------------------------------------------
 *    JTL-Shop 2
 *    File: paypal/notify.php, php file
 *    
 *    JTL-Shop 2 include file
 *    
 * @author JTL-Software <thomas@jtl-software.de>
 * @copyright 2007, JTL-Software
 * @link http://jtl-software.de/jtlshop.php
 * @version v1.0 / 31.05.07
 *-------------------------------------------------------------------------------
*/
require_once("../../../includes/globalinclude.php");
require_once(PFAD_ROOT.PFAD_CLASSES."class.JTL-Shop.Bestellung.php");
require_once(PFAD_ROOT.PFAD_SMARTY."Smarty.class.php");
require_once(PFAD_ROOT.PFAD_INCLUDES."sprachfunktionen.php");
require_once(PFAD_ROOT.PFAD_INCLUDES."mailTools.php");

// read the post from PayPal system and add 'cmd'

//writeLog("/tmp/notify.log","Notification eingegangen",1);

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) 
{
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
}

// 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 .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Connection: Close\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

if (!$fp) 
{
    // HTTP ERROR
} 
else 
{
    fputs ($fp, $header . $req);
    while (!feof($fp)) 
    {
        $res = fgets ($fp, 1024);
        if (strcmp ($res, "VERIFIED") == 0) 
        {
            // echo the response
            //writeLog("/tmp/notify.log",print_r($_POST,1),1);
            
            // check the payment_status is Completed
            if ($_POST['payment_status']!="Completed")
            {
//                writeLog("/tmp/notify.log","payment status nicht completetd",1);
                die('0');
            }
            // check that txn_id has not been previously processed
            
            
            $txn_id_obj = $GLOBALS['DB']->executeQuery("select * from tzahlungsid where txn_id=\"".$_POST['txn_id']."\"",1);
            if ($txn_id_obj->kBestellung>0)
            {
//                writeLog("/tmp/notify.log","zahlungsid bereits gahbt",1);
                die('0');
            }
            // check that receiver_email is your Primary PayPal email

            
            $Einstellungen = getEinstellungen(array(CONF_ZAHLUNGSARTEN));
            if ($Einstellungen['zahlungsarten']['zahlungsart_paypal_empfaengermail']!=$_POST['receiver_email'] && $Einstellungen['zahlungsarten']['zahlungsart_paypal_empfaengermail']!=$_POST['business'])
            {
//                writeLog("/tmp/notify.log","email nicht gleich mit empfänger",1);
                die('0');
            }
            // check that payment_amount/payment_currency are correct
            
            $zahlungsid = $GLOBALS['DB']->executeQuery("select * from tzahlungsid where cId=\"".$_POST['custom']."\"",1);
            if (!$zahlungsid->kBestellung)
            {
//                writeLog("/tmp/notify.log","zahlungsid unbekannt",1);
                die('0');
            }
                
            $b = $GLOBALS['DB']->executeQuery("select kKunde from tbestellung where kBestellung=".$zahlungsid->kBestellung,1);
            $kunde = $GLOBALS['DB']->executeQuery("select * from tkunde where kKunde=".$b->kKunde,1);
            $Sprache = $GLOBALS["DB"]->executeQuery("select cISO from tsprache where kSprache=".$kunde->kSprache,1);
            if (!$Sprache)
                $Sprache = $GLOBALS["DB"]->executeQuery("select cISO from tsprache where cStandard=\"Y\"",1);
            require_once(PFAD_ROOT.PFAD_LANGUAGE.$Sprache->cISO.".php");
            
            $bestellung = new Bestellung($zahlungsid->kBestellung);
            $bestellung->fuelleBestellung(0);
            if ($bestellung->Waehrung->cISO!=$_POST['mc_currency'])
            {
//                writeLog("/tmp/notify.log","falsche währung",1);
                die('0');
            }
            
            //zahlung setzen
            $GLOBALS['DB']->executeQuery("update tbestellung set 
                                            dBezahltDatum=now(), 
                                            cStatus=\"".BESTELLUNG_STATUS_BEZAHLT."\" where kBestellung=".intval($bestellung->kBestellung),4);

            unset($bestellung);
            $bestellung = new Bestellung($zahlungsid->kBestellung);
            $bestellung->fuelleBestellung(0);

            // process payment
            $paymentDateTmp=strtotime($_POST['payment_date']);
            $zahlungseingang->kBestellung = $bestellung->kBestellung;
            $zahlungseingang->cZahlungsanbieter = "PayPal";
            $zahlungseingang->fBetrag = $_POST['mc_gross'];
            $zahlungseingang->fZahlungsgebuehr = $_POST['payment_fee'];
            $zahlungseingang->cISO = $_POST['mc_currency'];
            $zahlungseingang->cEmpfaenger = $_POST['receiver_email'];
            $zahlungseingang->cZahler = $_POST['payer_email'];
            $zahlungseingang->cAbgeholt = 'N';
            $zahlungseingang->dZeit = strftime('%Y-%m-%d %H:%M:%S',$paymentDateTmp);
            $GLOBALS['DB']->insertRow('tzahlungseingang',$zahlungseingang);
            
            //mail
            $obj->tkunde = $kunde;
            $obj->tbestellung = $bestellung;
            sendeMail(MAILTEMPLATE_BESTELLUNG_BEZAHLT,$obj);
            
        }
    }
    fclose ($fp);
}
echo("1");
?>
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
AW: PayPal IPN aktivieren oder nicht?

Code:
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

ändere diese Zeile mal ab auf:

Code:
$fp = fsockopen ('ssl://www.paypal.com', 443 , $errno, $errstr, 30);
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

ok, hab ich gemacht. ich habe allerdings kein SSL.
Ich weiß auch nicht ob ich das jetzt testen kann ... muß wohl auf eine Zahlung warten?
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
AW: PayPal IPN aktivieren oder nicht?

hast du auch dein PP-Konto überprüft, dass dort IPN aktiviert ist?

Zeige mal bitte als screenshot:

Melde dich mal bitte an deinem PP-Konto an, dann

Mein Konto -> Mein Profil -> Mehr ...

dann in der linken Box auf "Verkäufer/Händler"

dann im mittleren Bereich

"Einstellungen für sofortige Zahlungsbestätigung" -> Aktalisieren
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

ist aktiv, nur die nachrichtenzustellung ist aus.
 

Anhänge

  • pp.jpg
    pp.jpg
    44,9 KB · Aufrufe: 82

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

da steht ganz oben: Sie haben die Funktion sofortige Zahlungsbestätigung IPn aktiviert.
Und ganz unten gibts einen Knopf für deaktivieren. Was soll diese Einstellung dann?

Egal ich schalts an ..
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

und mit Beitrag #23 bist du sicher ?
Code:
$fp = fsockopen ('ssl://www.paypal.com', 443 , $errno, $errstr, 30);
Ich habe kein SSL.
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

Ich habe hier mal einen Auszug aus dem Server Log von shisha.de. ich glaube, das ist es was paypal an www.shisha.de sendet. Auffällig ist http/1.0 anstatt 1.1 .

Code:
173.0.81.1 - - [25/Nov/2012:23:08:29 +0100] "POST /includes/modules/paypal/notify.php HTTP/1.0" 200 249 www.shisha.de "-" "-" "-"
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

die paypal zahlung von heute wurde nicht als bezahlt markiert,
funktioniert also immer noch nicht.
Ist mir ein Rätsel das ganze.
Code:
173.0.81.1 - - [26/Nov/2012:18:50:45 +0100] "POST /includes/modules/paypal/notify.php HTTP/1.0" 200 249 www.shisha.de "-" "-" "-" 
66.211.170.66 - - [26/Nov/2012:18:51:56 +0100] "POST /includes/modules/paypal/notify.php HTTP/1.0" 200 249 www.shisha.de "-" "-" "-"
 66.211.170.66 - - [26/Nov/2012:18:53:17 +0100] "POST /includes/modules/paypal/notify.php HTTP/1.0" 200 249 www.shisha.de "-" "-" "-"
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
AW: PayPal IPN aktivieren oder nicht?

wie sieht denn für diese Zahlung in deinem PP-Konto der IPN-Verlauf aus?

was steht exakt bei benachrichtigungs-url, was bei http-rückmeldungscode, etc?
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
AW: PayPal IPN aktivieren oder nicht?

hmmmm...aus irgend einem Grunde bekommt PP von deiner notify keinen HTTP-Rückmeldungscode

Die große Frage ist "warum"

Findest du zu der IPN 26.11.2012, 02:00 Uhr (PST) irgend was in deinen server-logs (müsste wenn dein Server auf deutscher Zeit läuft am 25.11.2012, 17:00 Uhr sein)
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

die server logs sehen immer gleich aus, also so wie 2 Posts weiter oben.

um 17 gibts nichts, aber später:
Code:
173.0.81.1 - - [25/Nov/2012:23:08:29 +0100] "POST /includes/modules/paypal/notify.php HTTP/1.0" 200 249 www.shisha.de "-" "-" "-"
 

bernd12

Gut bekanntes Mitglied
1. Oktober 2009
518
1
w
AW: PayPal IPN aktivieren oder nicht?

in Paypal Developer steht:
Code:
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
    
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
 
    // If testing on Sandbox use: 
    // $header .= "Host: www.sandbox.paypal.com:443\r\n";
$header .= "Host: ipnpb.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";

    // If testing on Sandbox use:
    //$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);

die zeile:
Code:
$header .= "Host: ipnpb.paypal.com:443\r\n";

steht im Gegensatz zu dem was bei mit im Script steht:

Code:
// read the post from PayPal system and add 'cmd'

//writeLog("/tmp/notify.log","Notification eingegangen",1);

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) 
{
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
}

// 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 .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Connection: Close\r\n\r\n";
$fp = fsockopen ('ssl://www.paypal.com', 443 , $errno, $errstr, 30);
 

dagoberto

Sehr aktives Mitglied
19. Juli 2009
1.573
9
Köln
AW: PayPal IPN aktivieren oder nicht?

Musste da nicht was auf 1.1 geändert werden??

Manuelle Anleitung:

Datei includes/modules/paypal/PayPal.class.php öffnen, folgende Zeile suchen:
Code:

[FONT=Tahoma, Calibri, Verdana, Geneva, sans-serif]$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";[/FONT]
und ersetzen durch
Code:

[FONT=Tahoma, Calibri, Verdana, Geneva, sans-serif]$header .= "POST /cgi-bin/webscr HTTP/1.1\r\n";[/FONT]
unter Content-Lenght die folgenden neuen Zeile einfügen:
Code:

$header .= "Host: www.paypal.com\r\n";
[FONT=Tahoma, Calibri, Verdana, Geneva, sans-serif]$header .= "Connection: Close\r\n\r\n";[/FONT]
 
Ähnliche Themen
Titel Forum Antworten Datum
PayPal Buttons auf Artikeldetailseite nicht mehr sichtbar in Safari, FireFox Einrichtung JTL-Shop5 14
Zahlungsmodul - PayPal Fehler: kein lauschender Endpunkt JTL-Wawi 1.9 0
Neu JTL PayPal Checkout nach Updatefehler 2.0.0 doppelt vorhanden Plugins für JTL-Shop 3
Neu PayPal Rechnung per Ratepay leitet immer auf Adresseingabeseite zurück Plugins für JTL-Shop 5
Neu Plugin PayPal - capture failed for method PayPal Checkout Plugins für JTL-Shop 0
Neu Paypal Plugin läßt sich nicht installieren - SQL Fehler Plugins für JTL-Shop 2
Neu Paypal Plugin 2.0.1 Merachant JTL-Shop - Fehler und Bugs 10
Neu PayPal Plugin 2.0 - Vaulting - Ist IMMER ein neues Onboarding nötig? Wie prüfen, ob OK? Plugins für JTL-Shop 6
Neu PayPal Checkout Rückleitungsurl Plugins für JTL-Shop 26
Paypal als Zahlungsanbieter in Wawi einrichten JTL-Wawi 1.9 1
Neu Echtzeitüberweisung - Neue Alternative zu PayPal & Co. ohne Gebühren Allgemeine Fragen zu JTL-Shop 22
Neu JTL-Shop 5.5.0 PayPal Plugin Installation / Updates von JTL-Shop 2
Neu Card Reader von Paypal (Zettle) wird nicht erkannt. Einrichtung / Updates von JTL-POS 4
Neu PayPal übernimmt vorausgefüllte Adressdaten nicht Plugins für JTL-Shop 0
Neu Paypal Checkout - Sprache für Zahlungsartbuttons in Fremdsprachen (FR-IT-ES) nicht vorhanden Plugins für JTL-Shop 0
Neu PayPal Zahlung autorisieren User helfen Usern - Fragen zu JTL-Wawi 0
Neu "PayPal Checkout" als Position JTL-Wawi - Fehler und Bugs 4
Paypal Zahlungsanbindung geht nicht mehr JTL-Wawi 1.10 2
Neu Workflow Artikel Erscheint am Datum überschritten, Bestandsführung aktivieren. User helfen Usern - Fragen zu JTL-Wawi 2

Ähnliche Themen