微信公衆号H5訂閱消息開發 uniapp訂閱消息 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 公衆号相關 >

微信公衆号H5訂閱消息開發 uniapp訂閱消息

發表時(shí)間:2020-11-11

發布人(rén):融晨科技

浏覽次數:303

簡單說(shuō)一下流程:

在(zài)頁面帶參數跳轉到(dào) https://mp.weixin.qq.com/mp/subscribemsg ,然後用戶授權确認或者取消以(yǐ)後,會返回參數裏面 redirect_url 的(de)地(dì / de)址,并且帶上(shàng)openid 等相應參數,在(zài)前端的(de)頁面判斷鏈接裏面攜帶了(le/liǎo)相關參數後就(jiù)告訴後端,用戶訂閱消息的(de)結果,最後由後端觸發訂閱消息的(de)發送,後端調用 https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token=ACCESS_TOKEN 去發送訂閱消息。

下面看看代碼:

1.讓用戶授權訂閱消息:

let redirect_url = encodeURIComponent(location.href);
let appId = '你的(de)appid'
let scene = '場景值,可以(yǐ)填id或者其它值'
let template_id = '訂閱消息的(de)模闆id'

const href = `https://mp.weixin.qq.com/mp/subscribemsg?action=get_confirm&appid=${appId}&scene=${id}&template_id=${template_id}&redirect_url=${redirect_url}#wechat_redirect`;

location.href = href;

2.在(zài)頁面接收用戶授權訂閱消息的(de)回調信息

onLoad: function(options) {
		const { openid, action } = options;
		if (action == 'confirm') {
			const { class_id } = JSON.parse(uni.getStorageSync('courseInfo') || '{}');

            //subscribe() 是(shì)封裝的(de)接口請求,用戶告訴後端授權結果
			subscribe({ class_id: class_id }).then(res => {
				if (res.data.code == 0) {
					uni.navigateTo({
						url: '/pages/classRoom/courseList/courseList?id=' + class_id
					});
				} else {
					uni.showToast({
						title: res.data.msg,
						icon: 'none'
					});
				}
			});
		}
}

下面看看官方文檔的(de)介紹

公衆号或網頁使用一次性訂閱消息流程如下:

第一步:需要(yào / yāo)用戶同意授權,獲取一次給用戶推送一條訂閱模闆消息的(de)機會

在(zài)确保微信公衆帳号擁有訂閱消息授權的(de)權限的(de)前提下(已認證的(de)公衆号即有權限,可登錄公衆平台在(zài)接口權限列表處查看),引導用戶在(zài)微信客戶端打開如下鏈接:

https://mp.weixin.qq.com/mp/subscribemsg?action=get_confirm&appid=wxaba38c7f163da69b&scene=1000&template_id=1uDxHNXwYQfBmXOfPJcjAS3FynHArD8aWMEFNRGSbCc&redirect_url=http%3a%2f%2fsupport.qq.com&reserved=test#wechat_redirect

參數說(shuō)明

參數是(shì)否必須說(shuō)明action是(shì)直接填get_confirm即可appid是(shì)公衆号的(de)唯一标識scene是(shì)重定向後會帶上(shàng)scene參數,開發者可以(yǐ)填0-10000的(de)整形值,用來(lái)标識訂閱場景值template_id是(shì)訂閱消息模闆ID,登錄公衆平台後台,在(zài)接口權限列表處可查看訂閱模闆IDredirect_url是(shì)授權後重定向的(de)回調地(dì / de)址,請使用UrlEncode對鏈接進行處理。 注:要(yào / yāo)求redirect_url的(de)域名要(yào / yāo)跟登記的(de)業務域名一緻,且業務域名不(bù)能帶路徑。 業務域名需登錄公衆号,在(zài)設置-公衆号設置-功能設置裏面對業務域名設置。reserved否用于(yú)保持請求和(hé / huò)回調的(de)狀态,授權請後原樣帶回給第三方。該參數可用于(yú)防止csrf攻擊(跨站請求僞造攻擊),建議第三方帶上(shàng)該參數,可設置爲(wéi / wèi)簡單的(de)随機數加session進行校驗,開發者可以(yǐ)填寫a-zA-Z0-9的(de)參數值,最多128字節,要(yào / yāo)求做urlencode#wechat_redirect是(shì)無論直接打開還是(shì)做頁面302重定向時(shí),必須帶此參數

用戶同意或取消授權後會返回相關信息

如果用戶點擊同意或取消授權,頁面将跳轉至:

redirect_url/?openid=OPENID&template_id=TEMPLATE_ID&action=ACTION&scene=SCENE

參數說(shuō)明

參數說(shuō)明openid用戶唯一标識,隻在(zài)用戶确認授權時(shí)才會帶上(shàng)template_id訂閱消息模闆IDaction用戶點擊動作,"confirm"代表用戶确認授權,"cancel"代表用戶取消授權scene訂閱場景值reserved請求帶入原樣返回

第二步:通過API推送訂閱模闆消息給到(dào)授權微信用戶

接口請求說(shuō)明

http請求方式: post

https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token=ACCESS_TOKEN

post數據示例

{
    "touser":"OPENID",
    "template_id":"TEMPLATE_ID",
    "url":"URL",
    "miniprogram":{
    "appid":"xiaochengxuappid12345",
    "pagepath":"index?foo=bar"    
},
    "scene":"SCENE",
    "title":"TITLE",
    "data":{
    "content":{
    "value":"VALUE",
    "color":"COLOR"
}
}
}

參數說(shuō)明

參數是(shì)否必須說(shuō)明touser是(shì)填接收消息的(de)用戶openidtemplate_id是(shì)訂閱消息模闆IDurl否點擊消息跳轉的(de)鏈接,需要(yào / yāo)有ICP備案miniprogram否跳小程序所需數據,不(bù)需跳小程序可不(bù)用傳該數據appid是(shì)所需跳轉到(dào)的(de)小程序appid(該小程序appid必須與發模闆消息的(de)公衆号是(shì)綁定關聯關系,并且小程序要(yào / yāo)求是(shì)已發布的(de))pagepath是(shì)所需跳轉到(dào)小程序的(de)具體頁面路徑,支持帶參數,(示例index?foo=bar)scene是(shì)訂閱場景值title是(shì)消息标題,15字以(yǐ)内data是(shì)消息正文,value爲(wéi / wèi)消息内容文本(200字以(yǐ)内),沒有固定格式,可用\n換行,color爲(wéi / wèi)整段消息内容的(de)字體顔色(目前僅支持整段消息爲(wéi / wèi)一種顔色)

注:url和(hé / huò)miniprogram都是(shì)非必填字段,若都不(bù)傳則模闆無跳轉;若都傳,會優先跳轉至小程序。開發者可根據實際需要(yào / yāo)選擇其中一種跳轉方式即可。當用戶的(de)微信客戶端版本不(bù)支持跳小程序時(shí),将會跳轉至url。

返回說(shuō)明

在(zài)調用接口後,會返回JSON數據包。正常時(shí)的(de)返回JSON數據包示例:

{
"errcode":0,
"errmsg":"ok"
}

相關案例查看更多