2009-07-07 13 views
0

Ich habe eine schreckliche Zeit mit der Umsetzung eines Payments Pro Gateway zu Paypal und ich frage mich, ob jemand ähnliche Probleme gehabt hat, die mir einige Einblicke liefern können?Paypal Payments Pro - nach dem Zufallsprinzip

Wir verwenden PHP und haben versucht, über den Code paypalfunctions.php zu interagieren, der auf der Website integrationwizard.x.com generiert wurde. Das Original hatte einen Fehler (quittieren auf Bericht) darin, dass dort Pilot und Live-Website umgekehrt hatte, so dass mein Vertrauen in diese zunächst niedrig war. Allerdings habe ich den Code implementiert und das Gateway nimmt jetzt Live-Zahlungen - und das ist ein Teil der Zeit. Bei vielen Gelegenheiten wird die Zahlung mit dem Bericht "ungültiger Ländercode" abgelehnt.

Bei der Protokollierung der Anfrage-String sofort vor dem Aufruf innerhalb Paypals eigenen Code und das zurückgegebene Ergebnis sofort bei Rückgabe kann ich zeigen, dass die an Paypal übergebene Zeichenfolge tatsächlich korrekt ist. Paypal selbst bestätigt dies, aber sehe abgeschnittene Werte, ich zitiere

"Ok, das ist in der Tat ein bisschen seltsam. Ihre NVP-Zeichenfolge scheint korrekt zu sein, aber wir erhalten intermittierende Kürzung der Ländercode, so zum Beispiel mit GB bekommen wir manchmal nichts, ein G, ein B oder ein GB mit den erfolgreichen Zahlungen. Das lässt nicht viel Platz für das Problem - können Sie die Serverprotokolle nach den Anfragen durchsuchen, die an uns gestellt werden?

Nun ist dies auch seltsam, weil die Zeichenfolge den Ländercode eingebettet in der Mitte von ihm geleitet enthält - zum Beispiel (mit persönlichen Daten geändert)

USER=ZUTRB8C4OQ&VENDOR=OSO47W6EJP&PARTNER=PayPalUK&PWD=JITCMJA8VAN6YBMP&TENDER=C&TRXTYPE=S&ACCT=XXXXXXXXXXXXXXXX&CVV2=646&EXPDATE=0512&ACCTTYPE=Visa&AMT=55.60&CURRENCY=GBP&FIRSTNAME=John&LASTNAME=Smith&STREET=9/2 Oaklands Hill&CITY=Edinburgh&STATE=&ZIP=EH11AAA&COUNTRY=GB&CLIENTIP=82.19.219.153&ORDERDESC=The Order&VERBOSITY=MEDIUM&BUTTONSOURCE=PF-CCWizard 

Das deutet stark darauf hin, dass das Problem ist, wie diese Zeichenfolge analysiert oder verarbeitet wird. Wir haben Beispiel-NVP-Zeichenfolgen, die akzeptiert und zurückgewiesen werden, und das Layout ist identisch, und sogar ein Fall, in dem dieselbe Karte bei verschiedenen IPs zurückgewiesen wird.

Jeder andere hatte ähnliche Erfahrung?

UPDATE: fast entirerly von Linien wie

[08-Jul-2009 10:14:27] PHP Warning: PHP Startup: Unable to load dynamic library 
'/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sqlite.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20060613/sqlite.so: undefined symbol: php_pdo_unregister_driver in Unknown on line 0 

Es gibt keine offensichtliche Verbindung zwischen einer SQLite-Bibliothek und curl meines Wissen auf den Server überprüft (man es teilte Hosting) finde ich einen großen Protokollfehler aus, aber das impliziert PHP wurde nicht korrekt konfiguriert und könnte dies die Art von zufälligen Fehlern verursachen, wo sehen?

Antwort

3

Ich habe eine Kopie von paypalfunctions.php heruntergeladen, aber es sendet keine Zeichenfolgen. Stattdessen verwendet es curl mit dem Parameter CURLOPT_POSTFIELDS, um alle Variablen als HTTP POST (separate Felder im POST-Text) anstelle einer langen GET-Zeichenfolge zu senden.

Ich empfehle mit etwas wie tcpdump und Wikeshark zu erfassen und zu überprüfen, was tatsächlich an PayPal gesendet wird. Wenn Sie das gleiche Problem erneut haben, können Sie ihnen den tcpdump zeigen, um ihnen zu zeigen, dass Sie tatsächlich die korrekte Zeichenkette gesendet haben.

PS: Beachten Sie, dass, wenn Sie es gemäß Ihren TCP-Protokollen gesendet haben, dies immer noch nicht bedeutet, dass PayPal das tatsächlich erhält. Ich erinnere mich lebhaft, dass ich bei meinem früheren Arbeitgeber ein seltsames Problem mit HTTP POST gejagt habe. Mein TCP-Dump sagte, dass ich es gesendet habe. Ihr TCP-Dump sagte, sie hätten es nicht verstanden. Nach einigen Wochen stellte sich heraus, dass ein falsch konfigurierter transparenter Proxy auf halbem Weg zwischen uns und ihnen lag. Es wurde versehentlich Deep Packet Inspection aktiviert, um bestimmte Teile von HTTP-POST-Formularen zu entfernen. "Ups" sagte der Netzbetreiber.

+0

Das ist alles wirklich hilfreich, danke – Cruachan

Verwandte Themen