使用 IPN 模拟器测试 PayPal IPN SHA-256 合规性

Posted

技术标签:

【中文标题】使用 IPN 模拟器测试 PayPal IPN SHA-256 合规性【英文标题】:Testing PayPal IPN SHA-256 Compliance with IPN Simulator 【发布时间】:2016-10-18 02:35:34 【问题描述】:

我使用 PayPal IPN 进行付款通知。 PayPal 表示所有 Https 连接必须在 2016 年 9 月 30 日之前符合 SHA-256。(即使用 TLS 2.1 的 Https) 事实上 PayPal 现场测试从 6/17 开始。一封 PayPal 电子邮件指出“我们强烈建议您的系统在 6 月 17 日之前与 SHA-256 兼容,以确保您的业务不会中断。”

所以我为我的 IPN 网络应用程序制作了一个模组,并使用“PayPal IPN 模拟器”对其进行了测试。 Resulting message = "IPN 已发送且握手已验证。"

有人知道“PayPal IPN 模拟器”是否肯定 IPN 网络应用程序现在符合 SHA-256 标准吗?

更新: 这是来自我的 IPN 应用程序的 .Net HTTPS 回发代码。

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; 
    HttpWebRequest req =   (HttpWebRequest)WebRequest.Create("https://www.paypal.com/cgi-bin/webscr");

【问题讨论】:

【参考方案1】:

IPN 模拟器不会确认您的脚本是否进行了回发,“IPN 已发送且握手已验证”消息仅表示单向连接成功(来自PayPal 到您的 URL)。

为确保您的网络服务器在您的 IPN 向 PayPal 进行回发时与 SHA-2 兼容,您只需使用以下命令(例如 LAMP 环境)测试从您的主机到 PayPal 端点的连接:

openssl s_client -connect api-3t.sandbox.paypal.com:443 -showcerts

或检查服务器信任库,看看是否包含 G5 根证书,

ls -la /etc/ssl/certs/ | grep G5

【讨论】:

pp_pduan 谢谢。我的网站位于共享的 Windows 托管服务器上。我已要求他们的支持团队确认“VeriSign G5 根证书 (SHA-256)”在证书存储中。我希望当应用程序回发连接到 PayPal 时,它将使用 G5 根证书。我不是安全专家,所以我不知道应用程序执行回发时如何完成证书选择。 只要根证书在您的信任密钥库中,就可以了。证书选择由服务器协商和一组 SSL 握手过程自动完成

以上是关于使用 IPN 模拟器测试 PayPal IPN SHA-256 合规性的主要内容,如果未能解决你的问题,请参考以下文章

使用 paypal ipn 模拟器测试 subscr_payment

Paypal 沙盒 IPN 模拟器 - 502 Bad Gateway

PayPal 没有向听众发送 IPN

PayPal IPN 模拟器错误请求

PayPal IPN 模拟器:尝试连接到 URL 时出现问题。请检查网址并重试

测试 IPN 不应该从我的 Paypal 沙盒帐户中取钱吗?