教你用云开发实现小程序的短信消息通知功能

▌1、需求描述

小程序目前的主要能力还都在小程序端实现,可是咱们在进行小程序开发时也会涉及一些管理端能力。好比说,当用户在小程序中提交了消息之后,咱们的小程序应该能够通知到小程序的管理员,以便让管理员进行下一步操做。由此,管理员消息通知的需求应运而生。

▌2、解决方案

架构说明

因为小程序自己不支持长久性的消息通知能力,所以,咱们能够考虑借助一些第三方的服务和能力,来完成咱们本身的需求。javascript

这个需求很适合使用小程序新发布的 长期订阅消息 能力,可是目前该能力开放的类目还不足以支持咱们的须要。java

通常而言,使用短信是咱们目前到达率比较高的能力,且更为广泛的能力,其余通道的能力大多受限或不符合国情,为了确保通知信息的到达率,咱们这篇文章就使用短信来完成需求。

架构图示node


具体操做web

1. 开通腾讯云短信服务并获取配置信息
咱们想要发送短信,就须要先有一个短信服务,用于发送短信,这里咱们能够使用腾讯云提供的云短信服务来发送短信。
开通腾讯云短信,并建立应用
首先,你须要访问 https://console.cloud.tencent.com/smsv2,点击开通腾讯云·云短信。

在开通完成后,点击界面中的【添加应用】,添加一个新的短信应用,你能够根据本身的实际状况,添加短信应用的名称和简介。shell


获取 AppID、App Key
npm

添加完成后,点击你建立好的应用,进入到应用详情页,在应用的详情页中的应用信息栏目中,你能够找到 AppID 和 AppKey ,复制并保存这两个值,稍候咱们会用到。小程序

2. 配置短信模板、短信签名

开通了腾讯云短信服务之后,咱们须要去建立短信模板,以及短信签名。

腾讯云短信并非让你随意发全部的内容的,而是你须要建立一个模板,并使用特定的模板来完成短信的发送。微信

短信签名则是原来让收到短信的用户知道他所收到的短信来自于他的那一个服务,通常来讲,设置为产品的品名。微信开发

在腾讯云控制台中,进入到【 云短信 】控制台。

建立短信签名架构

首先,点击【国内短信】,进入到短信的页面,点击【建立签名】,而后在弹出的窗口中输入你的签名的具体信息。

签名建立完成后,你须要等待腾讯云官方的审核,审核经过之后,你添加的签名才能够被使用。

建立短信模板

建立完签名,你须要建立一个短信的正文模板,用于发送短信。
输入模板名称、短信类型,而后选择标准模板中的模板,这里咱们选择“您有新的{1}订单,请注意查收! ”这个模板。

除了使用标准模板,你也能够本身编写一个模板,为了方便文章撰写,这里使用标准模板。

而后点击提交,等待审核就能够了。

3. 编写云函数发送短信

在完成了基础的配置后,咱们在微信开发者工具中实现一个云函数,用于调用腾讯云的短信服务,实现具体的通知。

首先,咱们建立一个新的云函数,名为 notifyAdmin,意为用于通知管理员的云函数。

而后,选择咱们刚刚建立的 notifyAdmin 云函数,在函数上右击,选择【在终端中打开】,进入到控制台,并输入以下命令,安装所需的短信 SDK。

npm install --save sms-node-sdk

而后,修改云函数的 index.js ,加入以下代码:
// 云函数入口文件const cloud = require('wx-server-sdk')const { SmsClient} = require('sms-node-sdk');

const AppID = 1400286810; // SDK AppID是1400开头
// 短信应用SDK AppKey ,替换为你本身的 AppKeyconst AppKey = 'xxxx';
// 须要发送短信的手机号码const phoneNumber = '10000000';
// 短信模板ID,须要在短信应用中申请const templId = 476457;// 签名,替换为你本身申请的签名const smsSign = '程序百晓生';
// 实例化smsClient
cloud.init()
// 云函数入口函数exports.main = async (event, context) => { let orderId = event.orderId; let smsClient = new SmsClient({ AppID, AppKey }); return await smsClient.init({ action: 'SmsSingleSendTemplate', data: { nationCode: '86', phoneNumber, templId: templId, params: [orderId], sign: smsSign // 签名参数未提供或者为空时,会使用默认签名发送短信 } })}

完成代码的修改后,就能够部署你的云函数了,右键你的云函数,选择【上传并部署云函数:云端安装依赖】

4. 在小程序端触发短信

在前面咱们提到,在一些特定的场景下,咱们但愿用户的操做能够给管理员发送消息通知。 在具体的实现的时候,咱们能够根据本身的实际业务需求,来设定咱们的通知发送的条件,好比说,在用户支付成功后发送消息,则相关代码以下:
let orderId = 'this is a orderId';wx.requestPayment({ success:res => { console.log("User Payment Success"); // 调用云函数发送短信 wx.cloud.callFunction({ name:"notifyAdmin", data:{ orderId: orderId } }); }})

▌3、总结

但愿经过本次的分享,能让你们了解到如何借助短信服务实现云开发的后台通知能力。实际上,除了短信服务,你还能够借助一些其余的工具,好比邮件、企业微信机器人等能力,实现后台管理信息的推送。




 更多精彩 

点击下方图片便可阅读







云开发,不止于「快」


云开发

Tencent CloudBase



      点击在看让更多人发现精彩

本文分享自微信公众号 - 腾讯云云开发(tcb2tcb)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索