用戶
 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,登錄網站

小程序社區 首頁 教程 查看內容

云開發如何實現管理員通知消息

Rolan 2019-11-19 00:03

需求描述小程序目前的主要能力還都在小程序端實現,但是我們在進行開發的小程序不可能只有小程序端能力,我們也會有一些管理端能力。比如說,當用戶在小程序中提交了消息以后,我們的小程序應該可以通知到小程序的管 ...

需求描述

小程序目前的主要能力還都在小程序端實現,但是我們在進行開發的小程序不可能只有小程序端能力,我們也會有一些管理端能力。比如說,當用戶在小程序中提交了消息以后,我們的小程序應該可以通知到小程序的管理員,以便讓管理員進行下一步操作。

解決方案

架構說明

由于小程序本身不支持長久性的消息通知能力,因此,我們可以考慮借助一些第三方的服務和能力,來完成我們自己的需求。

這個需求很適合使用小程序新發布的 長期訂閱消息 能力,但是目前該能力開放的類目還不足以支持我們的需要。

一般而言,使用短信是我們目前到達率比較高的能力,且更為普遍的能力,其他通道的能力大多受限或不符合國情,為了確保通知信息的到達率,我們這篇文章就使用短信來完成需求。

架構圖示

具體操作

1. 開通騰訊云短信服務并獲取配置信息

我們想要發送短信,就需要先有一個短信服務,用于發送短信,這里我們可以使用騰訊云提供的云短信服務來發送短信。

開通騰訊云短信,并創建應用

首先,你需要訪問 https://console.cloud.tencent... ,點擊開通騰訊云·云短信。

在開通完成后,點擊界面中的【 添加應用 】,添加一個新的短信應用,你可以根據自己的實際情況,添加短信應用的名稱和簡介。

獲取 AppID、App Key

添加完成后,點擊你創建好的應用,進入到應用詳情頁,在應用的詳情頁中的應用信息欄目中,你可以找到 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 ,替換為你自己的 AppKey
const 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
            }
        });
    }
})

總結

經過本次的分享,我們了解到了如何借助短信服務,實現云開發的后臺通知能力,實際上,除了短信服務,你還可以借助一些其他的工具,比如郵件、企業微信機器人等能力,實現后臺管理信息的推送。

明天,我們將分享 如何借助通過微信發送訂單消息 。

鮮花
鮮花
雞蛋
雞蛋
分享至 : QQ空間
收藏
原作者: Bestony 來自: segmentfault
必中分分彩在线计划 360新11选5 安徽十一选五 北京赛车pk大小走势图 网友最爱的十大日本av女优 3d专家预测汇总 南京麻将ios 极速飞艇开奖直播 山西快乐10分 十一选五前三技巧 山西11选5走势图 漂亮av女优有那些 山东十一选五开奖直播 河南福彩网开奖公告 老快3历史开奖360彩票 福利彩3d今天开奖结果 四川快乐十二开奖开