Skip to content

이벤트 상세

각 Webhook 이벤트의 상세 정보입니다.

payment.paid

온체인 결제가 확인된 상태입니다. 사용자가 결제를 완료했고 자금이 상점으로 직접 전송되었습니다.

json
{
  "paymentId": "0xabc123...",
  "orderId": "order-001",
  "status": "PAID",
  "txHash": "0xdef789...",
  "amount": "10500000000000000000",
  "tokenSymbol": "SUT",
  "paidAt": "2024-01-26T12:35:42.000Z"
}

payment.invalid

온체인에서 결제 트랜잭션이 감지되었으나, 검증에 실패한 상태입니다. 금액, 토큰, 수신자 주소 등이 기대 값과 일치하지 않을 때 발생합니다.

json
{
  "paymentId": "0xabc123...",
  "orderId": "order-001",
  "status": "INVALID",
  "txHash": "0xdef789...",
  "amount": "10500000000000000000",
  "tokenSymbol": "SUT",
  "paidAt": "2024-01-26T12:35:42.000Z"
}

Payload 필드

필드타입설명
paymentIdstring결제 고유 식별자 (bytes32 해시)
orderIdstring가맹점 주문 ID (미제공 시 null)
statusstring이벤트 시점의 결제 상태 (PAID 또는 INVALID)
txHashstring결제 트랜잭션 해시
amountstringwei 단위 금액 (정밀도 유지를 위해 문자열)
tokenSymbolstring토큰 심볼 (예: USDC, SUT)
paidAtstringISO-8601 타임스탬프

이벤트 핸들러 예시

typescript
async function handleWebhook(payload: any) {
  const { status, orderId, paymentId } = payload;

  switch (status) {
    case 'PAID':
      await completeOrder(orderId);
      break;
    case 'INVALID':
      await flagOrderForReview(orderId);
      break;
  }
}

다음 단계

Non-custodial Web3 payment infrastructure for ERC-20 checkout, sponsored gas, and wallet-to-wallet settlement.