16 января, 20213 yr comment_166984 7 минут назад, PiratRu сказал: Именно Ю.Мани? Не Я.Деньги - это старая, не то уже! А Ю.Мани продадите? Сколько? Но здесь думаю потребуется проверка модулей! Я покупал Юмани, у меня есть ) могу поменять на Qiwi Юмани работает у меня в интернет магазине Edited 16 января, 20213 yr by Litesm
16 января, 20213 yr comment_166996 5 часов назад, aplayer сказал: Платежные системы так не должны работать. Особенно обратные уведомления о платеже. Ну и какая проблема-то? В уведомлении приходит номер платежа, проверяем по базе и принимаем, если новый или отвечаем 200 и забываем. Мало ли что может случится, запрос прошел к вам, обработался, а ответа от вас не пришло, сеть сбойнула. У юмани такого вроде официально нет (не видел в доках), но они пишут, что будут слать, пока не получат 200. Я проверку сделал на дубль уведомления и один раз поймал такой. Edited 16 января, 20213 yr by Desti
16 января, 20213 yr comment_166997 1 час назад, Desti сказал: У юмани такого вроде официально нет (не видел в доках), но они пишут, что будут слать, пока не получат 200. Я проверку сделал на дубль уведомления и один раз поймал такой. в обычных кнопках они высылают три уведомления пока не получат 200 второе через 10 минут третье через час. Дальше сам думай почему не отдаешь им 200. IPS движок тяжелый и твой скрипт если использует классы движка может думать слишком долго, либо хостер может техработы замутить, а у яндекса таймаут наверно секунд 5 всего. Повторные тоже ловил пару раз, и судя по всему оба по таймауту, тоесть скрипт отработал штатно и вернул код 200, но яндекс не дождался. Сейчас подумываю переделать на такую схему: сбрасывать уведомления в бд и выдавать 200 сразу, а дальше пусть крон разбирается. У киви где-то прочитал там и вовсе 2 секунды таймаут ожидания 200го кода. В ТП яндекса задавал вопрос о таймауте, не смогли ответить, не поняли вопроса.
16 января, 20213 yr comment_167004 2 часа назад, aplayer сказал: не смогли ответить, не поняли вопроса это нормально для яндекса 2 часа назад, aplayer сказал: IPS движок тяжелый и твой скрипт если использует классы движка может думать слишком долго У меня всё в редисе, в базу только финальные изменения сбрасываются.
16 января, 20213 yr comment_167005 Я сейчас в раздумьях. Когда платежная система высылает уведомление о платеже надо сразу выдавать ей код 200. Проверено на личном опыте. Скрипту приемнику не стоит производить дальнейшую обработку платежа. И тут напрашивается два варианта. 1. Сбросить уведомление в базу и а дальше его крон обработает. Но тут есть недостатки. Платеж будет обработан только в определенный промежуток времени. При отсутствии покупателей крон будет работать впустую. При избытке покупателей ему придется обрабатывать очень много входных данных, тоесть надо озаботиться о пакетной обработке. Например если промежуток простоя крона пришло 100 покупателей, то за одну итерацию обрабатывать только 10. 2. При каждом уведомлении скрипт-приемник вызывает обработчик не дожидаясь завершения работы обработчика. При такой схеме крон не нужен и обработка будет проходить только когда требуется. В этой схеме приемник не ждет завершения обработки и выдает код 200 даже если обработчик завис. Кто нибудь может рассказать о подводных камнях этих способов или предложить другую схему? Edited 16 января, 20213 yr by aplayer
16 января, 20213 yr comment_167013 У меня композитный вариант. Notify от сервера сбрасываются в базу и отдается 200. Сonfirm скрипт от платежной системы чекает нотифи-таблицу (некоторое время) и при обнаружении success сообщения подтверждает платеж. Если не успевает, то отдает страницу "Что-то у нас пошло не так, но не переживайте, деньги не пропадут", а потом кроном чекает и меняет статус платежа.
17 апреля, 20213 yr comment_169001 а есть ли какой-нибудь живой способ принятия денюшек? или все что было - сдохло? 👀
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.