콘텐츠로 이동

srt_mobile_api.consent

상태변경 동의와 미리보기 — 기본값은 아무것도 하지 않는 것.

  • MutationConsent: allow_* 전부 False, dry_run=True 기본.
  • fake_card_only / real_card_acknowledged: 정확히 하나 켜야 전송 허용.
  • 5개 범주 중 4개만 전송 가능 (coupon은 preview만).

MUTATION_CATEGORIES module-attribute

MUTATION_CATEGORIES = ('reserve', 'payment', 'cancel', 'refund', 'coupon')

MutationCategory module-attribute

MutationCategory = Literal['reserve', 'payment', 'cancel', 'refund', 'coupon']

MutationConsent dataclass

MutationConsent(allow_reserve=False, allow_payment=False, allow_cancel=False, allow_refund=False, dry_run=True, fake_card_only=True, real_card_acknowledged=False, allow_coupon=False)

범주별 명시적 동의. 기본: 전부 거절, dry_run=True.

fake_card_only와 real_card_acknowledged는 배타적 주장 — 전송 게이트가 정확히 하나를 요구. 이 두 플래그는 아무것도 제한하지 않습니다 — 카드번호를 검사하지 않으며, 실제 청구를 가르는 것은 allow_payment과 dry_run.

allow_reserve class-attribute instance-attribute

allow_reserve = False

allow_payment class-attribute instance-attribute

allow_payment = False

allow_cancel class-attribute instance-attribute

allow_cancel = False

allow_refund class-attribute instance-attribute

allow_refund = False

dry_run class-attribute instance-attribute

dry_run = True

fake_card_only class-attribute instance-attribute

fake_card_only = True

real_card_acknowledged class-attribute instance-attribute

real_card_acknowledged = False

allow_coupon class-attribute instance-attribute

allow_coupon = False

MutationPreview dataclass

MutationPreview(category, method, route, payload, note='dry-run: not sent')

dry-run 결과 — 만들어졌지만 보내지지 않은 요청. payload는 항상 마스킹됨.

category instance-attribute

category

method instance-attribute

method

route instance-attribute

route

payload instance-attribute

payload

note class-attribute instance-attribute

note = 'dry-run: not sent'
require_mutation_consent(consent, category)

consent가 category를 명시 허용하지 않으면 SrtMutationNotAllowedError.

require_card_kind_claim

require_card_kind_claim(consent)

결제 consent가 fake_card_only / real_card_acknowledged 중 정확히 하나를 요구.