Как я могу преобразовать эту команду PayPal Curl в Axios?
curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "client_id:secret" \
-d "grant_type=client_credentials"
Я использую vueAxios в vue, поэтому " this. ".
this.axios.post('https://api.sandbox.paypal.com/v1/oauth2/token',
{'Accept': "application/json", 'Accept-Language': "en_US",
'XXXXXX': 'XXXXX', // my paypal client ID and client secret
'grant_type':'client_credentials'}
)
.then( response => {
console.log("Response is: ", response);
})
.catch( error => {
console.log("Error is :", error);
});
Я получаю эту ошибку:
Error is : Error: Request failed with status code 401
at createError (createError.js?16d0:16)
at settle (settle.js?db52:18)
at XMLHttpRequest.handleLoad (xhr.js?ec6c:77)
Я также попробовал это (что, кажется, лучше, но я все еще получаю ошибку 400):
this.axios({
method: 'POST',
url: 'https://api.sandbox.paypal.com/v1/oauth2/token',
headers: {
'Accept': 'application/json',
'Accept-Language': 'en_US',
'Content-Type':'application/x-www-form-urlencoded'
},
auth: {
username: '<XXXX My paypal client ID>',
password: '<XXXX My paypal secret>'
} ,
data: {
grant_type: 'client_credentials'
},
})
.then(function(response) {console.log(response);})
.catch(function(response) {console.log(response);});
ОБНОВЛЕНИЕ - после некоторой справки из комментариев я попробовал следующий код, и на paypal возникла ошибка CORS (я установил nps-пакеты "cors", и ошибка cors сохраняется (как локально, так и при развертывании)).
Это отвечает на мой вопрос, но, как указано здесь , похоже, что Paypal не разрешает запросы непосредственно из браузера.
this.axios({
withCredentials: true,
url: 'https://api.sandbox.paypal.com/v1/oauth2/token',
method: 'post',
headers: {
'Accept': 'application/json',
'Accept-Language': 'en_US',
'Content-Type':'application/x-www-form-urlencoded',
'Access-Control-Allow-Origin': '*',
},
data: { 'grant_type':'client_credentials' },
auth: {
username: 'XXXXXXXX',
password: 'XXXXXXXX'
}
})
Сопутствующая документация:
CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
VueAxios: https://www.npmjs.com/package/vue-axios
Paypal dev: https://developer.paypal.com/docs/api/overview/#make-your-first-call