Извлечение кода подтверждения и параметров request_token из URL перенаправления PayPal - PullRequest
0 голосов
/ 18 мая 2018

В настоящее время я пытаюсь понять API Paypal, написав приложение для фляги, которое использует различные API.То, с чем я столкнулся с ошибкой, это взаимодействие с сервисами разрешений для классических API.У меня есть учетная запись в песочнице, которая предоставляет мне все необходимое для выполнения моих запросов.В одной из моих функций просмотра я успешно зашел на страницу разрешения запроса и получил перенаправление PayPal на URL обратного вызова, который я указал в своем запросе.Это мой код (обратите внимание, что я еще «молод» в 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 с дополнительными параметрами, добавленными к нему как таковые.

  • Пожалуйста, помогите мне, какя могу получить validiaction_code и request_token из URL-адреса (или, что еще лучше, в каком направлении лучше идти отсюда), так как мне нужно два значения, чтобы сделать еще один запрос к API GetAccesToken, чтобы я мог делать запросы от имени пользователей, которые имеютпредоставил разрешение.

Получение параметров из URL , кажется, немного решает мою проблему, но не полностью, потому что анализируемый URL-адрес уже существует в отличие от моего случая, когда URL-адрес изменяется.Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...