Paypal api 认证
Posted
技术标签:
【中文标题】Paypal api 认证【英文标题】:Paypal api oauth 【发布时间】:2014-08-13 12:17:48 【问题描述】:文档说要获得oauth
令牌,请使用以下内容:
卷曲 -v https://api.sandbox.paypal.com/v1/oauth2/token \ -H“接受:应用程序/json”\ -H "接受语言:en_US" \ -u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \ -d "grant_type=client_credentials"
如何使用angular js
发送-u
和-d
参数
var senddata =
clientId:"Ac8T1BCmIxgxbS5O_ztwejxvNW8Cbr0y1724_2cd8bGl68axHyw_nEdcOBli",
secret:"EAwgXhALV78LnphCPf-R3zs1Dx3nkcIOMc4TftSLh9q5EpgyqdeE19El9Oh0",
grant_type:"client_credentials"
;
尝试在http.post
(url,senddata
) 中传递senddata
但我得到了
"error":"invalid_client","error_description":"Invalid client credentials"
【问题讨论】:
您必须在 HTTP 请求的标头中包含身份验证信息。 senddata 似乎将数据添加到有效负载中。在blog.brunoscopelliti.com/… 下找到了一篇关于 http headers 和 angualar js 的好帖子 认证头的名称应该是什么? 检查 Finn K 的身份验证标头答案,以及 AngularJS 的$http.post
documentation 语法(标头在第三个参数中)。
不会出现跨域错误吗?
【参考方案1】:
我正在使用 Angular-JS 开发的电子商务解决方案的上下文中进行 PayPal API 调用。我能够使用以下代码从 PayPal 取回 auth_token。困扰我一段时间的两个问题是:
-
ClientId 和 ClientSecret 必须用冒号连接并进行 base64 编码(如 FinnK 上面所说)
当将数据作为对象data: 'grant_type': 'client_credentials'
发送时,我收到一个错误,即“grant_type”是必需参数。将其更改为用等号连接的字符串后,我不再收到此错误。
var basicAuthString = btoa('CLIENTID:SECRET');
$http(
method: 'POST',
url: 'https://api.sandbox.paypal.com/v1/oauth2/token',
headers:
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' + basicAuthString,
,
data: 'grant_type=client_credentials'
)
.success(function(data)
console.log(data.access_token);
)
.error(function(error)
console.error(error);
);
我希望这对那些试图实现它的人有所帮助。
【讨论】:
【参考方案2】:客户端 ID 和密码需要在 Authorization
标头中发送。
客户端 id 和密码需要用 :
分隔符连接(例如 client:secret
),然后以基数 64 编码。这称为 basic authentication,以及使用 -u
时 cURL 在幕后的作用选项。
您可以在第三个参数中将自定义标头传递给$http.post
。请参阅method documentation。示例,直接使用$http
(并深受文档启发):
var req =
method: 'POST',
url: 'http://example.com',
headers:
'Authorization': "Basic 12Base346456enc0did"
,
data: grant_type: 'client_credentials'
$http(req).success(function()...).error(function()...);
【讨论】:
以上是关于Paypal api 认证的主要内容,如果未能解决你的问题,请参考以下文章