日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)

發布時間:2023/12/4 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于上一篇文件“.NET Core 小程序開發零基礎系列(1)——開發者啟用并校驗牽手成功”的反映,個人覺得效果很不錯,大家對公眾號開發還是有很大需求的,同時也收到了很多同學的問題,后面我也會通過實戰性文章慢慢的表現出來 ,讓大家更容易吃得透一些。在這里特別感謝盛派Senparc作者的支持,也感謝各社區大佬的支持,同時也要感謝我的6位小伙伴大力支持,我們將有問必答,資源共享。

為什么說盛派Senparc開源框架開發賊快呢,因為他們經過多年的打磨,反反復復的修改升級,基本上所有公眾號的功能都支持,但發現還是有很多的同學不明白原理與底層框架的設計,在這里我們將通過真實的實戰項目來一點點吃掉。

廢話不多說了,開始我們的實戰第二篇,玩得好 模板消息可突破限制哦,袖子擼起來,干 ^_^

1

了解一下模板消息

基于微信的通知渠道,我們為開發者提供了可以高效觸達用戶的模板消息能力,以便實現服務的閉環并提供更佳的體驗。

模板推送位置:服務通知

模板下發條件:用戶本人在微信體系內與頁面有交互行為后觸發,詳見?下發條件說明?

模板跳轉能力:點擊查看詳情僅能跳轉下發模板的該帳號的各個頁面

效果如圖:

更多的規則請查看官方文檔

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html

附加經驗說明:

如果你公司有運營人員,一定會非常的喜歡服務通知,它能很快的引流到服務號,小程序中來,激活當前的用戶。借助微信的服務通知,必能觸達到關注過,授權過服務號,小程序的人,是不是很棒。

場景:比如說用戶使用某個小程序發布了一個百人報名活動。如果能實現有一個人報名,就向活動發起者發送一條報名通知,那就大大提高了工具的使用效率,不用發起人每次都打開小程序去看有多少人參與了報名。顯然,當前的消息發送機制無法滿足這個需求。

模板有很多種咯,每個行業的模板也不一樣,比如我們電商系統需要的模板“訂單支付成功通知”、“訂單支付失敗通知”、“預約成功通知”、“訂單發貨通知”、“用戶認證通知”等等模板。

2

創建你想要的模板/設置模板

登錄小程序后臺,點擊左側“模板消息”,如圖:

默認“我的模板庫”是沒有模板的,需要進入到“模板庫”中進行創建, 模板庫中的模板非常多,建議搜索你想要的模板,如圖:

選擇對應的模板,點擊選用,如圖:

注意:這里添加的“關鍵詞”順序要嚴格按照我們后臺列出來的順序去選擇排列,否則會出現數據錯亂的問題。

以上基本是了解模板,配置模板,下面我們真正來發送模板啦!

3

收集formId(突破模板消息的推送限制?)

這里為什么要收集formId呢,因為小程序發送模板必須要對應人的formId來發送,不然你是發送不成功的。

formId收集方法,我們直接講復雜的收集,突破模板消息的推送限制。

流程

結合小程序前端界面實現批量收集formId==》上報后臺==》存儲formId==》發送模板,最終做到7日內推送模板消息、觸及用戶激活用戶。

實現步驟

1、小程序構建formId 池,每次將用戶提交的表單都搜集起來存入formId池,當用戶操作前端某個位置或者離開掛起小程序時,發送formIds到后端存儲起來。

2、將小程序用戶有可能點擊的區域覆蓋一層不可見的button,并將整個頁面用于傳輸formId的button包裹在一form標簽內,一旦用戶有點擊按鈕的操作,就將獲取到的formId存入formId 池。

上小程序部分代碼

1、先定義一個formId數組

2、小程序頁面定義事件

3、提交事件

4、提交到后臺,批量收集formId

以上基本是收集formId的流程,有不懂原理與實現步驟的可以聯系我。

4

發送模板消息(服務通知)

還是上一篇那個項目,如圖:

引用盛派Senparc組件:

Senparc.Weixin.MP.MVC

Senparc.Weixin.WxOpen

批量發送模板主要代碼:

