繁体   English   中英

贝宝付款专业版-随机失败

[英]Paypal Payments Pro - randomly fails

我在实施通往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处也被拒绝。

其他人也有类似的经历吗?

更新:在检查服务器(它是共享主机)时,我发现了一个大的错误日志,其中几乎包括全部行

[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库和curl之间没有明显的联系,但这意味着PHP尚未进行核心配置,这是否可能导致出现随机错误?

我下载了paypalfunctions.php的副本,但没有发送字符串。 相反,它使用带有CURLOPT_POSTFIELDS参数的curl来将所有变量作为HTTP POST(POST正文中的单独字段)而不是长GET字符串发送。

我建议使用tcpdump和Wikeshark之类的东西来捕获和查看实际发送到PayPal的内容。 如果再次遇到相同的问题,则可以向他们显示tcpdump,以向他们显示您实际发送了正确的字符串。

PS:请注意,如果您根据TCP日志发送它,那仍然并不意味着PayPal实际上已经收到了。 我生动地记得在我以前的雇主那里找到了一个关于HTTP POST的奇怪问题。 我的TCP转储说我发送了它。 他们的TCP转储说他们没有得到。 几周后,事实证明我们和他们之间存在一个配置错误的透明代理。 它不小心打开了深度数据包检查功能,以删除HTTP POST表单的某些部分。 网络运营商说:“糟糕”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM