it-swarm.com.de

Paypal IPN immer "payment_status: Pending" auf Sandbox zurückgeben?

Ich versuche, Paypal auf meiner Website zu implementieren.

Ich benutze diese Klasse: http://www.micahcarrick.com/php-Paypal-ipn-integration-class.html

Im Moment teste ich mit der Paypal-Sandbox. 

Hier ist das Problem:

  1. Der Benutzer macht die Zahlung - ok
  2. Benutzer kehrt erfolgreich zu meiner Website zurück - ok
  3. Nach einigen Sekunden ruft Paypal meine Website mit IPN an - ok
  4. Meine Klasse überprüft eingehende IPN-Daten erfolgreich.
  5. Paypal gibt "payment_status: Pending" zurück 

Ich weiß nicht, warum Paypal IPN mit dem Zahlungsstatus "ausstehend" zurückruft?

Weiß jemand, was ich falsch mache?

55
marc

Wenn Sie bei Ihrem Testgeschäftskonto angemeldet sind, navigieren Sie manuell zu: 

https://www.sandbox.Paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true

Normalerweise können Sie dorthin gelangen, indem Sie Ihr "My Business Setup" (My Business Setup) durchgehen. Derzeit wird jedoch direkt zu Paypal umgeleitet (obwohl Sie sich in der Sandbox befinden).

Wenn Sie sich auf dieser Seite befinden, ändern Sie "Blockieren von Zahlungen, die in einer Währung gesendet werden, die ich nicht halte" in "Nein, akzeptiere sie und konvertiere sie in ...".

Vergessen Sie nicht, Ihr Geschäftskonto über das Paypal Sandbox-Frontend und den Abschnitt "Test E-Mail" der API zu bestätigen.

48
Wes Hanney

Mein Problem war, dass mein Sandbox-Händlerkonto als britischer Benutzer erstellt wurde (und GBP als Währung). Wenn ich versuchte, Aufträge in Dänischen Kronen (DKK) durchzugehen, würde ich sagen, dass der Kauf in der Händleransicht "Nicht beansprucht" war. Sobald eine Bestellung in DKK angenommen wurde und ich mich entschied, eine neue Währung in DKK zu erstellen, schickte IPN mir alle Meldungen "payment_status = complete".

16
h2ooooooo

Nachdem Sie sich mit diesem Problem befasst haben und ein wenig Paypal die Benutzeroberfläche ändern,

Hier sind die genauen Anweisungen von Paypal Merchant Technical Support:

Vielen Dank, dass Sie sich an den technischen Support von Merchant gewendet haben.

Folgen Sie den nachstehenden Anweisungen, um die Funktion "Zahlungsprüfung" für Ihr Sandbox-Konto zu deaktivieren:

  • Gehe zu Paypal Developer Website
  • Melden Sie sich bei Ihrem Entwicklerkonto an
  • Klicken Sie auf Anwendungen
  • Klicken Sie auf Sandbox-Konten
  • Klicken Sie auf die E-Mail-Adresse, an der Sie die Option "Zahlungsprüfung" deaktivieren möchten, und klicken Sie nach dem Erweitern auf Profil
  • Klicken Sie auf Einstellungen
  • Wählen Sie für die Zahlungsüberprüfung die Option Aus.
  • Klicken Sie auf Schließen

!!! Stellen Sie sicher, dass Sie dies auf Ihrem Paypal SandBox-Händlerkonto tun!

Und so sieht es aus:

enter image description here

10
Jadeye

Sie können es durch die folgende Anweisung beheben.

  1. Melden Sie sich bei Developer Central an.

  2. Klicken Sie links auf die Registerkarte Test Accounts. Sie sollten diese Testkonten zum Testen auf Sandbox erstellt haben.

  3. Suchen Sie nach der Spalte "Zahlungsprüfung".

  4. Suchen Sie das Sandbox-Konto, das Sie verwenden, und klicken Sie in der Spalte "Zahlungsüberprüfung" auf "Aktiviert".

  5. Dies sollte sich in "Deaktiviert" ändern. Jetzt werden Zahlungen, die von Ihrem Guthaben und Ihrer Kreditkarte bezahlt werden, sofort abgeschlossen.

