Вопрос к знающим PayPal

Slam

Новичок
Вопрос к знающим PayPal

У меня есть ряд вопросов к людям, которые работали с платежной системой PayPal.

При успешной проплате я обновляю информацию про заказ в базе, добавляю список заказанных

товаров относительно содержимого корзины, а также удаляю записи, которые относятся к

корзине.

Далее могут возникнуть еще ряд событий, отмена заказа, возвращение денег покупателю...
У меня есть сомнения в правильности алгоритма обработки данныз событий.

Итак:

[ 1 ]
------
В каком случае возникает событие (txn_type = 'reversal')
Понятно, что оплата прошла успешно (payment_status = 'Completed'), НО деньги были возвращены

покупателю по его инициативе.

Меня интересует это событие происходит после абсолютно успешной транзакции ($txn_type =

'web_accept' && $payment_status == 'Completed') ? Мне кожеться, что возникнуть до оплаты оно

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

То есть нужно будет после (txn_type = 'reversal') удалять заказ из БД?


[ 2 ]
------
Что делать если Платеж не прошел (payment_status = 'Failed', платеж осуществлялся с

банковского счета). Я так понимаю, что ничего

Заранее благодарен!

-~{}~ 27.10.07 00:41:

Возможно кому-то будет интересно какие события нужно обрабатывать при программировании IPN-скрипта.
Я не претендую на полноту, но хотел бы поделиться своими соображениями и выслушать Ваши комментарии.
Код:
/**
				 * Все проверки сделаны. Транзакция прошла проверку
				 * 
				 * Обработка различных статусов оплаты.
				 * 
				 *  1. Оплата прошла успешно (payment_status = 'Completed')
				 *  2. Деньги были возвращены покупателю (payment_status = 'Reversed'),
				 *     Причина указана в переменной $reason_code
				 *     - reason_code = 'chargeback': Аннулирование произошло по иництативе клиента
				 *     - reason_code = 'guarantee': Аннулирование произошло по иництативе клиента в связи с гарантийными обязательствами
				 *     - reason_code = 'buyer-complaint': Аннулирование произошло по иництативе клиента из-за жалобы о сделке от клиента
				 *     - reason_code = 'refund': Аннулирование произошло по иництативе продавца
				 *     - reason_code = 'other': Аннулирование произошло по причине не указанной высше
				 *  3. Платеж не прошел (payment_status = 'Failed') - платеж осуществлялся с банковского счета
				 *  4. Платеж задержан (payment_status = 'Panding'), причина задержки в переменной pending_reason
				 *     - pending_reason = 'echeck': оплата была сделана электронным чеком
				 *     - pending_reason = 'multi_currency': платеж был проведен в валюте, которая не указана в настройках аккаунта продавца. 
				 *                                          Платеж будет завершен после подтверждения транзакции продавцом
				 *     - pending_reason = 'intl': продавец не является жителем США. 
				 *                                Платеж будет завершен после подтверждения транзакции продавцом
				 *     - pending_reason = 'verify': акккаунт продавца находится в состоянии "unverified". 
				 *                                  Платеж будет завершен после подтверждения личности продавца.
				 *     - pending_reason = 'address': в настройках аккаунта продавца указано, что покупатель должен указать адрес для доставки, 
				 *                                   но покупатель не указал адрес. 
				 *                                   Платеж будет завершен после подтверждения транзакции продавцом
				 *     - pending_reason = 'upgrade': платеж был сделан с кредитной карты, при этом аккаунт продавца имеет статус "Personal". 
				 *                                   Для завершения платежа продавец должен обновить аккаунт до "Business" или "Premier"
				 *     - pending_reason = 'unilateral': e-mail продавца не зарегистрирован в системе.
				 *     - pending_reason = 'other': другая причина. Продавцу следует связаться со службой поддержки для выяснения причины
				 *  5. Платеж был отменен продавцом (payment_status = 'Denied'). 
				 *     Это состояние возникает при отмене продавцом платежа, состояние которого было Pending
				 *  6. Деньги были возвращены покупателю (payment_status = 'Refunded')
				 *     Это состояние возникает при отмене продавцом платежа, состояние которого было Completed
				 */
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Платежные системы. PayPal

>У меня есть сомнения в правильности алгоритма обработки данныз событий.
Алгоритм обработки событий в экономических процессах - не задача PHP-кодера.
А с PayPal действительно непросто.

>То есть нужно будет после (txn_type = 'reversal') удалять заказ из БД?
Ты задаешь нам вопрос о логике обработки события? Это должен знать постановщик задачи.
Мы не сможем грамотно и полностью ответить на вопрос.
Я обычно забиваю и обрабатываю только уведомления об успешных транзакциях.
 
Сверху