// This file is auto-generated, don't edit it import Dysmsapi20170525, * as $Dysmsapi20170525 from '@alicloud/dysmsapi20170525'; // 依赖的模块可通过下载工程中的模块依赖文件或右上角的获取 SDK 依赖信息查看 import * as $OpenApi from '@alicloud/openapi-client'; import Util, * as $Util from '@alicloud/tea-util'; import { Context, Inject, Provide } from '@midwayjs/core'; @Provide() export class SmsService { @Inject() ctx: Context; /** * 使用AK&SK初始化账号Client * @param accessKeyId * @param accessKeySecret * @return Client * @throws Exception */ createClient(accessKeyId: string, accessKeySecret: string): Dysmsapi20170525 { const config = new $OpenApi.Config({ accessKeyId, accessKeySecret }); // 访问的域名 config.endpoint = `dysmsapi.aliyuncs.com`; return new Dysmsapi20170525(config); } async send({ code, phoneNumbers }): Promise { // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378664.html const client = this.createClient( process.env['ACCESSKEY_ID'], process.env['ACCESSKEY_SECRET'] ); const sendSmsRequest = new $Dysmsapi20170525.SendSmsRequest({ phoneNumbers: phoneNumbers, signName: '寻鹿网', templateCode: 'SMS_186510297', templateParam: `{"code":"${code}"}`, }); const runtime = new $Util.RuntimeOptions({}); try { // 复制代码运行请自行打印 API 的返回值 await client.sendSmsWithOptions(sendSmsRequest, runtime); } catch (error) { throw new Error(Util.assertAsString(error.message)); } } }