개발자
몇 줄의 코드로 통합
공개 키는 브라우저에서 결제 화면을 엽니다. 비밀 키는 서버에만 보관합니다. 결제가 확인되는 순간 웹훅이 서버에 알려 줍니다.
# 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(), }); }
모든 상태에 대한 Webhook
엔드포인트 시크릿으로 서명되며, 서버가 다운되면 자동으로 재시도하고, 대시보드에서 다시 보낼 수도 있습니다.
| 이벤트 | 발생 시점 |
|---|---|
payment.pending | 구매자가 결제를 보냈고 컨펌을 기다리는 중입니다 |
payment.confirmed | 결제가 해당 네트워크에서 필요한 컨펌 수를 충족했습니다 |
payment.settled | 자금이 트레저리 지갑으로 자동 전송됨. |
session.expired | 결제 없이 결제 화면이 만료되었습니다. 청구되는 금액은 없습니다 |
운영팀처럼 암호화폐 결제 관리하기
지갑이 아니라, 매일의 결제 운영을 위한 대시보드입니다. 가장 자주 쓰게 될 네 곳입니다.
주문 & 세션모든 결제 화면은 주문 및 결제와 연결되며, ID는 자체 주문 시스템의 ID와 일치합니다.
거래컨펌 수, 네트워크 수수료, 그리고 결제마다 결제 완료 / 대기 중 / 부족 상태를 한눈에 확인할 수 있습니다.
환불전액 또는 일부를 구매자의 지갑으로 바로 환불하거나, 구매자가 직접 주소를 입력할 수 있는 일회용 링크를 보낼 수 있습니다. 모든 환불은 기록되며 내보낼 수 있습니다.
Webhook테스트 이벤트를 보내고, 서명 시크릿을 중단 없이 교체하고, 이벤트를 직접 다시 보낼 수 있습니다. 전송에 실패하면 자동으로 재시도합니다.
결제 인프라답게 만들었습니다
서명된 API 요청서버에서 보내는 모든 요청에는 서명과 타임스탬프가 붙어, 위조하거나 오래된 요청을 재전송할 수 없습니다.
변조할 수 없는 결제 링크결제 링크는 하나의 주문에만 속합니다. 링크를 바꾸면 작동하지 않고, 만료되면 다시 쓸 수 없습니다.
이중 청구 없음네트워크 오류로 서버가 재시도해도 구매자에게는 한 번만 청구됩니다.
돈이 저희에게 머무르지 않습니다구매자는 주문 전용 주소 또는 가맹점 지갑으로 직접 결제합니다. 어느 쪽이든 돈은 가맹점에게 가며, InfraIO Pay가 공용 계정에서 구매자의 자금을 보관하는 일은 없습니다.