Pull to refresh

Comments 6

Недавно реализовывал проставление оплат в интернет-магазине по заказам от юридических лиц на основе данных от банка. Большое удивление вызвало то, что на один поступивший платеж банк может отправить до десятка вебхуков, в которых будут какие-то странные отличия, например, сумма: 10000, 10000.0, 10000.00 и плюс какие-то не всегда очевидные изменения в других полях. Документация причины подобного не поясняет)

Спасибо, очень знакомо. Поэтому в хеше ключа я всегда привожу сумму к одному формату (`Формат(Сумма, "ЧДЦ=2; ЧРД=.; ЧГ=0")`): 10000, 10000.0 и 10000.00 тогда дают один ключ, и повторные вебхуки отсекаются идемпотентностью. А «не всегда очевидные изменения в других полях» я бы сохранял сырыми и сравнивал хешем содержимого: та же версия — пропуск, другая — в очередь разбора, а не новый документ. Не подскажете, какой это был банк?

Суммы привожу к единому виду, потом собираю ключ на основе нескольких полей и проверяю, приходило ли такое значение уже ранее, чтобы не дублировать остальной пайплайн.
Данные поначалу сохранял вообще все, как ситуация стабилизировала изменил на сохранение только нетиповых ситуаций, чтобы была возможность разобраться что там пошло не так.
Речь про Т-Банк.

Спасибо, про Т-Банк полезно знать. Хранить после стабилизации только нетиповые случаи, по-моему, правильный компромисс: журнал не разрастается, а разбирать есть что. Я бы ещё оставлял короткий срок хранения всех сырых ответов, неделю-две, чтобы при новом типе расхождения было с чем сравнить. А ключ у вас из каких полей собирается, если не секрет: дата, сумма, ИНН и назначение, или банк отдает свой идентификатор операции?

Банк отдает идентификатор, но и он меняется, поэтому: дата + номер платежки + ИНН + сумма

Спасибо за статью, хорошо поднимает реальную боль. Синхронизация с 1С сама по себе бывает довольно муторной, а когда ещё банки и разные API уж тем более. У банков своя сложная внутренняя политика и мы это знаем не понаслышке: без чёткости и структуры тут быстро едут сроки и качество. Ошибки такие проекты не прощают! Всё-таки финансы. Полезный разбор слоёв и акцент на сырых ответах/ идемпотентности, как раз то что в таких интеграциях спасает.

Sign up to leave a comment.

Articles