我花了一天半的时间研究这个问题,但没有结果。我发现了许多类似的问题,但没有一个能完全解决我的问题。我正在尝试将Payflow Pro与透明重定向集成,但无法成功完成交易。我正在使用测试Payflow Gateway帐户的测试环境。
我可以通过将以下内容从我的测试服务器发布到https://pilot-payflowpro.paypal.com:
PARTNER=[hidden]&供应商=[隐藏]&USER=[隐藏]&PWD=[隐藏]&TRXTYPE=S&TENDER=C&CREATECURETOKEN=Y&SECURETOKENID=20180916085333999&URLMETHOD=发布&SILENTTRAN=真&AMT=2&账单名称=约翰;BILLTOLASTNAME=Doe&账单=123测试博士&BILLTOCITY=测试城市&账单=TN&BILLTOZIP=55511&BILLTOEMAIL=johndoe@test.com&USER1=3&USER2=&USER3=0&USER4=2
我收到以下响应:
RESULT=0&SECURETOKEN=[hidden]&SECURETOKENID=20180916085333999&RESPMMSG=批准的
注意:我已经使用PayPal Manager配置了返回URL,这就是为什么安全令牌请求中不包括返回URL的原因。然而,我也尝试过指定RETURNURL,并获得了相同的最终结果。
我使用安全令牌请求的结果创建一个cc收款表。我使用acct#5105105105105100
输入测试信用卡的详细信息,然后从浏览器直接将以下内容发布到https://pilot-payflowlink.paypal.com:
fund_id=3&ACCT=5105105105105100&CVV2=555&EXPMONTH=01&EXPYEAR=20&EXPDATE=0120&SECURETOKENID=20180916085333581&SECURETOKEN=[hidden]&feeTokenID=20180916085333999&feeToken=[隐藏]
响应被正确重定向到我在Payflow Manager服务设置中指定的托管页面错误URL。我的问题是,我不明白为什么它重定向到错误url,并显示以下消息:
RESPSG=无法连接到主机输入服务器Uri=https://pilot-payflowpro.paypal.com:443
注意:上面的值只是发送到错误页面的响应的一部分。其余的返回值包括来自我的原始安全令牌请求的信息,我认为只有在与错误消息中的链接建立了成功连接的情况下才能返回该信息??
明确说明问题:
- 当我第一次获得安全令牌时,我已经成功地从测试服务器连接到错误消息中指定的链接
- 导致错误消息的帖子是从浏览器(在本例中,位于与我的测试服务器相同的物理框上)发送到https://pilot-payflowlink.paypal.com,不是错误消息中指定的URL
- 最后,错误似乎发生在Payflow过程中——据我所知,在这个过程中,我的服务器或浏览器此时不应该调用错误消息中的链接。我特别提到这一点是为了解决我发现的许多搜索结果,这些搜索结果将这个特定的错误消息与PayPal对TLS1.2的要求联系起来,它已经在我的服务器上正确配置(为了完整起见,我应该提到的是,我的测试服务器上仍然启用了TLS1.0,但由于无关的原因无法禁用它。尽管如此,我还是能够成功连接以获得安全令牌,并且我的服务器通过了PayPal自己的TLS测试https://tlstest.paypal.com/)
我应该提到,我也尝试在我们的生产服务器上完成同样的交易,仍然使用PayPal上的测试凭据和测试端点,结果完全相同。测试服务器也是为启用了TLS1.0的TLS1.2设置的,并且还通过了PayPal的测试。
这个问题可能会把我推向疯狂,所以任何帮助都将不胜感激!!
禁用TLS1.0有助于其他人解决此问题。如果您一直有问题,请联系PayPal的支持
对于任何可能发现这个问题并同样感到沮丧的人,我想分享一下,我能够通过创建一个新的Payflow Gateway测试帐户来解决这个问题。
我花了很多时间在试错解决方案上,但没有成功,PayPal Merchant Technical Services能够复制这个问题,但也无法找到解决方案。最后,在尽可能简化我的测试应用程序(手动填写并提交两个基本的HTML表单)后,我得出结论,我的测试帐户可能有问题。使用新凭据创建一个新帐户,然后将它们插入到我的原始代码中,一切都很顺利。
截至今天上午,PayPal MTS正在继续研究这个问题,因为其他人也报告了类似的问题。
对于其他有类似问题的人,值得注意的是,我现在可以在TLS 1.0保持启用的情况下完成事务。