콘텐츠로 이동

PaymentStateInput — @gj-kit/toss-payments

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

import { PaymentStateInput } from '@gj-kit/toss-payments/server';
/**
* The minimal structural input {@link summarizePaymentState} actually reads — exactly these
* eight fields, nothing else (verified against the implementation: the lifecycle, amount and
* consistency judgments consume `status`/`totalAmount`/`balanceAmount`/`lastTransactionKey`/
* `isPartialCancelable`/`cancels`, and the snapshot carries `paymentKey`/`orderId`).
*
* A full `Payment` is always assignable — including a fresh inline object literal:
* {@link summarizePaymentState} is typed `PaymentStateInput | Payment`, and the `Payment`
* union member exists solely so TypeScript's excess-property check accepts literals that
* spell out non-Pick `Payment` fields (`version`, `requestedAt`, …). Existing call sites
* compile unchanged. The point of the reduced shape is the opposite direction: an app-owned
* payment view that stripped `raw`/`secret`/card details can still produce a snapshot,
* **provided its eight fields are faithful copies of a real Payment response**. Do not fabricate `lastTransactionKey`,
* `isPartialCancelable` or `cancels` to satisfy the type — the consistency and
* cancelability judgments would then describe your fabrication, not the provider state.
*/
type PaymentStateInput = Pick<Payment, "paymentKey" | "orderId" | "status" | "totalAmount" | "balanceAmount" | "lastTransactionKey" | "isPartialCancelable" | "cancels">;

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

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

The minimal structural input {@link summarizePaymentState} actually reads — exactly these eight fields, nothing else (verified against the implementation: the lifecycle, amount and consistency judgments consume status/totalAmount/balanceAmount/lastTransactionKey/ isPartialCancelable/cancels, and the snapshot carries paymentKey/orderId).

A full Payment is always assignable — including a fresh inline object literal: {@link summarizePaymentState} is typed PaymentStateInput | Payment, and the Payment union member exists solely so TypeScript’s excess-property check accepts literals that spell out non-Pick Payment fields (version, requestedAt, …). Existing call sites compile unchanged. The point of the reduced shape is the opposite direction: an app-owned payment view that stripped raw/secret/card details can still produce a snapshot, provided its eight fields are faithful copies of a real Payment response. Do not fabricate lastTransactionKey, isPartialCancelable or cancels to satisfy the type — the consistency and cancelability judgments would then describe your fabrication, not the provider state.