教你用雲開發實現小程序的短信消息通知功能

▌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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索