2009-07-07 24 views
0

Je passe un temps épouvantable à implémenter une passerelle Payments Pro vers Paypal et je me demande si quelqu'un a eu des problèmes similaires qui peuvent me fournir un aperçu?Paypal Paiements Pro - échoue aléatoirement

Nous utilisons PHP et avons essayé d'interfacer via le code paypalfunctions.php généré sur leur propre site web integrationwizard.x.com. L'original avait un bug (accusé de réception) qui avait un pilote et le site en ligne connecté inversé, donc ma confiance en ce point était faible pour commencer. Cependant, j'ai mis en œuvre le code et la passerelle prend maintenant des paiements en direct - bien une partie du temps. Dans un grand nombre d'occasions, le paiement est rejeté avec un rapport de code de pays invalide. Lors de l'enregistrement de la chaîne de requête immédiatement avant l'appel dans le code propre de Paypals, et le résultat retourné immédiatement après le retour, je peux démontrer que la chaîne transmise à Paypal est correcte. Paypal eux-mêmes le reconnaissent, mais voient des valeurs tronquées, je cite

"Ok c'est en effet un peu bizarre.Votre chaîne NVP semble être correcte, mais nous recevons une troncature intermittente du code du pays, par exemple avec GB nous n'obtenons parfois rien, un G, un B ou un GB avec les paiements réussis.Cela ne laisse pas beaucoup de place pour où le problème réside - pouvez-vous rechercher les demandes du serveur sur les logs du serveur? "

Maintenant c'est aussi étrange parce que la chaîne passée contient le code de pays incorporé dans le centre de celui-ci - par exemple (avec des détails personnels changés)

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 

Ce qui suggère fortement à moi que le problème est comment cette chaîne est analysée ou traitée. Nous avons des exemples de chaînes NVP qui sont acceptées et rejetées et la disposition est identique, et même un cas où la même carte est rejetée à différentes adresses IP.

Quelqu'un d'autre avait une expérience similaire?

MISE À JOUR: Lors de la vérification du serveur (il est l'hébergement mutualisé) Je trouve un grand journal d'erreurs consistant presque entirerly de lignes comme

[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 

Il n'y a pas de lien évident entre une bibliothèque sqlite et boucle à ma connaissance, mais implique PHP n'a pas été configuré corectly et pourrait-il causer le genre d'erreurs aléatoires où voir?

Répondre

3

J'ai téléchargé une copie de paypalfunctions.php mais elle n'envoie pas de chaînes. Au lieu de cela, il utilise curl avec le paramètre CURLOPT_POSTFIELDS pour envoyer toutes les variables en tant que HTTP POST (champs séparés dans le corps POST) au lieu d'une longue chaîne GET.

Je suggère d'utiliser quelque chose comme tcpdump et Wikeshark pour capturer et examiner ce qui est effectivement envoyé à PayPal. Si vous obtenez à nouveau le même problème, vous pouvez leur montrer le tcpdump pour leur montrer que vous avez réellement envoyé la chaîne correcte. PS: Notez que si vous l'avez envoyé en fonction de vos journaux TCP, cela ne signifie pas que PayPal l'a effectivement reçu. Je me souviens très bien de la chasse à un problème étrange avec HTTP POST chez mon ancien employeur. Mon vidage TCP a dit que je l'ai envoyé. Leur décharge TCP a dit qu'ils ne l'ont pas compris. Après des semaines, il s'est avéré qu'il y avait un proxy transparent mal configuré à mi-chemin entre nous et eux. Il a accidentellement été activé l'inspection approfondie des paquets pour supprimer certaines parties des formulaires HTTP POST. "Oops" a déclaré le fournisseur de réseau.

+0

Tout cela est vraiment utile, merci – Cruachan