8
mouhammed

Zwei mögliche Gründe:

1. Verkäuferkonto hat die Option, die Zahlung anzunehmen oder abzulehnen

In diesem Fall müssen Sie sich als Verkäufer anmelden und die Zahlung akzeptieren, und Sie erhalten eine weitere IPN mit payment_status = Completed

Schritte:

  1. melden Sie sich bei Ihrer Entwicklerzentrale an
  2. klicken Sie links auf "Test Accounts"
  3. wählen Sie das Verkäufer-Konto aus und drücken Sie unten auf "Sandbox-Test-Site eingeben"
  4. Sie sollten das Verkäufer-Dashboard mit der Option zum Akzeptieren oder Ablehnen einer Zahlung sehen (möglicherweise müssen Sie sich in diesem Schritt mit den Anmeldeinformationen des Verkäufer-Testkontos erneut anmelden)

2. Zahlungsprüfung ist aktiviert

Lösung: 

  1. Melden Sie sich bei Developer Central an.
  2. Klicken Sie links auf die Registerkarte Test Accounts. Sie sollten diese Testkonten zum Testen auf Sandbox erstellt haben.
  3. Suchen Sie nach der Spalte "Zahlungsprüfung".
  4. Suchen Sie nach dem Sandbox-Konto, das Sie verwenden, und klicken Sie in der Spalte "Zahlungsüberprüfung" auf "Aktiviert".

Dies sollte sich in "Deaktiviert" ändern. Jetzt werden Zahlungen, die von Ihrem Guthaben und Ihrer Kreditkarte bezahlt werden, sofort abgeschlossen.

7
  1. Ich habe ändereAllow payments sent to me in a currency I do not hold in Yes in allen Benutzerkonten in der Sandbox, aber es funktionierte immer noch nicht. 

  2. Ich habe auch versucht, die gleichen Währungen im Paypal-Formular zu erstellen, und für die Sandbox-Benutzerkonten hier die neue Währung vorrangig machen. Geld in die neue Währung umrechnen. Immer noch kein Erfolg.

  3. Dann bemerkte ich den letzten Satz von Wes Hanneys Antwort: "Bestätigen Sie Ihr Geschäftskonto mit dem Paypal Sandbox-Frontend". Versuch das hat auch nicht funktioniert.

  4. M. G. Palmer schlug in seiner Antwort vor, ein deutsches Handelskonto anzulegen. Hat auch nicht funktioniert.


Was für ein Ärger! 

Nach einer Stunde, als ich kurz davor war, den PC aus dem Fenster zu werfen, bemerkte ich gerade, dass ich eine Sache vergessen hatte. Ändern meiner tatsächlichen Empfänger-E-Mail-Adresse im Paypal-Formular zur E-Mail-Adresse des Sandbox-Händlers. Das hat es endlich für mich gelöst.


PS: Vielleicht ein dummer Anfängerfehler? Kann aber für andere hilfreich sein, die in die gleiche Situation geraten.

5
Kai Noack

Ich hatte das gleiche Problem und keiner der Vorschläge hier hat funktioniert. Dann wurde mir klar, dass das Problem darin bestand, dass ich versuchte, eine Zahlung von einem Sandbox-Konto auf ein Live-Konto zu tätigen. Wenn Ihr registriertes Geschäftskonto beispielsweise lautet: [email protected], sollten alle Sandbox-Zahlungen an [email protected] erfolgen, andernfalls landen sie im PENDING-Modus. 

4
Emil Borconi

Ähnliches Problem hier - mein (Sandkasten-) Händlerkonto wurde wie in den USA erstellt und ich habe versucht, EUR-Zahlungen zu tätigen.

Für mich war es egal, welche Einstellungen ich geändert habe, es funktionierte nur, nachdem ein neuer Händler-Account in Deutschland erstellt wurde.

2
M.G.Palmer

