Jump to content

Модуль оплаты QIWI

Featured Replies

comment_166984
7 минут назад, PiratRu сказал:

Именно Ю.Мани? Не Я.Деньги - это старая, не то уже! 

А Ю.Мани продадите? Сколько?

Но здесь думаю потребуется проверка модулей!

Я покупал Юмани, у меня есть ) могу поменять на Qiwi

Юмани работает у меня в интернет магазине

Edited by Litesm

comment_166996
5 часов назад, aplayer сказал:

Платежные системы так не должны работать. Особенно обратные уведомления о платеже.

Ну и какая проблема-то? В уведомлении приходит номер платежа, проверяем по базе и принимаем, если новый или отвечаем 200 и забываем. Мало ли что может случится, запрос прошел к вам, обработался, а ответа от вас не пришло, сеть сбойнула. У юмани такого вроде официально нет (не видел в доках), но они пишут, что будут слать, пока не получат 200. Я проверку сделал на дубль уведомления и один раз поймал такой. 

 

Edited by Desti

comment_166997
1 час назад, Desti сказал:

У юмани такого вроде официально нет (не видел в доках), но они пишут, что будут слать, пока не получат 200. Я проверку сделал на дубль уведомления и один раз поймал такой.

в обычных кнопках они высылают три уведомления пока не получат 200 второе через 10 минут третье через час. Дальше сам думай почему не отдаешь им 200.

IPS движок тяжелый и твой скрипт если использует классы движка может думать слишком долго, либо хостер может техработы замутить, а у яндекса таймаут наверно секунд 5 всего. Повторные тоже ловил пару раз, и судя по всему оба по таймауту, тоесть скрипт отработал штатно и вернул код 200, но яндекс не дождался. Сейчас подумываю переделать на такую схему: сбрасывать уведомления в бд и выдавать 200 сразу, а дальше пусть крон разбирается.

У киви где-то прочитал там и вовсе 2 секунды таймаут ожидания 200го кода. В ТП яндекса задавал вопрос о таймауте, не смогли ответить, не поняли вопроса.

comment_167004
2 часа назад, aplayer сказал:

не смогли ответить, не поняли вопроса

это нормально для яндекса :)

2 часа назад, aplayer сказал:

IPS движок тяжелый и твой скрипт если использует классы движка может думать слишком долго

У меня всё в редисе, в базу только финальные изменения сбрасываются. 

comment_167005

Я сейчас в раздумьях.

Когда платежная система высылает уведомление о платеже надо сразу выдавать ей код 200. Проверено на личном опыте. Скрипту приемнику не стоит производить дальнейшую обработку платежа.

И тут напрашивается два варианта.

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

Например если промежуток простоя крона пришло 100 покупателей, то за одну итерацию обрабатывать только 10.

2. При каждом уведомлении скрипт-приемник вызывает обработчик не дожидаясь завершения работы обработчика. При такой схеме крон не нужен и обработка будет проходить только когда требуется. В этой схеме приемник не ждет завершения обработки и выдает код 200 даже если обработчик завис.

Кто нибудь может рассказать о подводных камнях этих способов или предложить другую схему?

Edited by aplayer

comment_167013

У меня композитный вариант. Notify от сервера сбрасываются в базу и отдается 200. Сonfirm скрипт от платежной системы чекает нотифи-таблицу (некоторое время) и при обнаружении success сообщения подтверждает платеж. Если не успевает, то отдает страницу "Что-то у нас пошло не так, но не переживайте, деньги не пропадут", а потом кроном чекает и меняет статус платежа. 

  • 3 месяца спустя...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.