2009-07-07 84 views
0

我有一个可怕的时间实现贝宝付款专业网关,我想知道如果有人有类似的问题,可能会提供我一些见解?Paypal Payments Pro - 随机失败

我们使用PHP并试图通过自己的integrationwizard.x.com网站生成的paypalfunctions.php代码进行接口。原来有一个(承认报告)的错误,那里有飞行员和现场网站连接颠倒,所以我的信心是低的开始。但是,我实现了代码,网关现在正在进行实时支付 - 很好的一部分。在大量时间段内,付款被拒绝,并显示“无效的国家代码”报告。

在PayPals自己的代码内部调用之前立即记录请求字符串,并在返回时立即返回结果,我可以证明传递给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 2009-07-07 21:52:45

相关问题