콘텐츠로 이동

parseTossTimestamp — @gj-kit/toss-payments

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

import { parseTossTimestamp } from '@gj-kit/toss-payments/webhook';
/**
* 토스 웹훅 createdAt 3형식 관대 파서.
*
* 이벤트마다 형식이 다르다(문서):
* 1. 구형 이벤트: `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` — 마이크로초 6자리, 오프셋 없음
* 2. DEPOSIT_CALLBACK/신형 이벤트: `yyyy-MM-dd'T'HH:mm:ss±hh:mm` — 오프셋 형식
* 3. 밀리초 형식(`...ss.SSS`, 오프셋 유무 무관) — 관대 수용
*
* 오프셋이 없는 형식은 **KST(+09:00)로 해석**한다 — 비공식 유도: 토스 문서의
* 오프셋 포함 예시가 전부 +09:00이고 무오프셋 형식과 같은 시스템에서 발신되므로,
* JS 기본(로컬 타임존) 해석은 UTC 서버에서 9시간 어긋난다.
* 초과 정밀도(마이크로초 이하)는 밀리초로 절단한다.
*/
declare function parseTossTimestamp(raw: string): Result<Date, {
readonly kind: 'bad-timestamp';
readonly raw: string;
}>;

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

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

토스 웹훅 createdAt 3형식 관대 파서.

이벤트마다 형식이 다르다(문서):

  1. 구형 이벤트: yyyy-MM-dd'T'HH:mm:ss.SSSSSS — 마이크로초 6자리, 오프셋 없음
  2. DEPOSIT_CALLBACK/신형 이벤트: yyyy-MM-dd'T'HH:mm:ss±hh:mm — 오프셋 형식
  3. 밀리초 형식(...ss.SSS, 오프셋 유무 무관) — 관대 수용

오프셋이 없는 형식은 KST(+09:00)로 해석한다 — 비공식 유도: 토스 문서의 오프셋 포함 예시가 전부 +09:00이고 무오프셋 형식과 같은 시스템에서 발신되므로, JS 기본(로컬 타임존) 해석은 UTC 서버에서 9시간 어긋난다. 초과 정밀도(마이크로초 이하)는 밀리초로 절단한다.