我正在开发一个AngularJS应用程序,我正在尝试测试PayPal交易。我创建和APP并获得ClientID和Secret,然后我想获得访问令牌。我试着用这个
storeApp.controller('payPalController', ['$scope', '$http', function($scope, $http)
{
$scope.paypal = function()
{
$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 AeHZj_qxaxXkqKQWIjt4vLN1kL7dfpmn-aTiE3u0eLVGZBQut1DXA8qgMq8N22GCjTLrZUOSg4BC6hvH:EAsK3JWlOW1rPNRelHWuy3qmNWMwg74t2K_CizaBQGaT10OyMyEY7pVVBJJC2RZCZXthaNL7iBfGULzN',
},
data: 'grant_type=client_credentials'
})
.success(function()
{
console.log("It works!");
//console.log(data);
})
.error(function()
{
console.log("It fails!");
//console.log(data)
});
}
}]);
但是当我从浏览器执行它时,我得到了这个:
{"错误":" rp_lookup_failed"," error_description":"无法读取RP 元数据:请求失败,异常: com.paypal.foundation.exception.DataAccessRuntimeException \ n错误:\ n \ tPIMP_RC_INTERNAL_ERROR 客户端异常,同时调用UserRead.read_identity_partner_app 2.0:\ n"}
另一方面,与此同时,我收到了这个警告。
此站点使用SHA -1证书;建议使用 使用比SHA-1哈希更强的认证签名算法 功能
感谢您的帮助
答案 0 :(得分:1)
我有同样的问题,原因是 - 你需要Base64编码授权标题。 (client_id和secret)。
所以,替换这一行:
'Authorization': 'Basic AeHZj_qxaxXkqKQWIjt4vLN1kL7dfpmn-aTiE3u0eLVGZBQut1DXA8qgMq8N22GCjTLrZUOSg4BC6hvH:EAsK3JWlOW1rPNRelHWuy3qmNWMwg74t2K_CizaBQGaT10OyMyEY7pVVBJJC2RZCZXthaNL7iBfGULzN'
这一行:
'Authorization': 'Basic QVVBZ3dEdzNrUUEwa0NBblFRZWdVR1M4R19zb3pBdkV5NFY1RUppdm5JTVdSQVJESnNQR2VGWHZBWEo1NjlfOGhGelgzdkxWS21jU0JyTnQ6RUVkbUdHNFptaGRCSlJwQjZMek9VLWJWQmU3NEZIWm8xam9TTGM0V0tiTzg2cS15TWk1ZTA5NUxXUHlhVHIxa2YxWjBDdHB3YU40WGxmMmw='