# Create order + session in one call curl -X POST https://api.infraio.xyz/v1/quick-checkout \ -H "Authorization: Bearer sk_live_…" \ -H "Idempotency-Key: order_8412" \ -d '{ "amount": "1000.00", "currency": "USD", "success_url": "https://shop.example/thanks" }' # → 201 Created { "checkout_url": "https://pay.infraio.xyz/c/s_9f2…", "expires_in": 900 }
노코드로 시작하고, 준비되면 API 우선으로.
어떤 웹 앱에도 SDK를 넣으세요
한 번의 import, 한 번의 호출. 호스티드 체크아웃을 팝업·리다이렉트·임베드로 열고, 환불 폼도 같은 방식으로 엽니다.
import { loadInfraIo } from "@lartech/infraio-checkout-js"; // Open hosted checkout from a session async function payNow(sessionKey, checkoutUrl) { const sdk = await loadInfraIo("pk_live_yourkeyhere"); sdk.checkout({ sessionId: sessionKey, checkoutUrl, mode: "popup", // "popup" | "redirect" | "embed" onSuccess: ({ sessionId }) => fulfill(sessionId), onCancel: () => showRetry(), }); }
모든 상태에 대한 웹훅
엔드포인트 시크릿으로 서명, 백오프로 재시도, 대시보드에서 재전송 가능.
| 이벤트 | 발생 시점 |
|---|---|
payment.pending | 구매자가 트랜잭션을 브로드캐스트함; 컨펌 대기 중. |
payment.confirmed | 트랜잭션이 네트워크 컨펌 임계치에 도달함. |
payment.settled | 자금이 정산 지갑으로 스윕됨. |
session.expired | 결제 없이 체크아웃 창이 닫힘. 청구 없음. |
운영팀처럼 암호화폐 결제 관리하기
지갑이 아닌 운영 콘솔처럼 구축된 대시보드. 가맹점이 매일 사용하는 네 가지 화면.
주문 & 세션모든 체크아웃은 주문, 결제 인텐트, 불변 세션으로 추적됩니다. 주문 처리 파이프라인에서 키 값으로 사용할 수 있는 안정적인 ID를 제공합니다.
거래온체인 정산, 확인, 네트워크 수수료, 인텐트별로 명확한 paid / awaiting / underpaid 상태.
환불부분 또는 전액, 원래 지갑으로 직접 환불하거나, 구매자가 직접 수신지를 입력할 수 있도록 일회용 링크를 발송합니다. 감사 추적 및 내보내기 가능.
Webhook엔드포인트별 테스트 핑, 유예 기간 있는 시크릿 로테이션, 6단계 지연 재시도 큐, 데드레터 아웃박스 + 셀프서비스 재전송.
암호화폐 위젯이 아닌, 결제 인프라처럼 구축
HMAC 서명된 B2B API모든 서버 요청은 서명 및 타임스탬프(X-Client-ID, X-Timestamp, X-Signature)가 적용됩니다. 모든 엔드포인트에서 상수 시간 검증, ±5분 재전송 허용 윈도우.
세션 범위의 체크아웃 URL각 체크아웃 URL은 단일 session_key에 바인딩됩니다. 변조 시 요청이 무효화되고, 만료된 세션은 재사용할 수 없습니다, 정리 워커가 lazy + 예약 처리로 EXPIRED 상태로 전환합니다.
멱등성 키안전한 재시도. 중복 주문은 단일 결제 인텐트로 합쳐집니다, 네트워크 오류 시 재시도 경로에서 절대 이중 결제나 이중 발행이 발생하지 않습니다.
결정론적 입금 주소각 체크아웃은 사전에 도출된 자체 EVM 입금 주소를 받으므로, 구매자는 해당 주문에 정확히 바인딩된 슬롯으로 결제합니다. 이후 자금은 온체인에서 가맹점의 정산 지갑으로 스윕되며, InfraIO는 핫 지갑(Hot wallet)에 구매자의 자금을 절대 보유하지 않습니다.