Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос к знатокам PayPal, правильность алгоритма обработки данных  
:(
    Опции темы
CoderUA
  Дата 26.10.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 17.10.2005
Где: Ukraine

Репутация: нет
Всего: нет



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

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

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

Итак:

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

Меня интересует это событие происходит после абсолютно успешной транзакции ($txn_type = 'web_accept' && $payment_status == 'Completed') ? Мне кожеться, что возникнуть до оплаты оно не может, потому-что деньги не были перечислены и возвращять нечего...

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


[ 2 ]
------
Что делать если Платеж не прошел (payment_status = 'Failed', платеж осуществлялся с банковского счета). Я так понимаю, что ничего

Заранее благодарен!
PM MAIL ICQ   Вверх
CoderUA
Дата 26.10.2007, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 17.10.2005
Где: Ukraine

Репутация: нет
Всего: нет



Возможно кому-то будет интересно какие события нужно обрабатывать при программировании 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
 */

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Платёжные системы и расчёты через Интернет | Следующая тема »


 




[ Время генерации скрипта: 0.1351 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.