Jump to content
xt:Commerce Community Forum

Paypal IPN


dattl

Recommended Posts

Hallo,

nach Installation des Paypal IPN Zahlungsmoduls tritt beim Testen immer ein Fehler auf:

Der Bestellvorgang an sich verl?uf reibungslos mit Zahlungsbest?tigung und R?ckleitung auf die von der paypal- auf die Schop-Seite, allerdings sind sind die Bestellungen im Admin rot als "Nicht best?tigt" markiert (Status) und ich bekomme eine email mit folgendem Inhalt:

No order found for invoice=4778155294399125985932

with customer=1.

POST - 216.113.188.202 - -

$_POST:

payment_date=07:53:44 Feb 21, 2006 PST

txn_type=web_accept l

ast_name=Kmer

residence_country=AT

item_name=D Shop

payment_gross= mc_currency=EUR

[email protected]

payment_type=instant verify_sign=XXXXXXXXX3BZHTWI27gO.G.mXgZwAkQayTTPeyKGl1aI2OcczWi5Y0ue

payer_status=verified

tax=0.00

[email protected]

txn_id=X583E2508482M

quantity=1

[email protected]

first_name=Re

invoice=4778155294399125985932

payer_id=XXX98Q6RBSWZA

receiver_id=XXXC3APQBC4HC

item_number=

payment_status=Completed

payment_fee=

mc_fee=0.01

shipping=0.00

mc_gross=0.01

custom=1

charset=windows-1252

notify_version=2.0

$_GET:

IMO liegt der Fehler wahrschein?ich an der Konfiguration im PayPal-Profil. Hierzu mein Frage: Was mus bei PayPal konfiguriert werden, dass alles Funktioniert?

URL der sofortigen Zahlungsbest?tigung? was trage ich hier ein? ich habs probiert mit der checkout_process.php und ipn.php aus dem root-Verzeichniss - kein Erfolg.

Bitte um Hilfe!

(Suche im Forum nach ipn hat nichts ergeben)

LG

Ren?

Link to comment
Share on other sites

Also:

die Fehlermeldung stammt aus der Datei ipn.php. Hervorgerufen durch diese if Anweisung (Zeile 90)

