最近在做微信的公眾號的開發(fā)。之前是在一個認(rèn)證過的微信服務(wù)號上開發(fā)一些相應(yīng)的功能。

比如說 對認(rèn)證過的微信服務(wù)好進(jìn)行 自定義菜單的開發(fā),模板消息的回復(fù)以及關(guān)鍵詞回復(fù)的功能。

但是目前新接了這樣一個需求:要為一個微信的訂閱號做一個類似于推廣的活動,這樣就需要獲取登錄這個活動的用戶的信息,從而判斷該用戶有沒有關(guān)注過改訂閱號之類的功能。這樣就需要讓該微信訂閱號獲取到該用戶的個人信息。

這個功能其實(shí)我們已經(jīng)在微信的服務(wù)號上實(shí)現(xiàn)了,這里來回顧一下具體是如何實(shí)現(xiàn)的。

我們先來看微信公眾號開發(fā)的文檔: 之微信網(wǎng)頁授權(quán)章節(jié)。

如果我們要在微信中打開一個第三方的網(wǎng)頁,公眾號可以通過微信網(wǎng)頁授權(quán)機(jī)制,來獲取用戶的基本信息,進(jìn)而實(shí)現(xiàn)業(yè)務(wù)邏輯。這是文檔中的原話。通俗的講,微信也可以認(rèn)為是一個瀏覽器,我們發(fā)給某個人一個鏈接,一點(diǎn)這個鏈接,微信會打開相關(guān)的頁面。但是如何讓微信知道是哪個用戶打開了這個頁面呢,這樣就需要獲取到一個用戶的信息,當(dāng)然及時微信獲取了用戶的信息,也不是所有的信息都能獲取到,僅僅能獲取到用戶的昵稱,所在城市,性別等信息,獲取不到微信號的,當(dāng)然是可以獲取一個,也就是微信號的一個編碼,通過來區(qū)分用戶。

我們再來看看文檔,文檔中寫到,微信公眾號請求用戶網(wǎng)頁授權(quán)之前,得先獲取網(wǎng)頁授權(quán)的接口,也就是說需要到開發(fā) - 接口權(quán)限 - 網(wǎng)頁服務(wù) - 網(wǎng)頁帳號 - 網(wǎng)頁授權(quán)獲取用戶基本信息”的配置選項(xiàng)中,修改授權(quán)回調(diào)域名。

1.需要獲取該接口權(quán)限

2.需要填寫相關(guān)域名。

然后用戶訪問的鏈接url需要按照微信給的格式進(jìn)行鏈接,也就是說你轉(zhuǎn)發(fā)給別人的鏈接或者分享的二維碼對應(yīng)的鏈接需要按照微信的格式:

#

其中是該微信公眾號的,的值為一個天轉(zhuǎn)到你的頁面的地址,這里我說的可能不是太通俗易懂,那么這里借用別人的話:

這個 就是 一個項(xiàng)目的映射地址,當(dāng)用戶點(diǎn)擊立即體驗(yàn)超鏈接的時候,會跳轉(zhuǎn)到授權(quán)登錄頁面,當(dāng)點(diǎn)擊授權(quán)登錄之后微信公眾平臺會回調(diào)這個地址,并在這個地址上追加code和參數(shù)值

code=&=1 此時我們在頁面的代碼中可以獲取到code.

那我項(xiàng)目中的一個例子來講:

我訪問的 地址:%3A%2F%2F%%%.jsp%%%%3D4&=code&=&=789#

我這里跳轉(zhuǎn)到我一個項(xiàng)目中的.jsp 頁面中了,而在 .jsp 中就可以獲得code

<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
	String appId = request.getParameter("appId");
	String code = request.getParameter("code");
	System.out.println("appId:"+appId+", code:"+code);
	
	String linkAction = request.getParameter("linkAction");
	if(linkAction==null){
		linkAction = "0";
	}
	String linkValue = request.getParameter("linkValue");
	if(linkValue==null){
		linkValue = "0";
	}
%>

當(dāng)然獲得這個code 之后就可以獲得相應(yīng)的 從而就可以區(qū)分出用戶來了。

但是這個認(rèn)證過的服務(wù)好實(shí)現(xiàn)的辦法,訂閱號可以嗎?

我試了下,將上述的 地址中的換成是訂閱號的 ,但是結(jié)果發(fā)現(xiàn)不行,一點(diǎn)鏈接告我“ 參數(shù)錯誤或沒有權(quán)限”。

這是為什么呢,因?yàn)榘l(fā)現(xiàn)訂閱中沒有獲取到微信網(wǎng)頁授權(quán)接口的權(quán)限,即如圖:

訂閱推廣微信號怎么取消_訂閱推廣微信號怎么弄_微信訂閱號怎么推廣

訂閱號無法獲得該接口權(quán)限。然而后面的事情就比較尷尬了,訂閱號沒有此接口,就無法獲取到用戶的信息。但是怎么辦呢,通過各種查網(wǎng)上的信息,發(fā)現(xiàn)訂閱號是可以獲得微信的 的 ,那就是在微信開放平臺 將一個訂閱號和服務(wù)號做綁定,然后讓訂閱號借用服務(wù)號的接口 。但是這種方法還沒有驗(yàn)證。但是已經(jīng)有例子了:

在方倍工作室的網(wǎng)站上有這樣的需求

訂閱推廣微信號怎么取消_訂閱推廣微信號怎么弄_微信訂閱號怎么推廣

但是前提條件是先到微信開放平臺做綁定,那今天就先到這兒,寫的比較啰嗦,主要想把過程記錄下來。