我使用的是微信小程序的云开发这种方式来实现的,纯前端操作,无需后端接入。

1,打开微信公众平台中的【云开发】

微信小程序实现发送短信的功能(发送短信)

 2,在概览里面点击开通静态网站

微信小程序实现发送短信的功能(发送短信)

 3,点击开通

微信小程序实现发送短信的功能(发送短信)

 4,确定开通,这地方看上去是要收费的,但是第一个月是有免费的额度给你使用的,后期收不收费要通过测试了,实现短信功能到现在为止我还没有支付一分钱,前期还是可以使用的。

微信小程序实现发送短信的功能(发送短信)

 5,等待几分钟过后还要点一次开通,再点下一步,完成这么多操作后静态网站就开通成功了。

微信小程序实现发送短信的功能(发送短信)

 6,在你项目的根目录下,于pages同级目录下新建一个cloud文件夹,文件名随意

微信小程序实现发送短信的功能(发送短信)

 7,在project.config.json中加入cloudbaseRoot,后面是你的文件名+/,做完这一步文件就会变成上一步中的云开发的样子

微信小程序实现发送短信的功能(发送短信)

 8,右击你创建的这个文件夹,点击第一个【同步环境列表】,然后会出现两个文件夹

微信小程序实现发送短信的功能(发送短信)

 9,点击打开第二个文件夹,里面有个functions目录,

微信小程序实现发送短信的功能(发送短信)

 10,右击functions,点击新建Node.js云函数,然后写个文件名

微信小程序实现发送短信的功能(发送短信)

 11,在index.js中写入

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
  env:cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
  console.log(event);
  console.log(context);
  try {
    const result = await cloud.openapi.cloudbase.sendSms({
      env: '',//在云开发控制台中的环境ID
      content: '有内奸!!!停止交易', //短信内容
      phoneNumberList: [
        "+86"+event.name   //要发送的手机号码,我这是方法中传过来的号码,可以先写死测试
      ]
    })
    return result
  } catch (err) {
    return err
  }
}

12,然后右击文件夹,我这里是图中的sendSms文件夹,点击上传并部署:云端安装依赖,

sendSms文件中的每次改写都要上传一下

13,然后随便写一个按钮喽,写个点击事件,我这里通过for循环传参过去可以一次性发送给多人,这里的改写不用去上传。

 let phone=['1**********','1**********']
    for(let i=0;i<phone.length;i++){
      wx.cloud.callFunction({
        name:"sendSms",    //这个名字要跟上传并部署的那个文件名一样
        data:{
          name:phone[i]
        }
      }).then(res=>{
            console.log("发送成功",res);
      }).catch(err=>{
          console.log("发送失败",err);
      })
    }

 14,最后在app.js中加入一串代码,初始化云函数,写在onLaunch里面

if (!wx.cloud) {
      console.error("请使用 2.2.3 或以上的基础库使用云能力")
    } else {
      wx.cloud.init ({
        // env 参数说明:
        // env 参数决定接下来小程序发起的云开发调用 (wx.cloud.xxx) 会默认请求到哪个云环境的资源
        // 此处请填入环境 ID ,环境 ID 可打开云控制台查看
        // 如不填则使用默认环境(第一个创建的环境)
        // env: 'my-env-id',
        traceUser: true,
      })	
    }

点击按钮就可以发送短信了,有些手机的短信设置会给你的短信给屏蔽掉,如果控制台打印发送成功但没有收到短信,可以看看手机上短信中的拦截短信里面有没有。

最好不要一直发送短信,万一要收费就靠了。

这个发送短信功能也可以实现短信获取验证码的操作,无非两个input框 手机号跟验证码,通过传参,云函数中的event.键值  接收,然后Math.ceil(Math.random()),获取0-9 A-B中4个随机数,传给云函数,同时保存到data中,然后用正则判断输入的验证码就可以了。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。