$order_query = xtc_db_query("SELECT currency, currency_value

   FROM " . TABLE_ORDERS . "

   WHERE orders_ident_key = '" . xtc_db_prepare_input($_POST['invoice']) . "' 

  AND customers_id = '" . (int)$_POST['custom'] . "'");


	if(xtc_db_num_rows($order_query) > 0) {

In der Tabelle 'orders' ist die Spalte 'orders_ident_key' der betreffenden Bestellungen 'NULL'! Hier sollte meiner Meinung nach die 22-stellige Nummer, die unter 'invoice' in der Fehlermeldung angef?hrt ist, stehen. Im Code geht es dann weiter wie folgt:
$order = xtc_db_fetch_array($order_query);

 $total_query = xtc_db_query("SELECT value

     FROM " . TABLE_ORDERS_TOTAL . " 

     WHERE orders_ident_key = '" . xtc_db_prepare_input($_POST['invoice']) . "' 

  AND class = 'ot_total' limit 1");

In der Tabelle 'orders_total' existiert der Spalte 'orders_ident_key' aber ?berhaupt nicht?!

'invoice' wird erzeugt in der paypal_ipn.php, in der Funktion 'process_button()' aus der Session-Variable 'order_ident_key' aber nie - in keiner Datei (hab den gesamten Quellcode durchsucht) - in die Datenbank geschrieben.

Wo m?sste ich das logischer Weise ?ndern?

Bitte um Hilfe - nur einen kleinen Denkansto?!

Ren

Link to comment
Share on other sites

So, das ist hab ich mitlerweile selbst erledigt, in checkout_process.php in Zeile 106. 109 und 115: , 'orders_ident_key' => $_SESSION['order_ident_key'] hinzugef?gt.

Nun hab ich aber schon das n?chtste Problem:

ipn.php wird von PayPal aufgerufen kann aber die Bestellung in der TABLE_ORDERS nicht finden, da diese erst nach R?ckleitung auf meine Seite von der Datei checkout_process.php in die Datenbank geschrieben wird! Daher kann ipn.php auch den Order-Status nicht ver?ndern, bleibt noch immer "Nicht best?tigt".

Hat denn niemand die gleichen Probleme? Funktioniert das Modul bei euch ohne Probleme?

Link to comment
Share on other sites

  • 2 weeks later...

PayPal soll angeblich in der n?chsten Version gefixt werden

(wurde zumindest kurz nach SP1 gesagt).

Wann das sein wird, und ob es dabei schon in 3.0.4SP2 der Fall sein wird

k?nnen nur die Devs beantworten.

Ich verfolge die PayPal-Problematik schon lange,

da ich es eigentlich auch anbieten wollte.

Ich hoffe auf eine Besserung mit dem angek?ndigten SP2,

was f?r ein 'Bugfix-Paket' auch schon l?nger auf sich warten l??t.

:sad:

Wie es mit ?lteren Versionen aussieht kann ich nicht sagen.

Link to comment
Share on other sites

  • 5 weeks later...

Bei mir gibt XTC eine fehlermeldung, dass der Order Status, den IPN setzen m?chte, nicht passend ist und daher die R?ckmeldung nicht erfolgen kann. Erscheint als Fehler in der Bestell?bersicht. Habe es schon mit anderen Orderstati versucht. Hat jemand einen Tip? W?re sehr dankbar!

Freundliche Gr??e,

Jonas

Link to comment
Share on other sites

hallo,

bin der sache etwas weiter auf den Grund gegangen.

Offensichtlich will Paypal bei mir den Status 0 setzen, wenn eine Paypal-Zahlung erst per Bank?berweisung erfolgt. Diesen Status gibt es aber garnicht in der tabelle order_status.

Ich kann nat?rlich mein Sandbox-Account so einstellen, dass er vom Guthaben bezahlt, aber das ist ja nicht immer der Fall im echten Leben.

Wei? jemand Rat?

Vielen Dank,

Jonas

Link to comment
Share on other sites

ich hab mal die fehlermeldung kopiert:

1054 - Unknown column 'orders_status' in 'field list'

UPDATE orders_status_history SET orders_status='0' WHERE orders_id='66'

[XT SQL Error]

und meine paypal_ipn-einstellungen sind die hier:

Sie werden nach der Best?tigung auf die PayPal Website umgeleitet.

Bitte warten Sie den erneuten R?cksprung zu uns zur?ck ab.

Ihre Bestellung wird nach erfolgter Zahlung bearbeitet.

PayPal-IPN-Modul aktivieren

True

Erlaubte Zonen

EMail-Adresse

[email protected]

Transaktionsw?hrung

Only EUR

Zahlungszone

--keine--

Vorbereitender / Offener PayPal-Bestellstatus

an Checkout ?bergeben

abgeschlossener PayPal-Bestellstatus

Paypal-Zahlung erhalten

Verweigerter / R?ckgebuchter Bestellstatus

Offen

Gateway-Server

Testing

Seitenstil

Fehlerbehebungs-EMail-Adresse

[email protected]

Anzeigereihenfolge

0

Verschl?sselt Web-Zahlung aktivieren

False

Ihr privater Schl?ssel

Ihr ?ffentliches Zertifikat

PayPals ?ffentliches Zertifikat

Die ID Ihres ?ffentlichen PayPal-Zertifikats

Arbeitsverzeichnis

/tmp

Ort von OpenSSL

/usr/bin/openssl

Link to comment
Share on other sites

hm also ich hab das mal ausprobiert.... gibt jetzt sowas hier:

1054 - Unknown column 'orders_id' in 'where clause'

UPDATE orders_status SET orders_status_id='6' WHERE orders_id='76'

[XT SQL Error]

die betreffenden zeilen sehen so aus:

function after_process() {

global $insert_id;

if ($this->order_status)

xtc_db_query("UPDATE ". TABLE_ORDERS_STATUS ." SET orders_status_id='6' WHERE orders_id='".$insert_id."'");

xtc_db_query("UPDATE ". TABLE_ORDERS_STATUS_HISTORY ." SET orders_status_id='6' WHERE orders_id='".$insert_id."'");

6 ist bei mir "paypalzahlung eingegangen", da war vorher 0, und den status habe ich garnicht.

ich habe ausserdem ...SET orders... in ...SET orders_status... ver?ndert, weil in der tabelle "orders" gibt es "orders_status_id" ?berhaupt nicht.

trotzdem gehts nicht. wei?t du weiter oder habe ich mist gebaut?

vielen dank auf jeden fall...

Link to comment
Share on other sites

alles was ich ge?ndert habe steht hier weiter oben, mehr hab ich leider noch nicht. da sind imo tiefgreifendere ?nderungen notwendig, dass das status-system funktioniert, das wird hoffentlich in der n?chsten version oder sp soweit sein.

lg

ren

Link to comment
Share on other sites

  • 3 months later...
  • 4 years later...

Hallo,

sorry wenn ich so einen alten Beitrag ausgrabe, aber hat es für das Problem mal irgendwann eine Lösung gegeben?

Leider habe ich so ziemlich null Ahnung von dem ganzen xt commerce System und weiß auch nicht ganz genau was da überhaupt passiert. Ich hab halt den Fehler auf meinen Schreibtisch bekommen und wollte wissen ob es dafür eine Lösung gibt, ohne das ich mir selber das ganze System anschauen muss, was wie funktioniert...

Meine Version ist die:

$Id: paypal_ipn.php v1.0 998 2005-08-16 14:18:20Z HHGAG $

Viele Grüße

Thomas

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...