46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
import { assert } from 'oak-domain/lib/utils/assert';
|
|
import { get } from 'oak-domain/lib/utils/lodash';
|
|
import SDK from 'oak-external-sdk/lib/SmsSdk';
|
|
export default class Ali {
|
|
name = 'ali';
|
|
getConfig(context) {
|
|
const { system } = context.getApplication();
|
|
const { config: systemConfig } = system;
|
|
const aliConfig = get(systemConfig, 'Sms.ali.0', {});
|
|
const { accessKeyId, accessKeySecret, defaultSignName, endpoint } = aliConfig;
|
|
assert(accessKeyId, 'accessKeyId未配置');
|
|
assert(accessKeySecret, 'accessKeySecret未配置');
|
|
assert(defaultSignName, 'defaultSignName未配置');
|
|
assert(endpoint, 'endpoint未配置');
|
|
return aliConfig;
|
|
}
|
|
async syncTemplate(systemId) {
|
|
// todo
|
|
return [];
|
|
}
|
|
async sendSms(params, context) {
|
|
const { mobile, templateParam, smsTemplate } = params;
|
|
const { templateCode } = smsTemplate;
|
|
const { accessKeyId, accessKeySecret, defaultSignName, endpoint } = this.getConfig(context);
|
|
const aliInstance = SDK.getInstance('ali', accessKeyId, accessKeySecret, endpoint);
|
|
const result = await aliInstance.sendSms({
|
|
phoneNumbers: [mobile],
|
|
templateCode: templateCode,
|
|
templateParam: templateParam,
|
|
signName: defaultSignName,
|
|
});
|
|
const { code, message, requestId } = result;
|
|
if (code === 'Ok') {
|
|
return {
|
|
success: true,
|
|
res: result,
|
|
};
|
|
}
|
|
return {
|
|
success: false,
|
|
res: result,
|
|
};
|
|
}
|
|
}
|
|
;
|