【小程序】- 消息訂閱提醒

前言:

我們大家都是用過微信公衆號、小程序,想必也遇到過公衆號、小程序內的消息提醒或通知,不用我們進入程序就能及時的瞭解到是否有自己需要處理的事情,簡直是一大福音,那麼如何完成這個消息訂閱提醒,就是我接下來要聊一聊的事情啦;

1、 消息模板:

要進行消息提醒,首先我們需要了解清楚自己要提醒什麼,微信官網平臺提供了好多模板,可以滿足大衆通用需求,可以從中選擇我們需要的模板,有人可能會說我的需求是獨特的,是否也能滿足呢,這一點兒人家微信早替我們想到了,可以提交申請定製自己的模板,審批通過後,就可以正常使用了;

公衆模板庫

微信官網提供的公衆模板庫,可以滿足大衆通用需求
在這裏插入圖片描述

消息模板申請

提供的模板庫不滿足需求,那就自己定製,還是上一步驟的消息模板庫頁面,鼠標拖動到頁面底部,切換到最後一頁,我們能看到如下圖:“幫忙我們完善模板庫”-進入模板申請頁面;
在這裏插入圖片描述
填寫要申請的模板信息,相關注意事項請一定認真讀哦,該花的時間還是要花的,不然得不償失,模板審覈也需要1-3天時間,謹慎操作;
提交完之後,我們可以在審覈記錄中查看模板審覈進展及審覈詳情;
在這裏插入圖片描述

選定消息模板

登錄微信公衆平臺,找到小程序-消息訂閱-我的模板,查看我的消息模板;
在這裏插入圖片描述
在這裏插入圖片描述

2、 編碼

前端

用戶授權接收消息訂閱

// 點擊同意推送待辦任務、日程提醒
  goSendMessage:function(e){
    var temlId = ["此處是模板ID"]
    wx.requestSubscribeMessage({
      tmplIds: temlId,
      success(res) {}
    }}

樣式展示:
在這裏插入圖片描述

後端

編碼時就需要用到我們的模板啦,結合消息模板-選定消息模板步驟看會更清晰(尤其是紫色框中的數據綁定字段名),實現發送消息;
核心代碼:

@At("/subscriptionMsg")
@Ok("json")
public void subscriptionMsg(@Param("param") String param){
		//模板Model
        SubMsgTemplate subMsgTemplate=new SubMsgTemplate();
        subMsgTemplate.setTemplate_id(TemplateId); //模板ID
        //要跳轉的小程序頁面,不需要可以不寫
        subMsgTemplate.setPage("pages/main/main/main"); 
        JSONObject object= JSON.parseObject(param);
        String phone = object.getString("phone");
        String userId=userService.selectUserByPhone(phone).getId();
        String openId=sysUserOauthsService.selectSysuserOauthsByUserId(userId).getOauthId();
        subMsgTemplate.setTouser(openId);

        Map<String,Object> data=JSON.parseObject(object.getString("data"),HashMap.class);
        Map<String,Object> map=new HashMap<>();
        Map<String,Object> thing1Map=new HashMap<>();

		//將模板信息放進map集合中(這裏的數據綁定對應)
        thing1Map.put("value",data.get("title")==null?"暫無":data.get("title"));
        map.put("thing1", thing1Map);
        Map<String,Object> thing2Map=new HashMap<>();
        thing2Map.put("value",data.get("address")==null?"暫無":data.get("address"));
        map.put("thing3",thing2Map);
        Map<String,Object> date2Map=new HashMap<>();
        date2Map.put("value",data.get("startDate")==null?"暫無":data.get("startDate"));
        map.put("date2",date2Map);
        subMsgTemplate.setData(map);
        //轉格式
        String jsonStr=JSONObject.toJSONString(subMsgTemplate);
        HttpUtils.doPostJsonString("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken,jsonStr);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章