Author Topic: [GELÖST] Doppelte E-Mail an Käufer und Shopbetreiber nach Paypal-Bezahlung  (Read 2668 times)

instantflorian

  • Guest
Hallo,

WB 2.8.3 Rev. 1638
Bakery 1.60
PHP 5.3

nach erfolgreicher Bestellung erhalten sowohl Besteller als auch Shopbetreiber die Bestätigungsmail 2x.
Im Mail-Header steht jeweils bei der ersten Mail
X-PHP-Script: www.domain.foo/modules/bakery/payment_methods/paypal/ipn.php for 173.x.y.z (<=Paypal-IP)
und bei der zweiten Mail
X-PHP-Script: www.domain.foo/pages/unterkategorie/bakyeryseite.php for 178.x.y.z (<=Provider-IP)

Ich habe immens lange auf view_confirmation.p hp und paypal/ipn.php geschaut, es jedoch nicht geschafft, die Doppelmails abzustellen.

Das Problem tritt nur bei Paypal-Bezahlung auf, es scheint, als würde $email_sent nicht gesetzt bzw. vergessen.
Ich bin etwas ratlos und auf der Suche nach einer Lösung bzw. einem Workaround.

Danke im voraus.
_florian.
« Last Edit: August 02, 2012, 06:00:56 PM by instantflorian »

jacobi22

  • Guest
Re: Doppelte E-Mail an Käufer und Shopbetreiber nach Paypal-Bezahlung
« Reply #1 on: August 02, 2012, 01:13:11 PM »
einmal als Bestellbestätigung und einmal als Bezahlbestätigung, falls ja, wäre das doch okay

Offline marmot

  • Posts: 1103
Re: Doppelte E-Mail an Käufer und Shopbetreiber nach Paypal-Bezahlung
« Reply #2 on: August 02, 2012, 02:49:42 PM »
Hi,

Das Problem tritt nur bei Paypal-Bezahlung auf, es scheint, als würde $email_sent nicht gesetzt bzw. vergessen.
Ich bin etwas ratlos und auf der Suche nach einer Lösung bzw. einem Workaround.
ich würde sagen, damit hast du dir die Antwort schon selbst gegeben  :wink:.  Setze doch einfach in der ipn.php z.B. Zeile 160
Code:
Only registered users can see contents. Please click here to Register or Login. In der view_confirmation.p hp steht in den Zeilen 101 und 102 ja auch ein entsprechender Kommentar.
Ist allerdings ungetestet.
Gruß

jacobi22

  • Guest
Re: Doppelte E-Mail an Käufer und Shopbetreiber nach Paypal-Bezahlung
« Reply #3 on: August 02, 2012, 03:07:22 PM »
$email_sent sollte eigentlich erst nach erfolgreicher Zahlung auf true gesetzt werden, heißt: wenn die Erfolgreich-Rückmeldung von Paypal kommt. Für den Testlauf ist das definiert, für den normalen Zahlungsverlauf bzw. vorgang find ich das nicht.

Ich würde es aber nicht pauschal auf true setzen, sondern erst nach erfolgreicher Zahlung

Datei bakery/payment_methods/paypal/check_payment.php in Zeile 167 nach $payment_status = "success"; und vor return;

einfügen:

$email_sent     = true;

instantflorian

  • Guest
Re: Doppelte E-Mail an Käufer und Shopbetreiber nach Paypal-Bezahlung
« Reply #4 on: August 02, 2012, 06:00:23 PM »
Hallo,

Danke für Eure Hilfe.

Der Gärtner war der Mörder, sprich, es lag doch an etwas völlig anderem: Die bei der Zahlungsmethode Paypal hinterlegte Empfänger-Mail-Adresse war als Vorname.Nachname@provider.foo angegeben - und Paypal oder Bakery ist nicht damit zurecht gekommen; die Bezahlung wurde zwar erfolgreich abgewickelt, die Bestellung erhielt intern jedoch den Status "pending" (aber auch nicht "fail"). Dadurch wurde die "success"-Schleife mit dem Setzen von $email_sent = true nicht aufgerufen.  Nachdem ich die Adresse auf vorname.nachname@provider.foo (also kleingeschrieben) geändert hatte, wurden nur die erwünschten Mails versandt.
Merkwürdiges Phänomen. Das fiel mir aber auch erst auf, nachdem ich $testing = true gesetzt hatte.

Viele Grüße
_florian.

Offline marmot

  • Posts: 1103
Re: Doppelte E-Mail an Käufer und Shopbetreiber nach Paypal-Bezahlung
« Reply #5 on: August 02, 2012, 08:04:20 PM »
Hi,

... die Bezahlung wurde zwar erfolgreich abgewickelt, die Bestellung erhielt intern jedoch den Status "pending" (aber auch nicht "fail").
Eigentlich sollte das in der Mail auch vermerkt gewesen sein durch "ACHTUNG:\n\tDie Transaktion ist noch \"OFFEN\".\n\tAlle Details zu dieser Zahlung finden Sie in Ihrer PayPal-Kontoübersicht."
Quote
Nachdem ich die Adresse auf vorname.nachname@provider.foo (also kleingeschrieben) geändert hatte, wurden nur die erwünschten Mails versandt.
Da Groß- und Kleinschreibung für die E-Mail ja wirklich egal ist könnte man den Test in Zeile 147 der ipn.php
Code:
Only registered users can see contents. Please click here to Register or Login. zb mit strcasecmp() unabhängig von der Schreibweise machen.
Allerdings ist es wohl auch wirklich machbar, die Adresse in Bakery genau so zu hinterlegen wie es bei PayPal der Fall ist ;).

Freut mich, dass es nun bei dir funktioniert.

Gruß

 

postern-length