From 9c2e8b8024b1d32694733efae12c103113eac5f2 Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 24 Feb 2026 00:55:54 -0800 Subject: [PATCH] =?UTF-8?q?fix(auth):=20AliyunSmsProvider=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20SendSmsRequest=20=E6=9E=84=E9=80=A0=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复 request.validate is not a function 错误, dysmsapi v3 SDK 的 sendSms() 需要 SendSmsRequest 实例而非 plain object。 Co-Authored-By: Claude Opus 4.6 --- .../src/infrastructure/sms/aliyun-sms.provider.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/services/auth-service/src/infrastructure/sms/aliyun-sms.provider.ts b/backend/services/auth-service/src/infrastructure/sms/aliyun-sms.provider.ts index f6ca5b7..fc6aedd 100644 --- a/backend/services/auth-service/src/infrastructure/sms/aliyun-sms.provider.ts +++ b/backend/services/auth-service/src/infrastructure/sms/aliyun-sms.provider.ts @@ -35,12 +35,15 @@ export class AliyunSmsProvider implements ISmsProvider { const signName = process.env.ALIYUN_SMS_SIGN_NAME || '券金融'; const templateCode = this.getTemplateCode(type); - const result = await client.sendSms({ + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { SendSmsRequest } = require('@alicloud/dysmsapi20170525'); + const request = new SendSmsRequest({ phoneNumbers: phoneNumber, signName, templateCode, templateParam, }); + const result = await client.sendSms(request); if (result.body?.code === 'OK') { return {