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 认证的主要内容,如果未能解决你的问题,请参考以下文章

paypal如何认证?

paypal如何认证?

PayPal怎么认证?

paypal信用卡如何认证在哪

paypal怎么认证

你好,我是PAYPAL的新手,我看到了认证中有2个,一个是银行账户认证一个是借记卡和信用卡认证,区别?