2009-07-07 3 views
0

У меня есть ужасающее время, реализующее шлюз Payments Pro в Paypal, и мне интересно, есть ли у кого-то похожие проблемы, которые могут дать мне некоторое представление?Paypal Payments Pro - случайным образом не удается

Мы используем PHP и пытаемся взаимодействовать через код paypalfunctions.php, созданный на собственном веб-сайте integrationwizard.x.com. У оригинала была ошибка (признаться в отчетности), в которой было место, где пилот и живой сайт соединяются, и поэтому я уверен в этом, чтобы начать с этого. Однако я внедрил код, и шлюз теперь принимает живые платежи - часть времени. При большом количестве случаев платеж отклоняется с сообщением «неверный код страны».

При регистрации строки запроса непосредственно перед вызовом внутри собственного кода Paypals и возвращенного результата немедленно при возврате я могу показать, что строка, переданная в Paypal, действительно правильная. Paypal сами признают это, но видят усеченные значения, цитирую

«Хорошо, это немного странно. Ваша строка NVP выглядит правильно, но мы получаем прерывистую усеченность кода страны, например, с GB мы иногда ничего не получаем, G, B или GB с успешными платежами. Это не оставляет много места, где проблема - можете ли вы искать журналы сервера для запросов, которые мы делаем? »

Теперь это также нечетно, потому что переданная строка содержит код страны, встроенный в ее центр - например (с измененными личными данными)

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 

Что сильно подсказывает мне, что проблема в том, как эта строка анализируется или обрабатывается. У нас есть пример строк NVP, которые принимаются и отклоняются, а макет идентичен, и даже один случай, когда одна и та же карта отклоняется на разных IP-адресах.

У кого-нибудь еще был опыт?

UPDATE: При проверке сервера (это виртуальный хостинг) Я считаю большой журнал ошибок, состоящий почти entirerly линий, как

[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 

Там нет очевидной связи между SQLite библиотекой и локон к моему знанию, но это подразумевает, что PHP не был настроен по-разному и может ли это вызвать случайные ошибки, когда они видят?

ответ

3

Скачана копия paypalfunctions.php, но она не отправляет строки. Вместо этого он использует curl с параметром CURLOPT_POSTFIELDS для отправки всех переменных в виде HTTP POST (отдельные поля в теле POST) вместо длинной строки GET.

Я предлагаю использовать что-то вроде tcpdump и Wikeshark, чтобы взять и рассмотреть, что такое Фактически отправлено в PayPal. Если вы снова получите ту же проблему, вы можете показать им tcpdump, чтобы показать им, что вы действительно отправили правильную строку.

PS: Обратите внимание, что если вы отправили его в соответствии с вашими протоколами TCP, это все равно не означает, что PayPal действительно это получает. Я живо помню, как охотился на странную проблему с HTTP POST у моего бывшего работодателя. Мой дамп TCP сказал, что я отправил его. Их дамп TCP сказал, что они этого не получили. После нескольких недель выяснилось, что между нами и ними произошел неправильный прозрачный прокси-сервер. У него случайно была включена глубокая инспекция пакетов, чтобы удалить определенные части форм HTTP POST. «Упс» сказал сетевой провайдер.

+0

Это все очень полезно, спасибо – Cruachan