'use strict'; const Core = require('@alicloud/pop-core'); const _ = require('lodash'); // 阿里云控制台 - 短信服务 - 国内消息 const SignName = '惠金信用信息服务'; const TemplateCode = 'SMS_189617598'; // https://usercenter.console.aliyun.com/ const accessKeyId = 'LTAI4G1eNRqKqqRLP15d3x5h'; const accessKeySecret = 'CJtcZjAu366mmmscIRXfyml9Hx61Bh'; const client = new Core({ accessKeyId, accessKeySecret, endpoint: 'https://dysmsapi.aliyuncs.com', apiVersion: '2017-05-25', }); // 保存手机号和验证码的对应关系 // phone_code_list = {'18855551234':['1024']} // const phone_code_list = {}; /** * sms.send(手机号) 发送短信验证码 **/ exports.send = function(phone) { // 生成验证码 // const code = '' + _.random(9) + _.random(9) + _.random(9) + _.random(9); const code = this.randomCode(4); return new Promise((resolve, reject) => { try { client.request('SendSms', { RegionId: 'cn-hangzhou', PhoneNumbers: phone, SignName, TemplateCode, TemplateParam: '{code:' + code + '}', }, { method: 'POST', }).then(result => { console.log('res', result) if (result.Message && result.Message == 'OK' && result.Code && result.Code == 'OK') { // 短信发送成功 // 保存验证码 result.number = code; resolve(result); } else { console.log('error', result) reject(result); } }, ex => { console.log('ex', ex) reject(ex); }); } catch (error) { console.log('catch error', error) reject(error); } }); }; exports.randomCode = function(length) { const chars = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ]; let result = ''; for (let i = 0; i < length; i++) { const index = Math.ceil(Math.random() * 9); result += chars[index]; } return result; }