Все тесты зелёные, платежи зависли: 5 граблей интеграции без песочницы

Осенью 2022-го мы добавляли в наш платёжный агрегатор новый способ оплаты: плательщик уходит по ссылке в приложение своего банка, подтверждает платёж там, а банк присылает нам нотификацию о результате. Песочница у банка была, формально. Отвечала статусами из позапрошлой версии протокола, а нотификации не присылала вообще; обещанные доработки ехали к нам дольше, чем наш дедлайн. Мы перестали ждать и написали двойника провайдера сами - по PDF со спекой, с тестом на каждый сценарий из документации. CI зелёный. Запускались осторожно, тремя волнами мерчантов: первые две прошли тихо. После третьей в саппорт пошли тикеты: у плательщика деньги списаны, у мерчанта платёж висит.

https://habr.com/ru/articles/1050584/

#вебхуки #идемпотентность #полинг #интеграция_платежей #платёжный_провайдер #отказоустойчивость #тестирование #webhooks #NET #C#

Все тесты зелёные, платежи зависли: 5 граблей интеграции без песочницы

Осенью 2022-го мы добавляли в наш платёжный агрегатор новый способ оплаты: плательщик уходит по ссылке в приложение своего банка, подтверждает платёж там, а банк присылает нам нотификацию о...

Хабр

Rails 8 Monigon SaaS Boilerplate 로컬 Stripe 결제 시스템 연동 가이드

Rails 8 기반 Monigon SaaS boilerplate 애플리케이션을 로컬 환경에 설정하고, Stripe API 키 및 웹훅 시크릿을 구성하여 결제 기능을 활성화하는 과정을 상세히 설명합니다.

🔗 원문 보기

Rails 8 Monigon SaaS Boilerplate 로컬 Stripe 결제 시스템 연동 가이드

Rails 8 기반 Monigon SaaS boilerplate 애플리케이션을 로컬 환경에 설정하고, Stripe API 키 및 웹훅 시크릿을 구성하여 결제 기능을 활성화하는 과정을 상세히 설명합니다.

Ruby-News

🤩 Small features that make a big difference: the DNSimple API now sends a dedicated webhook whenever a domain changes state.

Perfect for keeping custom integrations in sync with the upstream state. For example, if you're reselling domains through DNSimple.

👉 https://blog.dnsimple.com/2026/06/domain-state-change-webhook/

#webhooks #api

📙 Incoming Webhooks: Reactions in TYPO3

The TYPO3 Core provides a convenient way to register to webhooks. Let's explore the system extension EXT:reactions and learn how to use it.

➡️ https://usetypo3.com/webhooks-and-reactions/

#TYPO3 #webhooks #reactions

Incoming Webhooks: Reactions in TYPO3

With version 12.1 the TYPO3 core provides a convenient way to register to webhooks. Let's explore the system extension EXT:reactions and learn how to use it.

Use TYPO3

New blog post: When Your Issues Have Issues: GitHub's Wobbly Webhooks

GitHub recently experienced a major incident impacting its Issues and Webhooks, reminding us just how fragile our interconnected digital world can be when the core components wobble.

https://rhodzy.com/blog/when-your-issues-have-issues-githubs-wobbly-webhooks

#github #webhooks #automation #development #techincident #m365

rhodzy.com

Santander Automação com N8N na Prática: 15 Mil Bolsas Gratuitas para Aprender IA, APIs e Automações - Guia de TI

Inscreva-se no Santander Automação com N8N na Prática e aprenda IA, APIs, Python e automações com certificado gratuito.

Guia de TI

Вебхуки оплаты ЮKassa, IP-check, event log, idempotency и аварийный capture

Платежный код обычно выглядит ровным ровно до первого реального сбоя. Пока платежи идут по ожидаемому сценарию, кажется, что достаточно создать оплату, дождаться вебхука и обновить локальный статус. Но как только вебхук приходит повторно, приходит позже нужного, прилетает от не того IP, или удаленный платеж уже живет в одном статусе, а локальная база в другом, становится ясно, что платежный контур без защит почти всегда врет. Проблема в том, что вебхук нельзя считать истиной без проверки, нельзя применять без журнала событий, нельзя подтверждать capture случайным ключом, и нельзя оставлять систему без аварийного пути, если автоматический сценарий где-то разошелся. В одном из проектов этот узел был собран так, первый платеж создается с capture=False , входящий webhook проверяется по IP, каждое событие сначала пишется в журнал, потом маршрутизируется в обработчик, capture подтверждается стабильным idempotence key, успешный платеж валидируется по сумме, валюте и metadata, а на случай расхождения остается отдельный ручной confirm, который умеет дочитать фактический статус из ЮKassa и синхронизировать локальную базу. То есть задача тут не просто принять webhook, а построить платежный контур, которому можно верить.

https://habr.com/ru/articles/1044796/

#Django #Python #YooKassa #Webhooks #Idempotency #Payments #Recurring_Payments #API #Fullstack #Backend

Вебхуки оплаты ЮKassa, IP-check, event log, idempotency и аварийный capture

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

Хабр

🎉 New at DNSimple: Get every domain state transition without polling:
Introducing the domain.state_change webhook event.

Read how to stop polling your API to track domain state changes 👇 https://blog.dnsimple.com/2026/06/domain-state-change-webhook/

#DNS #webhooks #DevTools

Taking some time to clean up my IFTTT stuff, which is how I post by email.

I wish Mastodon had, post by email, natively, but I did it using a webhook.

I did get, post by SMS working via webhooks, so this will be fun!

Question for the geeks, though. Is it best to escape URLs in webhooks? For example, the one below?

spoiler_text=From mailing list, {{EntryTitle}}&visibility=unlisted&status=You can read it online at <<<{{EntryUrl}}>>>

#AskFedi #WebHook #WebHooks #WebDev

Blue Ridge Ruby 컨퍼런스 후기와 Rails 및 Stripe 실무 인사이트

Blue Ridge Ruby 컨퍼런스를 통해 소규모 싱글 트랙 행사가 제공하는 네트워킹과 라이트닝 토크의 가치를 재확인했다.

🔗 원문 보기

Blue Ridge Ruby 컨퍼런스 후기와 Rails 및 Stripe 실무 인사이트

Blue Ridge Ruby 컨퍼런스를 통해 소규모 싱글 트랙 행사가 주는 네트워킹과 라이트닝 토크의 가치를 재확인했다.

Ruby-News | 루비 AI 뉴스