0

我正在尝试通过 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, 'SetOption', null, '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', NULL, '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', NULL, @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,有人知道如何继续吗?任何帮助将非常感激。

4

0 回答 0