我有一个API从贝宝获取代币。
curl -v POST 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"
我正在使用axios打电话,类似这样,但我在身份验证时出错了。
axios.post("https://api.sandbox.paypal.com/v1/oauth2/token", {}, {
auth: {
username: "xxxx, // clientId
password: "xxxx" // client Secret
}
}).then(function(response) {
result = response;
console.log('Authenticated' + response);
}).catch(function(error) {
console.log('Error on Authentication' + error);
});
也许我错过了";grant_type";。。。如何在此调用中传递这些参数。请你纠正一下?非常感谢
${clientId}:${secretKey}
需要是base64编码的
在JavaScript中,您可以使用btoa((、toString('base64'(,或者使用axios设置auth密钥。
使用curl,可以使用-u命令行参数。
对于API的一般剩余使用,当以这种方式将基本身份验证传递到oauth2/令牌端点时,查询字符串应为grant_type=client_credentials,如本文所述。这将返回可在所有其他API调用中使用的access_token。
您链接的"与PayPal连接"文档用于特定集成,您需要授权代码,但没有其他API使用该代码。
axios({
method: 'POST',
url: 'https://api.sandbox.paypal.com/v1/oauth2/token',
headers: {
'Authorization': `Basic ${clientId}:${secretKey}`,
'Content-type': 'application/json'
},
data: `grant_type=authorization_code&code=${authorizationCode}`
})
客户端ID和客户端机密不能是您的用户名和密码。curl中的u标志用于用户名和密码,但在axios中,这可能有所不同。对于卷发知识,请遵循以下内容。一切都有一些选择,如果你很挣扎,那么你可以选择这个自由。PayPal节点SDK。或者在youtube上学习一些教程。