Skip to main content

소개

결제 이벤트가 발생하면 Inngest functions 및 background jobs를 실행합니다. Dodo Payments는 각 이벤트를 Inngest로 전송하며, 여기서 functions를 사용해 알림을 보내고, 데이터베이스를 업데이트하고, Inngest의 retries 및 error handling을 활용해 여러 단계의 workflows를 실행할 수 있습니다.
Inngest webhook URL이 필요합니다. Inngest dashboard의 Manage → Webhooks에서 생성합니다.

시작하기

1

Open the Webhook Section

Dodo Payments 대시보드에서 개발자 → 웹훅으로 이동한 다음 엔드포인트 추가를 클릭합니다.
Integration 드롭다운에서 Inngest가 선택된 엔드포인트 추가 대화 상자
2

Select Inngest

Integration에서 Inngest를 선택합니다. Subscribed events에서 functions를 트리거할 이벤트를 선택합니다.
3

Create an Inngest Webhook

Inngest dashboard에서 Manage 탭을 열고 Webhooks를 선택합니다. webhook을 생성하고 URL을 복사합니다. Inngest는 각 요청에서 webhook의 transform function을 실행하므로, functions에 필요한 name 및 data 필드가 유지되는지 확인합니다.
4

Paste Webhook URL

Inngest webhook URL을 Endpoint URL에 붙여넣습니다.
5

Configure Transformation

Transformation code에서 코드를 편집하여 Inngest functions에 맞는 형식으로 이벤트를 지정합니다. 자세한 내용은 아래 예시를 참조하세요.
6

Test & Create

Test this code에서 이벤트 유형을 선택하고 Simulate를 클릭하여 샘플 payload에 transformation을 실행합니다. 그런 다음 Create endpoint를 클릭하여 integration을 활성화합니다.
7

Done

이제 Dodo Payments 이벤트가 Inngest functions를 트리거합니다.

변환 코드 예제

각 예시는 webhook.payload를 Inngest event로 다시 작성합니다. name는 function이 트리거되는 event이고, data에는 event details가 저장되며, user에는 customer가 저장됩니다. ts는 밀리초 단위의 event time이며 Inngest의 event format에 필요합니다.

Basic Event Payload

basic_event.js

Subscription Event Handler

subscription_event.js

Dispute Event Handler

이 handler는 모든 dispute.* event를 전달하고 dispute.opened를 긴급 항목으로 표시합니다. Dispute payload에는 customer details가 포함되지 않으므로 user object를 전송하지 않습니다.
dispute_event.js

일반적인 Inngest 사용 사례

  • 확인 이메일 보내기
  • customer records 업데이트
  • refunds 처리
  • invoices 생성
  • inventory 업데이트
  • 신규 subscribers 환영하기
  • cancellations 처리
  • renewal reminders 보내기
  • billing cycles 업데이트
  • failed payments 처리
  • revenue metrics 업데이트
  • customer behavior 추적
  • reports 생성
  • analytics platforms에 데이터 동기화
  • churn rates 계산

팁

  • 설명이 명확한 event names를 사용합니다. Inngest는 dodo/payment.succeeded와 같이 source를 접두사로 추가하는 방식을 권장합니다.
  • customer details는 user에 저장합니다. Inngest는 저장된 데이터를 암호화합니다.
  • webhook의 timestamp에서 ts를 밀리초 단위로 설정하여 event가 원래 순서와 시간을 유지하도록 합니다.
  • 모든 event에서 동일한 data structure를 사용합니다.
  • Inngest의 retry 및 error handling features를 사용합니다.

문제 해결

  • endpoint URL이 Inngest webhook URL과 일치하고 webhook이 활성 상태인지 확인합니다.
  • Inngest function이 배포되어 활성 상태인지 확인합니다.
  • event names가 function triggers와 일치하는지 확인합니다.
  • Inngest function logs에서 errors를 검토합니다.
  • payload structure가 Inngest event format과 일치하는지 확인합니다.
  • event names가 올바르게 formatted되었는지 확인합니다.
  • Inngest webhook의 transform function이 Dodo Payments transformation에서 설정한 fields를 유지하는지 확인합니다.
  • 필요한 모든 fields가 포함되었는지 확인합니다.
  • Inngest의 webhook testing tool로 테스트합니다.
마지막 수정일 2026년 9월 26일