Skip to Content
시작하기소개

소개

결제의 구조

InfraIO Pay를 연동하는 가맹점은 네 가지 구성 요소를 다루게 됩니다.

체크아웃 세션

서버 측에서 라인 아이템과 합계를 포함하여 세션을 생성합니다. 응답에는 session_key(cst_…)와 checkout_url이 포함됩니다. 세션은 TTL이 적용되며 (기본값 30분) 일회용입니다.

호스팅 체크아웃 페이지

브라우저 SDK를 로드하고 세션을 엽니다 — 팝업, 리디렉션, 또는 임베드된 iframe 방식 중에서 선택할 수 있습니다. 구매자는 체인 × 자산(Polygon의 USDT, Base의 ETH 등)을 선택하고, 생성된 입금 주소와 QR 코드를 확인한 후 지갑에서 자금을 전송합니다.

결제 확인

payment-service는 해당 체인에서 세션의 입금 주소와 일치하는 인바운드 송금을 감시합니다. 설정된 확인 수(예: Ethereum 메인넷 12, Polygon 5 — 체인 및 자산 참조)에 도달하면, 근간이 되는 PaymentIntent는 SETTLED로 이동하고 상위 Order는 PAID로 이동합니다.

웹훅

저희는 서명된 payment.settled 이벤트를 가맹점이 등록한 웹훅 URL로 POST 합니다. 가맹점 서버에서 서명을 검증한 후, external_ref를 통해 자체 주문과 매핑하고 이행 처리를 진행합니다.

데이터 모델 한눈에 보기

CheckoutSession ← 1:1 → Order ← 1:N → PaymentIntent (TTL 적용) (영구 기록) (결제 시도당 1개)

가맹점은 이행 처리를 Order 기준으로 생각하고, 결제를 받기 위해 Session을 생성하며, 재시도와 체인 선택은 시스템이 백그라운드에서 PaymentIntent로 관리합니다.

저희가 처리하는 부분 vs 가맹점이 처리하는 부분

InfraIO Pay가 처리가맹점이 처리
호스팅 체크아웃 UI(입금 주소, QR, 자산 선택기)자체 DB에서 카탈로그 및 Order 생성
8개 EVM 체인 전반의 체인 모니터링 및 확인 로직웹훅 수신기 및 서명 검증
멀티 자산 체크아웃(USDT, USDC, 체인별 네이티브 ETH/BNB/POL/MNT)external_ref를 통해 저희의 order_id와 가맹점 주문 ID 매핑
환불 회계 처리(상태 머신, 대시보드, API)온체인 환불 트랜잭션 서명 및 브로드캐스트
테스트 모드 키 및 격리된 테스트 웹훅포셋(faucet)에서 테스트넷 지갑 자금 조달

저희는 가맹점 자금을 수탁하지 않습니다. 구매자에서 가맹점으로의 송금은 온체인에서 직접 이루어지며, 저희는 송금이 완료되었음을 알려주는 인덱서 + 리컨실리에이션 레이어입니다.

테스트 모드 vs 라이브 모드

모든 계정은 테스트 모드로 시작합니다. 테스트 키는 pk_test_ / sk_test_ 프리픽스를 가집니다. 라이브 키(pk_live_ / sk_live_)는 다음 조건을 충족해야 발급됩니다.

  1. KYB 완료
  2. 트레저리 지갑 어테스테이션(수신을 원하는 각 체인에서 목적지 지갑을 제어함을 증명하는 메시지에 서명)

동일한 API 기본 URL이 두 환경 모두에서 사용됩니다 — 환경은 URL이 아닌 키 프리픽스에 의해 결정됩니다. 테스트 모드는 실제 테스트넷(Sepolia, Base Sepolia, BSC Testnet 등)에서 동작하며, 모의 체인은 없습니다. 테스트 결제를 트리거하려면 포셋에서 받은 실제 테스트넷 자금이 필요합니다.

InfraIO Pay가 아닌 것

  • 수탁 기관이 아닙니다. 자금은 온체인에서 구매자 → 가맹점 지갑으로 직접 이동합니다. 저희는 잔액을 보유하지 않습니다.
  • 지갑 제공자가 아닙니다. 고객은 자신의 지갑을 가져옵니다. 호스팅 체크아웃에는 WalletConnect 옵션이 내장되어 있지만 네이티브 수탁 기능은 없습니다.
  • 법정화폐 램프가 아닙니다. 구매자는 보유한 암호화폐 자산으로 결제하며, 저희는 변환을 수행하지 않습니다.
  • 현재 Tron 또는 Solana 게이트웨이가 아닙니다. EVM 우선입니다. 지원되는 체인 매트릭스는 체인 및 자산을 참조하세요.

다음 단계