我目前正在尝试通过编写一个消耗各种API的烧瓶应用程序来了解Paypal API。我有什么bugun与经典API的Permission服务进行交互。我有一个沙盒帐户,它为我提供了提出要求的必需品。在我的一个视图功能中,我成功访问了请求权限页面,并收到了PayPal重定向到我在请求中提供的回调URL。这是我的代码(注意我仍然是#py;以及python中的年轻人,所以欢迎提出改进建议)
@account.route('/grant_auth')
def get_request_token():
"""handle the proccess of getting the request token"""
if request.method == 'GET':
url = "https://svcs.sandbox.paypal.com/Permissions/RequestPermissions"
headers = {
'X-PAYPAL-SECURITY-USERID': '**********',
'X-PAYPAL-SECURITY-PASSWORD': '*********',
'X-PAYPAL-SECURITY-SIGNATURE': '************',
'X-PAYPAL-REQUEST-DATA-FORMAT': 'JSON',
'X-PAYPAL-RESPONSE-DATA-FORMAT': 'JSON',
'X-PAYPAL-APPLICATION-ID': 'APP-80W284485P519543T'
}
payload = {
'scope': 'ACCOUNT_BALANCE',
'callback': 'http://127.0.0.1:5000/access_token',
'request_Envelop': {
'errorLanguage': 'en_US'
}
}
res_details = requests.post(
url, data=json.dumps(payload), headers=headers)
res_json_format = res_details.json()
if str(res_json_format['responseEnvelope']['ack']) == 'Failure':
return render_template('account.html', response='something went wrong with the application')
if str(res_json_format['responseEnvelope']['ack']) == 'Success':
token = res_json_format['token']
pal_permission_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_grant-permission&request_token={}'.format(token)
return redirect(pal_permission_url)
else:
return render_template('account.html', response='something went wrong with the application')
这就是我所做的:
当我运行该代码并访问/grant_auth
时
我被重定向到paypal页面,我可以在我授权时将其重定向到http://127.0.0.1:5000/access_token?request_token=somevalue&verification_code=somevalue
,并附加一个附加参数。
Retrieving parameters from a URL 似乎有点解决我的问题,但不完全,因为在那里解析的网址已经存在,不像我的网址更改的情况。在此先感谢