手机号核销确认

This commit is contained in:
2026-07-12 10:34:58 +08:00
parent 7f031cc4c2
commit d949301bc1
17 changed files with 1285 additions and 215 deletions
+3
View File
@@ -16,6 +16,8 @@ export interface AppConfig {
ossEnabled: boolean;
aliyunSmsSignName: string;
aliyunSmsTemplateCode: string;
/** 核销确认短信模板(REDEEM_PHONE_CONFIRM);未配置时回退 aliyunSmsTemplateCode */
aliyunSmsRedeemConfirmTemplateCode: string;
aliyunSmsAccessKeyId: string;
aliyunSmsAccessKeySecret: string;
/** 腾讯位置服务 Key(逆地理编码) */
@@ -45,6 +47,7 @@ export function loadAppConfig(env?: Record<string, string | undefined>): AppConf
ossEnabled: e.OSS_ENABLED === 'true',
aliyunSmsSignName: e.ALIYUN_SMS_SIGN_NAME ?? '',
aliyunSmsTemplateCode: e.ALIYUN_SMS_TEMPLATE_CODE ?? '',
aliyunSmsRedeemConfirmTemplateCode: e.ALIYUN_SMS_REDEEM_CONFIRM_TEMPLATE_CODE ?? '',
aliyunSmsAccessKeyId: e.ALIYUN_SMS_ACCESS_KEY_ID ?? e.OSS_ACCESS_KEY_ID ?? '',
aliyunSmsAccessKeySecret: e.ALIYUN_SMS_ACCESS_KEY_SECRET ?? e.OSS_ACCESS_KEY_SECRET ?? '',
tencentLbsKey: e.TENCENT_LBS_KEY ?? '',
+6
View File
@@ -23,6 +23,10 @@ export enum SmsScene {
HQ_LOGIN = 'HQ_LOGIN',
BIND_PHONE = 'BIND_PHONE',
PARTNER_STAFF_ADD = 'PARTNER_STAFF_ADD',
/** 门店手机号核销:查询用户权益前验证码(发至用户手机) */
REDEEM_PHONE_LOOKUP = 'REDEEM_PHONE_LOOKUP',
/** 门店手机号核销:核销确认验证码(阿里云模板「核销确认」) */
REDEEM_PHONE_CONFIRM = 'REDEEM_PHONE_CONFIRM',
}
export enum OrderStatus {
@@ -141,3 +145,5 @@ export const REDEEM_TOKEN_TTL_SECONDS = 180;
export const SMS_CODE_TTL_SECONDS = 180;
/** 核销成功后供用户端轮询结果,略长于 token TTL */
export const REDEEM_RESULT_TTL_SECONDS = 360;
/** 手机号核销会话 TTL(查权益 → 选金额 → 确认) */
export const REDEEM_PHONE_SESSION_TTL_SECONDS = 600;
+18
View File
@@ -26,3 +26,21 @@ export interface RedeemRecordDto {
settleAmount: number;
createdAt: string;
}
export interface RedeemPhoneBalanceDto {
sessionId: string;
totalBalance: number;
maskedPhone: string;
user: {
id: string;
userNo?: string | null;
nickname?: string | null;
phone?: string | null;
};
}
export interface RedeemPhonePrepareDto {
sessionId: string;
amount: number;
expireInSeconds: number;
}