【问题标题】:PayPal Sandbox Blocks WinHTTP.WinHTTPRequest.5.1贝宝沙盒阻止 WinHTTP.WinHTTPRequest.5.1
【发布时间】:2016-06-13 17:08:44
【问题描述】:

paypalfunctions.asp and expresscheckout.asp files

我希望能找到帮助,如果没有帮助,那么请一位精通 Classic ASP 和 PayPal 的开发人员来帮助我解决这个问题。

我们有一个运行经典 ASP 的 Windows 2008 R2 服务器。我们已经进行了一年多的沙盒测试开发,最近所有 PayPal Express Checkout“帖子”似乎都停止了,现在当您单击按钮带您进行 expresscheckout 时,屏幕变为空白。白色的。绝对不返回任何内容。

所以这意味着要么 PayPal 似乎已经停止或改变了它与 WinHTTP.WinHTTPRequest.5.1 的合作方式,要么我们的服务器已经以某种方式自我更新了?

PayPal 使用经典 ASP 中的 WinHTTPRequest.5.1 来发送 NVP 及其 Express Checkout。

我们正在使用带有 API 签名的 IPN 通知的经典 ASP。

在 paypalfunctions.asp 中删除 On Error Resume Next 时,我收到以下错误;

500 错误 - 描述:安全通道支持中出现错误。
错误代码:80072f7d。线路:176

添加

objHTTP.Option(9) = 128 

到 WinHTTP 请求和

response.write(nvpStrComplete) 

返回

METHOD=SetExpressCheckout&VERSION=93&USER=sdk%2Dthree%5Fapi1%2Esdk%2Ecom&PWD=QFZ CWN5HZM8VBG7Q&SIGNATURE=A%2DIzJhZZjhg29XQ2qnhapuwxIDzyAZQ92FRP5dqBzVesOkzbdUONzm OU&L%5FPAYMENTREQUEST%5F0%5FNAME0=我的订单&L%5FPAYMENTREQUEST%5F0%5FDESC0=我的 项目&L%5FPAYMENTREQUEST%5F0%5FAMT0=4&L%5FPAYMENTREQUEST%5F0%5FNAME1=处理 费用&L%5FPAYMENTREQUEST%5F0%5FAMT1=0%2E42&PAYMENTREQUEST%5F0%5FPAYMENTACTION=销售 &PAYMENTREQUEST%5F0%5FCURRENCYCODE=USD&PAYMENTREQUEST%5F0%5FAMT=4%2E42&RETURNURL =http%3A%2F%2Fwww%mysite%2Ecom%2F%23paymentcomplete&CANCELURL=http%3A%2F%2Fwww%2 Emysite%2Ecom%2F%23paymentcancel&ALLOWNOTE=0&BUTTONSOURCE=PP%2DECWizard

这对我来说还可以吗?

有谁知道我如何使用paypalfunctions.asp 标准输出向导集成代码解决WinHTTP.WinHTTPRequest.5.1

或者,如果没有,这不再是一种选择,是否可以推荐专业且称职的 Classic ASP / PayPal 开发人员,以便他/她可以使用我们现有的代码进行工作/修改?

【问题讨论】:

  • 真正的问题是什么?您确定不再支持 WinHTTP.WinHTTPRequest.5.1 吗?你有错误吗?您能否显示您正在使用的 HTTP 请求代码的 sn-p (没有用户名和密码)?到目前为止,您没有告诉我们太多,很难衡量您希望我们做什么。
  • 嗨 Lankymart。是的,我很确定它是 WinHTTP.WinHTTPRequest.5.1。它似乎在生产环境中工作(至少现在),但在 Sandbox 中不再支持它。
  • 我非常怀疑 WinHTTP.WinHTTPRequest.5.1 不支持毕竟它只是发出一个 HTTP 请求,很可能 HTTP 请求已经改变你在看新的文档吗? -PayPal Name-Value Pair API Basics虽然没有看到一些代码,但很难猜到。
  • 从 URL 调用时,ASP 页面不会公开其源代码,因为代码在到达客户端之前在服务器上进行了处理,这些链接没有帮助。你得到一个特定的错误吗?您能否详细说明“似乎已停止”?你是怎么知道的,是什么导致你得出这个结论的?
  • 对不起 Lankymart。我现在已将源文件作为 WinZip 包含在内,因此可以下载它们。 IE。如果名称配对的方式有问题,可以看到吗?

