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-скрипта.
Я не претендую на полноту, но хотел бы поделиться своими соображениями и выслушать Ваши комментарии.
У меня есть ряд вопросов к людям, которые работали с платежной системой 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
*/