我在实施 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 没有正确配置,这会导致出现随机错误吗?