콘텐츠로 이동

SerializedPaymentStateSnapshot — @gj-kit/toss-payments

@gj-kit/toss-payments/server에서 공개하는 interface입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.

import { SerializedPaymentStateSnapshot } from '@gj-kit/toss-payments/server';
/**
* Brand-free, JSON-ready form of {@link PaymentStateSnapshot}.
*
* Identical field-for-field, except `paymentKey`/`orderId` are plain `string`s — safe to put
* in a response DTO, a queue message or a jsonb column without exporting the branded id types
* across your provider boundary. Every other field is already a JSON primitive, a plain
* object array, or `null`. A `PaymentStateSnapshot` is assignable to this type (brands are
* strings underneath); the reverse direction must go through
* {@link parsePaymentStateSnapshot}.
*
* JSON caveat: a snapshot whose `consistencyIssues` include `invalid-amount` with
* `reason: 'not-safe-integer'` may carry non-finite numbers (`NaN`/`Infinity`), which
* `JSON.stringify` silently turns into `null` — the later parse then rejects the value
* honestly instead of resurrecting a fake amount. Check `consistencyIssues` before
* persisting a snapshot as JSON.
*/
interface SerializedPaymentStateSnapshot {
readonly schemaVersion: 1;
readonly paymentKey: string;
readonly orderId: string;
readonly status: PaymentStatus;
readonly lifecycle: PaymentLifecycle;
readonly totalAmount: number;
readonly balanceAmount: number;
readonly lastTransactionKey: string | null;
readonly canceledAmount: number;
readonly amountState: PaymentAmountState;
readonly hasPendingCancellation: boolean;
readonly hasAbortedCancellation: boolean;
readonly isCancelable: boolean;
readonly isPartiallyCancelable: boolean;
readonly cancels: readonly PaymentCancelTransactionSnapshot[];
readonly consistencyIssues: readonly PaymentStateConsistencyIssue[];
}

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

  • 패키지: @gj-kit/toss-payments
  • 버전: 0.6.1
  • 공개 entry: ./server
  • 소스: GitHub

Brand-free, JSON-ready form of {@link PaymentStateSnapshot}.

Identical field-for-field, except paymentKey/orderId are plain strings — safe to put in a response DTO, a queue message or a jsonb column without exporting the branded id types across your provider boundary. Every other field is already a JSON primitive, a plain object array, or null. A PaymentStateSnapshot is assignable to this type (brands are strings underneath); the reverse direction must go through {@link parsePaymentStateSnapshot}.

JSON caveat: a snapshot whose consistencyIssues include invalid-amount with reason: 'not-safe-integer' may carry non-finite numbers (NaN/Infinity), which JSON.stringify silently turns into null — the later parse then rejects the value honestly instead of resurrecting a fake amount. Check consistencyIssues before persisting a snapshot as JSON.