如何使用 MSXML2.ServerXMLHttp

问题描述

我正在尝试通过 T-sql 连接到 CorvusPay API 并偶然发现“需要证书才能完成客户端身份验证”错误

这是程序的一部分:

    exec @Hr = sp_OACreate 'MSXML2.ServerXMLHttp.6.0',@Object OUT;
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OACreate MSXML2.ServerXMLHttp.6.0 Failed' goto err end

exec @Hr = sp_OAMethod @Object,'Setoption',null,'2','13056'
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAMethod Setoption 2 Failed' goto err end

exec @Hr = sp_OAMethod @Object,'3','LOCAL_MACHINE\My\corvuspay'
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAMethod Setoption 3 Failed' goto err end

exec @Hr = sp_OAMethod @Object,'open',NULL,'POST',@Url,false            
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAMethod Open Failed' goto err end

exec @Hr = sp_OAMethod @Object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded'
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAMethod setRequestHeader Failed' goto err end

exec @Hr = sp_OAMethod @Object,'send',@Parameters
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAMethod send parameters Failed' goto err end

exec @Hr = sp_OAGetProperty @Object,'status',@Status OUT
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAGetProperty read status Failed' goto err end

exec @Hr = sp_OAMethod @Object,'responseText',@Response OUTPUT
if @Hr <> 0 begin exec sp_OAGetErrorInfo @Object; set @MessageHr = 'sp_OAMethod read response Failed' goto err end

我已经将 'Setoption',2 设置为 13056,这基本上意味着它应该忽略所有证书错误和 'Setoption',3 以及我认为的证书位置...

无论如何,这两个都没有帮助我,在这些选项之前错误是相同的。我现在挠头几天了,仍然没有找到有用的东西。

我必须以某种方式将我的客户证书传递给 CorvusPay API,有人知道如何进行吗? 任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)