我在Paypal上使用Expresscheckout,用于单次用户付款集成。 工作流程首先创建令牌,用户重定向到paypal页面并成功返回我的返回网页。 1.SetExpressCheckout 2. DoExpressCheckoutPayment
我的问题: 1.现在我需要为这个支付系统设置ipn。 2.我的通知网址没有在模拟器上运行。它给出了错误(未发送IPN,并且未验证握手。请查看您的信息。) https://developer.paypal.com/developer/ipnSimulator/
我需要一些帮助,因为这不是我的意思。 请帮我解决这个问题。
提前谢谢。
答案 0 :(得分:21)
当您的服务器/密钥库配置不符合升级的PayPal SSL加密算法时,最有可能发生握手错误。
IPN模拟器将连接到PayPal Sandbox环境,该环境已经使用Versign G5根证书/ SHA-2加密算法进行了升级(顺便说一下,这是一个应该在2016年无处不在的行业标准)。 一旦您的IPN主机无法满足合规性,SSL连接就会因握手问题而出错。
只需通过针对PayPal沙箱端点运行连接脚本来检查您的服务器,如下所示:
openssl s_client -connect api-3t.sandbox.paypal.com:443 -showcerts -CApath /etc/ssl/certs/
如果您没有获得Verify return code: 0 (ok)
,则可能需要按照PayPal在此处发布的一般说明检查证书/ SHA-2兼容性:
答案 1 :(得分:1)
PayPal的回复:
“感谢您与PayPal商家技术服务部联系,对于回复您的电子邮件的延迟,我们深表歉意。
我们已经知道我们的IPN模拟器存在这个问题,我们的开发团队正在努力解决这个问题。在修复此问题之前,我建议您通过在Sandbox中付款来运行您的IPN测试,因为我们会在每次付款时发送IPN请求。
如果您的付款测试存在类似问题,请告诉我们,我们可以查看。
对由此造成的不便表示歉意。“
答案 2 :(得分:1)
我遇到了同样的问题。测试 IPN 消息的一种解决方法是在您的 Sandbox 业务帐户上实际设置 IPN 通知 URL 并从那里进行测试。
确保您的 IPN 侦听器不在防火墙之后,并且可以从外部直接访问。