我试图将Paypal订阅支付系统与django应用程序集成。但是从后端调用API时存在一些问题。
选项1:
url = "https://api.sandbox.paypal.com/v1/billing/subscriptions/I-VL5K5767RB6S"
headers = {'Authorization': 'Bearer Ae2UGxdThO9xMgFCSJihnhqDrv7zqTSngh6ILNc3imd6RrOM-GovHN_R0jFVL80Qm5oKhDi6rg715G9_', 'Content-Type': 'application/json'}
response = requests.get(url, headers=headers)
响应#1:
headers {'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Content-Length': '83', 'Content-Type': 'application/json', 'Date': 'Fri, 29 May 2020 08:57:14 GMT', 'Paypal-Debug-Id': '50867574d2a79'}
status_code 401
response text {"error":"invalid_token","error_description":"Token signature verification failed"}
选项2:
url = "https://api.sandbox.paypal.com/v1/billing/subscriptions/I-VL5K5767RB6S"
headers = {'Authorization': 'Ae2UGxdThO9xMgFCSJihnhqDrv7zqTSngh6ILNc3imd6RrOM-GovHN_R0jFVL80Qm5oKhDi6rg715G9_', 'Content-Type': 'application/json'}
response = requests.get(url, headers=headers)
响应#2:
{'Cache-Control': 'max-age=0, no-cache, no-store, must-revalidate', 'Content-Length': '244', 'Content-Type': 'application/json', 'Date': 'Fri, 29 May 2020 08:58:50 GMT', 'Paypal-Debug-Id': '3e1641470db08'}
status_code 401
response text {"name":"AUTHENTICATION_FAILURE","message":"Authentication failed due to invalid authentication credentials or a missing Authorization header.","links":[{"href":"https://developer.paypal.com/docs/api/overview/#error","rel":"information_link"}]}
如何获得成功的答复?
答案 0 :(得分:0)
选项1是Oauth2承载令牌调用的正确格式。但是,这:
Ae2UGxdThO9xMgFCSJihnhqDrv7zqTSngh6ILNc3imd6RrOM-GovHN_R0jFVL80Qm5oKhDi6rg715G9_
不是是Oauth2访问令牌。相反,它是一个PayPal REST App客户端ID,大概是沙盒模式,这是您首先需要使用以获得适当的access_token的条件之一。
有关如何传递那些Oauth 2.0凭据并获得所需的access_token的信息,请参见PayPal's REST API documentation:
请注意,access_tokens通常有效期为9个小时,并且过期一次后,您将需要使用相同的调用生成一个新的令牌。