paypalfunctions.asp and expresscheckout.asp files
我希望能找到帮助,如果没有帮助,那么一位精通Classic ASP和PayPal的开发人员可以帮我解决这个问题。
我们有一台运行Classic ASP的Windows 2008 R2 Server。我们已经进行了一年多的沙盒测试开发,最近所有PayPal Express Checkout“帖子”似乎已停止,现在当您点击按钮带您快速检查屏幕变为空白时。白色。绝对没有回报。
所以这意味着PayPal似乎已经停止或改变了它与WinHTTP.WinHTTPRequest.5.1
的合作方式,或者我们的服务器已经以某种方式自行更新了?
PayPal正在使用Classic ASP中的WinHTTPRequest.5.1通过Express Checkout发送NVP。
我们正在使用带有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=My Order&L%5FPAYMENTREQUEST%5F0%5FDESC0=My Item&L%5FPAYMENTREQUEST%5F0%5FAMT0=4&L%5FPAYMENTREQUEST%5F0%5FNAME1=Handling Fee&L%5FPAYMENTREQUEST%5F0%5FAMT1=0%2E42&PAYMENTREQUEST%5F0%5FPAYMENTACTION=Sale &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
这对我来说没问题?
是否有人知道我如何使用WinHTTP.WinHTTPRequest.5.1
标准输出向导集成代码解决paypalfunctions.asp
?
如果没有,这不再是一个选项可以推荐一个专业和称职的经典ASP / PayPal开发人员,以便他/她可以使用我们现有的代码工作/修改?
答案 0 :(得分:3)
总结一下评论。
错误指向安全通道的问题,通常与用于调用端点的错误协议有关。
这并不意味着WinHTTP.WinHTTPRequest.5.1
不起作用,只是意味着使用了错误的协议来发出HTTP请求。
由于从SandBox开始,SSL 3.0 POODLE中的PayPal informed their users that support for SSL 3.0 would be disabled互联网安全可用性。
引自PayPal - Required security update
PayPal如何回应?
PayPal将在时间范围内完全禁用SSL 3.0支持,以通过PayPal Notify宣布;但是,基于安全监控,我们可能需要快速行动以保护我们的客户,因此时间是进行变更的关键。不幸的是,我们意识到关闭SSL 3.0可能会导致我们的一些客户出现兼容性问题,导致无法在某些商家网站上使用PayPal付款或我们仍在识别的其他处理问题。为了使您的评估和潜在的补救措施成为可能,我们将此商家响应指南放在一起,以确保您的集成免受此漏洞的侵害。
解决方法是使用TLS,它应该允许您连接到端点而没有问题。
您可以使用WINHTTP_OPTION_SECURITY_FLAGS和WinHttp.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
版本。