48 lines
1.8 KiB
TypeScript
48 lines
1.8 KiB
TypeScript
// 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<void> {
|
||
// 工程代码泄露可能会导致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));
|
||
}
|
||
}
|
||
}
|