Standardmäßig ist Ihr PayPal-Geschäftskonto auf einige akzeptierte Währungen beschränkt, die aufgrund Ihrer regionalen Einstellungen ausgewählt werden. Zahlungen, die mit nicht akzeptierten Währungen getätigt werden, bleiben im Status "Ausstehend/Offen". Um diese Währungen zu unterstützen/zu akzeptieren, müssen Sie sie zur Liste der "akzeptierten Währungen" auf Paypal hinzufügen. Gehen Sie dazu folgendermaßen vor:

  1. Melden Sie sich mit Ihrem PayPal-Geschäftskonto bei Paypal an
  2. Gehen Sie zu "Profil"> "Profil und Einstellungen"> "Mein Geld"> "Währungen"
  3. Fügen Sie die Währungen hinzu, die Sie unterstützen möchten.

Anmerkung: Wenn Sie beim Testen die Sandbox-Konten verwenden, müssen Sie dies auch für Ihr Facilitator-Sandbox-Konto ausführen, nachdem Sie sich unter der folgenden URL bei diesem Konto angemeldet haben: https://www.sandbox.Paypal.com/

1
BartM

Keine der oben genannten Lösungen funktionierte für mich, half mir jedoch, die Lösung zu finden.

Wenn Sie das standardmäßige Geschäfts- und Käuferkonto verwenden, funktioniert diese Lösung möglicherweise für Sie.

  1. Gehen Sie zu developer.Paypal> sandbox.accounts
    https://developer.Paypal.com/developer/accounts/

  2. Login und klicken Sie in Ihrem Sandobx Geschäftskonto und Ihr Käuferkonto auf Klon-Symbol

  3. Legen Sie neue Namen und E-Mails fest und klicken Sie auf Neues Konto erstellen

  4. Öffnen Sie das Profil beider Konten und stellen Sie sicher, dass ZahlungsüberprüfungAUS ist.

  5. Bearbeiten Ihr Zielkonto in Ihrem Code/App und platzieren Sie das neue Geschäftskonto

  6. Wiederholung Transaktion mit dem neuen Käuferkonto


Diese Lösung hat nicht nur mein Problem gelöst. Dank dessen wurde das sandox.Paypal Design in neues Design geändert, das echte Konten verwendet.

Dies ist wichtig, da einige der von IPN in diesem Fall empfangenen Daten möglicherweise mit einem anderen Namen antworten.

1
Alex Florentin

Ich löste meine, indem ich alle Sandbox-Accounts löschte und neu erstellte.

Wichtige Notizen:

Stellen Sie sicher, dass die Konten dieselbe Währung wie Ihr Code verwenden.

0
mboy

Es gibt noch eine weitere Sache, die Sie überprüfen müssen:

Stellen Sie fest, dass die Sprachkodierung Ihres Paypal-Kontos auf UTF-8 eingestellt ist. Unter bestimmten Umständen ist dies standardmäßig auf "windows-1256" gesetzt . Um es in UTF-8 zu ändern, müssen Sie:

  • gehe in dein Profil und dann "meine Verkaufswerkzeuge" 
  • dort unten auf "Paypal-Schaltflächen-Sprachcodierung" klicken
  • Auf der nächsten Seite müssen Sie auf "Weitere Optionen" klicken, um die Kodierung endgültig festzulegen

Für jedes einzelne Paypal-Konto, das ich in Deutschland eingerichtet habe, wurde standardmäßig die Sprachkodierung "Windows ..." eingestellt. Dann funktioniert IPN nicht mit einer UTF-8-codierten Website, auch nicht in Woocommerce oder EDD oder Event-Espresso.

0
bschmidttraub

Die Lösung ist, was @Jadeye erklärt:

Gehen Sie zur Paypal Developer Website

  1. Melden Sie sich bei Ihrem Entwicklerkonto an (Sandbox).
  2. Klicken Sie auf Anwendungen
  3. Klicken Sie auf Sandbox-Konten
  4. Klicken Sie auf die E-Mail-Adresse, an der Sie die Option "Zahlungsprüfung" deaktivieren möchten, und klicken Sie nach dem Erweitern auf Profil
  5. Klicken Sie auf Einstellungen
  6. Wählen Sie für die Zahlungsüberprüfung die Option Aus.
  7. Klicken Sie auf Schließen
0
mdromed