将Paypal REST API与经典ASP

将Paypal REST API与经典ASP,rest,paypal,asp-classic,Rest,Paypal,Asp Classic,我尝试使用以下代码对Paypal API进行简单调用: On error resume next Set objHTTP = CreateObject("Microsoft.XMLHTTP") objHTTP.open "POST", "https://api.sandbox.paypal.com/v1/oauth2/token", False objHTTP.setRequestHeader "Accept", "application/json" objHTTP.setRequestHe

我尝试使用以下代码对Paypal API进行简单调用:

On error resume next

Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.open "POST", "https://api.sandbox.paypal.com/v1/oauth2/token", False

objHTTP.setRequestHeader "Accept", "application/json"
objHTTP.setRequestHeader "Accept-Language", "en_US"
objHTTP.setRequestHeader "Authorization", "Basic " & Base64Encode("client-id:secret")
objHTTP.send "grant_type=client_credentials"

Response.Write err.description & " | " & err.number
但它返回了错误:

The download of the specified resource has failed

我可以毫无问题地和邮递员通话。我在本地主机上,我没有在我的站点上使用SSL(不知道它是否会影响)。

为了解决我的问题,我使用了NVP API,现在我正在做类似的事情

Set objHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0")
objHTTP.open "POST", "https://api-3t.sandbox.paypal.com/nvp", False

Dim data
data = "USER=" & paypal_user_name &_
"&PWD=" & paypal_psw &_
"&SIGNATURE=" & paypal_signature &_
"&VERSION=204.0" &_
"&RETURNURL=" & return &_
"&CANCELURL=" & cancel &_
"&PAYMENTREQUEST_0_PAYMENTACTION=Sale" &_
"&PAYMENTREQUEST_0_AMT=" & Request.QueryString("val") &_
"&PAYMENTREQUEST_0_CURRENCYCODE=BRL" &_
"&L_PAYMENTREQUEST_0_NAME0=" & Request.QueryString("pac") &_
"&L_PAYMENTREQUEST_0_AMT0=" & Request.QueryString("val") &_
"&NOSHIPPING=1" &_
"&METHOD=SetExpressCheckout"

objHTTP.send data

它的工作非常好

解决了:多亏了贝宝的支持和我们的ISP,我们终于设法与REST通话了。 需要使用证书,才能指定需要ServerXMLHTTP对象的证书

 objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0");

 objHTTP.setOption(3, "LOCAL_MACHINE\\My\\merchant-cert_api1.paypal.com");

这对于live端点来说是现成的,但沙盒返回:“安全通道支持中发生错误”。原因是沙盒不再支持TLSv1.1。为了使ServerXMLHTTP对象支持TLSv1.2,您需要以64位而不是32位运行经典ASP。

尝试
设置objHTTP=Server.CreateObject(“Msxml2.ServerXMLHTTP.6.0”)
-如果您使用的是最新版本的MSXMLNow,有时这样的脚本会运行得更好。返回错误:“完成客户端身份验证需要证书”,我不知道从何处获取此证书我遇到了类似的问题。我收到的错误消息是“收到的消息意外或格式错误。”