Извлечение токенов экспресс-проверки - PullRequest
1 голос
/ 10 января 2011

Когда дело доходит до PayPal, я совершенно новичок, так что извините, если на этот вопрос ответили где-то еще. Я зарегистрировался в нескольких местах, в том числе здесь, и не смог найти никакой информации.

Я хочу интегрировать PayPal с Python.

Моя проблема в том, что я пытаюсь внедрить Express Checkout на сайте электронной коммерции. Я работаю над своего рода фиктивным тестовым сайтом, использующим песочницу, чтобы попытаться заставить его работать. Для справки я использовал https://cms.paypal.com/cms_content/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf

Глава 6 в качестве руководства о том, как это сделать.

Где я сейчас нахожусь, так это с тем, что у меня все работает до тех пор, пока мне не понадобится извлечь токены после успешного вызова API PayPal. По сути, я получаю сообщение в браузере, которое выглядит как

TIMESTAMP=2007%2d04%2d05T23%3a23%3a07Z
&CORRELATIONID=63cdac0b67b50
&ACK=Success
&VERSION=52%2e000000
&BUILD=1%2e0006
&TOKEN=EC%2d1NK66318YB717835M 

Во-первых, как мне извлечь значения ACK и TOKEN из сообщения? Являются ли они частью скрытой строки запроса, которую я мог бы извлечь, используя что-то вроде Request.QueryString["TOKEN"]?

Технически, все, что мне нужно сделать, это извлечь и проверить, успешно ли ACK, в противном случае перенаправить обратно с ошибкой. В случае успеха мне нужно извлечь токен и перейти к PayPal, а затем перенаправить на страницу просмотра моего заказа.

Как мне извлечь токены?

Как перенаправить браузер с этой страницы? (Я работаю над локальной копией, которая еще не была загружена.

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

1 Ответ

0 голосов
/ 26 февраля 2011

Мои извинения.Я ответил от макушки головы, не пытаясь это.Вот что на самом деле работает.

from cgi import parse_qs
...

redirect_url_template = 'https://www.paypal.com/webscr?cmd=_ap-payment&paykey='

...

parsed_response = parse_qs(response.content)
ack = parsed_response['responseEnvelope.ack'][0]
if ack and ack == 'Success':
    url = redirect_url_template + parsed_response['payKey'][0]

Это всего лишь пример, вы захотите попытаться обойти это для KeyError и подобных вещей, чтобы быть в безопасности.

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