BillingKeyStore — @gj-kit/toss-payments
@gj-kit/toss-payments/server에서 공개하는 interface입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.
검증된 import 예제
섹션 제목: “검증된 import 예제”import { BillingKeyStore } from '@gj-kit/toss-payments/server';시그니처, 매개변수, 반환 타입
섹션 제목: “시그니처, 매개변수, 반환 타입”/** 저장소 필수 주입 — 토스에 빌링키 조회 API가 없다: 저장이 유일한 보관 수단. */interface BillingKeyStore { /** * record를 upsert한다. `operationId`는 발급 뒤 별도 projection을 같은 customerKey * fence 안에서 마무리해야 하는 소비자를 위한 비밀이 아닌 상관관계 식별자다. * * 구현은 값을 로그에 남기지 말고, 지원한다면 현재 row와 원자적으로 대조할 수 있는 * fingerprint/receipt만 보관해야 한다. 일반 save만 필요한 소비자는 생략할 수 있다. */ save(record: BillingKeyRecord, options?: BillingKeySaveOptions): Promise<void>; find(customerKey: CustomerKey): Promise<BillingKeyRecord | null>; /** * 현재 저장된 billing key가 `expectedBillingKey`일 때만 원자적으로 삭제한다. * * `false`는 행이 없거나 더 새 키로 교체되어 아무 것도 지우지 않았다는 안전한 결과다. * `find()` 후 일반 delete로 흉내 내면 재발급과 경합해 새 키를 지울 수 있으므로, * 프로덕션 구현은 하나의 DB 조건문/CAS 또는 잠금 transaction으로 비교와 삭제를 * 함께 수행해야 한다. 저장소 실패만 throw한다. */ delete(request: BillingKeyDeleteRequest): Promise<boolean>;}이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.
Release context
섹션 제목: “Release context”- 패키지:
@gj-kit/toss-payments - 버전:
0.6.1 - 공개 entry:
./server - 소스: GitHub
구현 주석
섹션 제목: “구현 주석”저장소 필수 주입 — 토스에 빌링키 조회 API가 없다: 저장이 유일한 보관 수단.