标签: paypal vbscript asp-classic paypal-ipn winhttp


【解决方案1】:

只是总结一下cmets。

该错误表明安全通道存在问题,该问题通常与用于调用端点的错误协议有关。

这并不意味着WinHTTP.WinHTTPRequest.5.1 不起作用,它只是意味着使用了错误的协议来发出 HTTP 请求。

由于 SSL 3.0 中的 POODLE 互联网安全漏洞 PayPal informed their users that support for SSL 3.0 would be disabled 从沙盒开始。

引用PayPal - Required security update

PayPal 是如何响应的?

PayPal 将在PayPal Notify 宣布的时间范围内完全禁用 SSL 3.0 支持;但是,基于安全监控,我们可能需要迅速采取行动以保护我们的客户,因此时间对于做出改变至关重要。不幸的是,我们意识到关闭 SSL 3.0 可能会导致我们的一些客户出现兼容性问题,从而导致无法在某些商家网站上使用 PayPal 付款或我们仍在确定的其他处理问题。为了使您能够进行评估和可能的补救措施,我们整理了这份商家响应指南,以确保您的集成不受此漏洞的影响。

解决方法是使用 TLS,它应该允许您毫无问题地连接到端点。

您可以将WINHTTP_OPTION_SECURITY_FLAGSWinHttp.WinHTTPRequest.5.1 对象的Option property 一起使用。

'The WINHTTP_OPTION_SECURITY_FLAGS option
Const WinHttpRequestOption_SecureProtocols = 9

'Valid WINHTTP_OPTION_SECURITY_FLAGS option flags
Const SecureProtocol_SSL2   = 8       'SSL 2.0
Const SecureProtocol_SSL3   = 32      'SSL 3.0
Const SecureProtocol_TLS1   = 128     'TLS 1.0
Const SecureProtocol_TLS1_1 = 512     'TLS 1.1
const SecureProtocol_TLS1_2 = 2048    'TLS 1.2

然后您可以修改您的 WinHttp 对象(假设该对象被称为 winhttp 像这样来切换安全协议;

winhttp.Option(WinHttpRequestOption_SecureProtocols) = SecureProtocol_TLS1_2

注意:某些版本的 Windows Server 不支持 SecureProtocol_TLS1_2 标志或可能需要修补程序。这真的取决于系统上安装的winhttp.dll 的版本。


有用的链接

【讨论】:

  • 好吧……据我所知……Windows 2008 R2 中的 winhttp.dll 不包含 TLS 1.1 或 TLS1.2 的协议。似乎 PayPal 强制将 TLS 1.2 用于沙盒,这意味着即使在注册表中设置了 TLS 协议,Windows 2008 R2 也无法识别它们。也参考这个,大约 2 周前的帖子也显示没有解决方案:forums.iis.net/t/…
  • 换句话说......这是不是有点极端,因为无法将 Windows 2008 R2 中的 winhttp.dll 更新为包含协议的文件?
  • @Steve 我实际上认为 Windows Server 2008 确实支持它们this guy managed to find a hot-fix for Windows Server 2003 也许也有一个用于 208 的?
  • @Steve 不太理想,但可能值得一看 - How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll。它看起来可行,只是不简单,另一种选择是升级到 Windows Server 2012。从长远来看,您可能会发现这不那么痛苦。
  • 你最好告诉你的老板不要那么固执,否则你会在 6 月 PayPal 开启实时服务器的开关时陷入困境。
猜你喜欢
  • 2016-01-09
  • 2012-10-12
  • 2017-07-31
  • 2018-01-21
  • 2023-03-25
  • 2018-07-29
  • 2013-08-24
  • 2011-12-16
  • 1970-01-01
相关资源
最近更新 更多