//go:build dev || test package payments // twoFADeliveryAvailable reports whether a 2FA code delivery channel exists in // this build. Dev/test builds always have one — the [2FA] log line is the // documented loose-fake delivery channel — so the 2FA BACKUP authorization // (the saved-card gate when SCA is unavailable) is always usable here. Mirrors // handlers/user/twofa_dev.go; production builds decide in // twofa_delivery_prod.go. func twoFADeliveryAvailable() bool { return true } // twoFAReissueIssueAllowed is the re-issue path's issuance gate // (reissueTwoFACodeAfterFailedCharge, handlers.go), mirroring the user // package's twoFAEnsureIssueAllowed build-tagged semantics: dev/test builds // always allow issuance — the [2FA] log line is the delivery channel and the // unsalted-digest fallback is the documented loose-fake stand-in (matching // twofa_dev.go). Production builds fail closed here — no pepper, no delivery // channel, no codes (see twofa_delivery_prod.go). func twoFAReissueIssueAllowed() error { return nil }