2016-07-21 2 views
2

Я пытаюсь сделать простой вызов Paypal API с кодом наблюдения:Использование Paypal REST API с классическим ASP

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 

Я могу это сделать звоните с почтальоном без проблем. Я нахожусь в localhost, и я не использую SSL на своем сайте (не знаю, влияет ли его влияние).

+1

Попробуйте 'set objHTTP = Server.CreateObject (" Msxml2.ServerXMLHTTP.6.0 ")' - иногда такие скрипты работают лучше, если вы используете самую последнюю версию MSXML – John

+0

Теперь она возвращает ошибку: «Сертификат требуется для завершения проверки подлинности клиента », и я не знаю, где мне получить этот сертификат. – Onaiggac

+0

У меня такая же проблема. Сообщение об ошибке, которое я получаю, это «Полученное сообщение было неожиданным или сильно отформатированным». – FrancoSF

ответ

0

Чтобы решить мою проблему, я использую 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 

И его работы очень хорошо

0

Решено: Мы, наконец, удалось поговорить с REST, благодаря поддержку Paypal и наш интернет-провайдер. Требуется использование сертификата, для указания сертификатов вам необходим объект ServerXMLHTTP.

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

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

Это работало из коробки с живой конечной точкой, но песочница была возвращена: «Произошла ошибка в поддержке безопасного канала». Причина в том, что песочница больше не поддерживает TLSv1.1. Чтобы объект ServerXMLHTTP поддерживал TLSv1.2, вам нужно запустить Classic ASP на 64-битной, а не 32-битной.

Смежные вопросы