HashEntry[] hashes = redisManager2.HashValueAll(videoKey); if (hashes.Length > 0) { Console.WriteLine($"{QUEUE_ROOMVISIRECORD},直播間{videoKey},準備推送人數{hashes.Length},videoKey={videoKey},videoKeywords={videoKeywords}"); foreach (var item in hashes) { //{"WorkQueueNo":"wxccf5524125d67d16","TemplateID":"KgI11LMjGCUmvrfOPG5xHdfW2j70tJKNurfrtAFn9sk","Keywords":"2019-08-25 21:54:00|安|fffd|快來我的直播間,約起!","Url":"pages/live/liveRoom/liveRoom?id=1164536425702625280","ToOpenID":"o5D-a5QpNoC_0QYF5C-zFbmkgr4Q","ToMemberID":1053} WorkQueueParam valueItem = DMS.Common.Extensions.SerializerExtensions.DeserializeObject<WorkQueueParam>(item.Value); if (valueItem != null) { //查找小程序的fromid string key = $"{valueItem.ToMemberID}_{valueItem.WorkQueueNo}"; string fromid = redisManager3.ListLeftPop<string>(key); if (!string.IsNullOrEmpty(fromid)) { string[] keywords = videoKeywords.Split("|"); var data = new { keyword1 = new TemplateDataItem(keywords[0]), keyword2 = new TemplateDataItem(keywords[1]), keyword3 = keywords.Length > 2 ? new TemplateDataItem(keywords[2]) : null, keyword4 = keywords.Length > 3 ? new TemplateDataItem(keywords[3]) : null, }; var tempResult = Senparc.Weixin.WxOpen.AdvancedAPIs.Template.TemplateApi.SendTemplateMessage(valueItem.WorkQueueNo, valueItem.ToOpenID, valueItem.TemplateID, data, fromid, videoUrl); if (tempResult.errcode == ReturnCode.請求成功) { Console.WriteLine($"{QUEUE_ROOMVISIRECORD},直播間{videoKey},發送成功,{valueItem.ToMemberID}"); } else { Console.WriteLine($"{QUEUE_ROOMVISIRECORD},直播間{videoKey},發送失敗,{tempResult.errmsg}"); } } else { Console.WriteLine($"{QUEUE_ROOMVISIRECORD},直播間{videoKey},獲取FromID為空,{valueItem.ToMemberID}"); } } else { Console.WriteLine($"{QUEUE_ROOMVISIRECORD},直播間{videoKey},模板內容序列哈異常"); } } } else { Console.WriteLine($"{QUEUE_ROOMVISIRECORD},直播間{videoKey},未找到直播間數據"); }

這里的場景是這樣的:比如一個主播她創建了一個房間,設定開播的時間為某一天,為了給自己引流,他在微信群分享了小程序,這時只要有人點擊了小程序鏈接點擊預約就會記錄與主播的關聯,等到主播開播時,會群發下面預約的用戶。是不是有點像群發功能,哈哈,大家有空可能嘗試一下。

注:這里利用了redis來存儲fromid,你們也可以用其它的方式來存儲,隨便你來玩。

5

總結

人個覺得代碼實現需求的過程并不復雜,主要是理解了原理與實現的過程后,就事半功倍。整個方案流程涉及到的關鍵詞有表單、按鈕、formId、模板消息、Redis等,主要需要前后端相關技術組合來實現整個方案。

相關推薦

推薦文章

  • .NET Core 小程序開發零基礎系列(1)——開發者啟用并牽手成功

  • .net core redis的全套操作

  • .NETCore 實現容器化Docker與私有鏡像倉庫管理

  • .netcore consul實現服務注冊與發現(一)單機部署

  • .netcore consul實現服務注冊與發現(二)集群完整版

dotNET名人堂,主要分享.NET core各種技術文章,以及架構設計,管理技巧等干貨,希望在這里通過實戰能讓你全新認識.NET core相關技術,項目架構,大數據處理,高并發,高耦合相關問題歡迎留言與我探討。

作者微信ID:tangguo_9669

你點的每個贊,我都認真當成了喜歡

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的.NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。