63 lines
2.3 KiB
JavaScript
63 lines
2.3 KiB
JavaScript
import Dysmsapi20170525, * as $Dysmsapi20170525 from '@alicloud/dysmsapi20170525';
|
||
import * as $OpenApi from '@alicloud/openapi-client';
|
||
import * as $Util from '@alicloud/tea-util';
|
||
export class AliSmsInstance {
|
||
accessKeyId;
|
||
accessKeySecret;
|
||
endpoint;
|
||
client;
|
||
constructor(accessKeyId, accessKeySecret, endpoint) {
|
||
this.accessKeyId = accessKeyId;
|
||
this.accessKeySecret = accessKeySecret;
|
||
this.endpoint = endpoint || 'dysmsapi.aliyuncs.com'; // 目前国内终端域名相同
|
||
let config = new $OpenApi.Config({
|
||
// 必填,您的 AccessKey ID
|
||
accessKeyId: accessKeyId,
|
||
// 必填,您的 AccessKey Secret
|
||
accessKeySecret: accessKeySecret,
|
||
endpoint: this.endpoint,
|
||
});
|
||
this.client = new Dysmsapi20170525(config);
|
||
}
|
||
async sendSms(params) {
|
||
const { phoneNumbers, templateParam = {}, templateCode, signName, } = params;
|
||
let sendSmsRequest = new $Dysmsapi20170525.SendSmsRequest({
|
||
phoneNumbers: phoneNumbers instanceof Array
|
||
? phoneNumbers.join(',')
|
||
: phoneNumbers,
|
||
templateParam: JSON.stringify(templateParam),
|
||
templateCode: templateCode,
|
||
signName: signName,
|
||
});
|
||
try {
|
||
const data = await this.client.sendSmsWithOptions(sendSmsRequest, new $Util.RuntimeOptions({}));
|
||
const { statusCode, body } = data;
|
||
if (statusCode != 200) {
|
||
throw new Error(`sendSms接口返回状态码错误,为${statusCode}`);
|
||
}
|
||
return body;
|
||
}
|
||
catch (error) {
|
||
throw error;
|
||
}
|
||
}
|
||
async syncTemplate(params) {
|
||
const { pageIndex, pageSize } = params;
|
||
try {
|
||
let querySmsTemplateListRequest = new $Dysmsapi20170525.QuerySmsTemplateListRequest({
|
||
pageIndex,
|
||
pageSize,
|
||
});
|
||
const result = await this.client.querySmsTemplateListWithOptions(querySmsTemplateListRequest, new $Util.RuntimeOptions({}));
|
||
const { statusCode, body } = result;
|
||
if (statusCode != 200) {
|
||
throw new Error(`syncTemplate接口返回状态码错误,为${statusCode}`);
|
||
}
|
||
return body;
|
||
}
|
||
catch (err) {
|
||
throw err;
|
||
}
|
||
}
|
||
}
|