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
Neu JTL Paypal Checkout Button bei Konfigurationsartikel verhindern Plugins für JTL-Shop 1
Neu JTL PayPal: Plugin - Bestellungen werden nicht angezeigt. Fehlermeldung "Unable to load config 'file:.conf'" Plugins für JTL-Shop 2
Neu PayPal Checkout: Verständnisfrage Plugins für JTL-Shop 0
Neu Paypal express Kauf nimmt Versandart Abholung (kostenlos) Plugins für JTL-Shop 0
Neu Paypal Plugin Version 1.2.0 läuft und 1.4.0. läuft nicht auf derselben Umgebung Plugins für JTL-Shop 0
Ich habe auf NOVA umgestellt aber PayPal funktioniert nicht Einrichtung JTL-Shop5 1
Neu Änderung des Auftrags nach Zahlungseingang Paypal Arbeitsabläufe in JTL-Wawi 7
Neu PayPal Checkout: Kunden verwirrt wegen Zahlungsart Name Plugins für JTL-Shop 0
Neu Erledigt - Plugin PayPal Checkout, Update auf 1.4.0, Komplettabsturz Plugins für JTL-Shop 1
Neu Paypal Gebühren neue AGB Allgemeine Fragen zu JTL-Shop 1
Neu PayPal Checkout mit Apple Pay und Google Pay Plugins für JTL-Shop 2
Neu JTL-Shop 5 Paypal Zahlung 30 Tage Zahlungsziel Allgemeine Fragen zu JTL-Shop 6
Neu Paypal Plugin erzeugt "Quirks Mode" Betrieb / Pflege von JTL-Shop 0
Neu PayPal Checkout - Bestellungen werden nicht übertragen! User helfen Usern - Fragen zu JTL-Wawi 1
Neu PayPal Checkout 1.3.0 Log Notice Mindestbestellwert Plugins für JTL-Shop 1
Neu PayPal Checkout - Beschreibung der Kaufdetails Plugins für JTL-Shop 0
PayPal - Consent-Manager Einrichtung JTL-Shop5 0
PayPal Checkout Personalisieren Einrichtung JTL-Shop5 6
Neu Mehrere Sprachen aktivieren und verschiede Preise pro Land erstellen Betrieb / Pflege von JTL-Shop 1
Neu beim Umstieg von unicorn auf SCX Bilder aktivieren Otto.de - Anbindung (SCX) 1
Neu Workflow der bei Stücklisten: Überverkäufe de-/aktivieren User helfen Usern - Fragen zu JTL-Wawi 11
Neu Rollende Kommissionierung aktivieren Installation von JTL-WMS / JTL-Packtisch+ 7
Merkmalfilter im Shop aktivieren und einstellen, suche optimieren. Einrichtung JTL-Shop5 3

Ähnliche Themen