интеграция django-paypal

Я пытаюсь интегрировать Django-Paypal на сайт, где после оплаты клиентом мне нужно отправить динамический URL-адрес, с которого пользователь может загрузить определенную информацию.

Я регистрирую всех пользователей по URL-адресу, который позволяет им покупать документ. URL-адрес, доступ к которому может получить только зарегистрированный пользователь с проверенным идентификатором электронной почты с использованием регистрации django, позволяет пользователю подключиться к PayPal и произвести оплату.

Как мне зафиксировать сигнал и проверить, какой пользователь совершил оплату за какой продукт, который он/она приобрел, на основе этой информации

1) Мне нужно знать две информации: какой пользователь совершил платеж и за какой товар он или она произвели платеж?

2) Только если у меня есть эта информация, я могу отправить правильный UR:L по электронной почте.

Любая помощь приветствуется. Я не очень уверен, как работают сигналы django. Какие детали возвращает сигнал payment_was_successful?

я использую ИПН


person ramdaz    schedule 05.04.2010    source источник
comment
ramdaz, обратите внимание, что вы можете отметить ответ, чтобы указать, что он правильный. Это также улучшит вашу скорость принятия.   -  person John C    schedule 05.10.2011


Ответы (1)


Чтобы захватить сигнал, вы определяете свою функцию и подключаете ее к сигналу следующим образом:

from paypal.standard.ipn.signals import payment_was_successful
def my_payment_was_successful_handler(sender, **kwargs):
    pass

payment_was_successful.connect(my_payment_was_successful_handler)

Чтобы иметь возможность идентифицировать пользователя, о котором идет сообщение IPN, я обычно модифицирую кнопку PayPal, чтобы передать поле с именем custom вместе с формой, установленной для django user.id или какого-либо другого идентификатора, который вы можете найти, чтобы идентифицировать своего пользователя. Переменная custom возвращается в аргументе sender, и вы можете найти пользователя.

Чтобы найти продукт, product_name также отправляется в sender обработчику, указанному выше. Вероятно, у вас есть модель для ваших продуктов, и вы захотите найти их по этому product_name, чтобы отправить соответствующую вещь по электронной почте.

person dar    schedule 05.04.2010
comment
Ну, что ж, спасибо. Это именно то, что я пытаюсь сделать. - person ramdaz; 05.04.2010