Skip to content

결제 상태 조회

결제의 현재 상태를 조회합니다.

  • 인증: x-public-key 헤더 필수
  • GET 요청 시 Origin 헤더 대신 x-origin 헤더 사용 가능 (프록시 환경)

REST API

bash
curl https://gateway.dev.solonetwork.io/api/v1/payments/0xabc123... \
  -H "x-public-key: pk_xxxxx"

응답

성공 (200 OK)

json
{
  "success": true,
  "data": {
    "paymentId": "0xabc123...",
    "orderId": "order-001",
    "status": "PAID",
    "chainId": 80002,
    "tokenAddress": "0xE4C687167705Abf55d709395f92e254bdF5825a2",
    "tokenSymbol": "SUT",
    "tokenDecimals": 18,
    "tokenPermitSupported": true,
    "gatewayAddress": "0x...",
    "forwarderAddress": "0x...",
    "amount": "10500000000000000000",
    "recipientAddress": "0xMerchantWallet...",
    "merchantId": "0x...",
    "deadline": "1706281200",
    "successUrl": "https://example.com/success",
    "failUrl": "https://example.com/fail",
    "expiresAt": "2024-01-26T12:35:00.000Z",
    "txHash": "0xdef789...",
    "payerAddress": "0x...",
    "createdAt": "2024-01-26T12:30:00Z",
    "currency": "USD",
    "fiatAmount": 10.5,
    "tokenPrice": 1.0
  }
}
  • txHash -- 결제 트랜잭션 해시. 사용자가 결제를 완료하여 PAID 이후 상태일 때 존재합니다.

주요 응답 필드

필드타입설명
paymentIdstring결제 고유 ID
orderIdstring가맹점 주문 ID
statusstring결제 상태 (CREATED, PAID, EXPIRED, ...)
amountstringwei 단위 토큰 금액currency 사용 여부와 무관하게 항상 wei
tokenAddressstring결제 토큰 컨트랙트 주소
tokenSymbolstring토큰 심볼 (예: USDT)
tokenDecimalsnumber토큰 소수점 자릿수 (amount 환산 시 사용)
currencystring|null법정화폐 코드 — 결제 생성 시 currency를 지정한 경우만 존재
fiatAmountnumber|null원본 법정화폐 금액 (currency 단위) — 결제 생성 시 currency를 지정한 경우만 존재
tokenPricenumber|null환산에 사용된 최근 1시간 평균 토큰 가격(TWAP) (currency 단위) — 결제 생성 시 currency를 지정한 경우만 존재
recipientAddressstring가맹점 수취 주소
txHashstring|null결제 트랜잭션 해시 (PAID 이후 존재)

금액 검증 시 단위 주의

사용자가 결제 요청 시 currency를 지정해 fiat 금액(예: 25.5 USD)으로 보냈더라도, 응답의 amount는 항상 wei 단위로 환산된 토큰 금액입니다. 가맹점 DB에 저장한 fiat 금액과 검증하려면 amount가 아니라 currency + fiatAmount를 비교해야 합니다. 자세한 검증 체크리스트는 위젯 가이드의 결제 결과 검증 섹션을 참고하세요.

상태 흐름

CREATED ──► PAID
CREATED ──► INVALID
CREATED ──► EXPIRED
CREATED ──► FAILED
PAID    ──► REFUND_SUBMITTED ──► REFUNDED

상태 설명

상태설명다음 액션
CREATED결제 생성됨, 온체인 트랜잭션 대기사용자가 결제 진행
PAID온체인 결제 확인됨없음 (종료 - 성공)
REFUND_SUBMITTED환불 요청 제출됨 (개발 중)REFUNDED 될 때까지 대기
REFUNDED환불 완료됨 (개발 중)없음 (종료)
INVALID온체인 결제 검증 실패 (금액/토큰/수신자 불일치)새 결제 생성
EXPIRED만료 (5분 초과)새 결제 생성
FAILED트랜잭션 실패새 결제 생성

온체인 동기화

GET /payments/:id 호출 시 블록체인과 DB 상태를 실시간으로 동기화합니다. 결제 성공 시 상태는 PAID(온체인 결제 확인, 자금이 상점으로 직접 전송됨)가 됩니다.

다음 단계

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