vbscript xmlhttp需要证书才能完成客户端身份验证

时间:2020-09-22 11:05:59

标签: paypal vbscript xmlhttprequest certificate authorization

我正在尝试使用我认为与VBS中的cURL等效的东西来获取Paypal访问令牌。 这是我正在尝试https://developer.paypal.com/docs/api/get-an-access-token-curl/的cURL帖子 这是我正在使用的VBScript代码

<%
    Dim Base64, ClientID, Secret 
    ClientID    = "ClientID" 
    Secret      = "Secret" 
    Base64      = "Base64" 
    Dim XMLHTTP : Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0") 
    XMLHTTP.setOption 2, 13056 
    XMLHTTP.Open "POST", "https://api.sandbox.paypal.com/v1/oauth2/token", False, ClientID, Secret 
    XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    XMLHTTP.setRequestHeader "Accept", "application/json" 
    XMLHTTP.setRequestHeader "Accept-Language", "en_US" 
    XMLHTTP.setRequestHeader "Authorization", "Basic " & Base64 
    XMLHTTP.Send("grant_type=client_credentials") 

服务器返回的错误是:

msxml6.dll error '80072f0c'

A certificate is required to complete client authentication

Paypal.asp, line 13 

我知道还有一个XMLHTTP.setOption 3, "LOCAL_MACHINE\My\api.sandbox.paypal.com"也可以添加到代码中,但是从文档中可以看到,我不需要在服务器上安装任何证书。

[编辑]

这是代码Here,解释了此修补程序的工作方式。您可以使用自己的证书,而不必是自签名证书,重要的部分是使用第2步。为证书分配权限,以授予Web服务器使用该证书的权限。< / p>

<%
    Dim Base64, ClientID, Secret 
    ClientID    = "ClientID" 
    Secret      = "Secret" 
    Base64      = "Base64" 
    Dim XMLHTTP : Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0") 
    XMLHTTP.setOption 2, 13056 
    XMLHTTP.setOption 3, "LOCAL_MACHINE\My\example.za.live" ' **Added** 
    XMLHTTP.Open "POST", "https://api.sandbox.paypal.com/v1/oauth2/token", False, ClientID, Secret 
    XMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    XMLHTTP.setRequestHeader "Accept", "application/json" 
    XMLHTTP.setRequestHeader "Accept-Language", "en_US" 
    XMLHTTP.setRequestHeader "Authorization", "Basic " & Base64 
    XMLHTTP.Send("grant_type=client_credentials") 

0 个答案:

没有答案