您好,登錄后才能下訂單哦!
這篇文章主要介紹了C#開發微信公眾號之接口開發的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一、前言
當下微信公眾號幾乎已經是每個公司必備的,但是大部分微信公眾賬號用戶體驗都欠佳,特別是涉及到用戶綁定等,需要用戶進行復雜的操作才可以和網站綁定,或者很多公司直接不綁定,而是每次都讓用戶填寫賬號密碼。作為微信接口開發人員我們知道網頁授權可以用作微信網頁用作安全登錄,帶參數二維碼的使用用作記錄用戶來源,模板消息用作購物消費等消息的通知,但是很少看到有綜合利用這些高級接口做出體驗比較好的公眾賬號,這里分享一些我開發的用戶綁定和驗證碼的一些心得。所需要的接口有基礎的回復、網頁授權、帶參數二維碼、模板消息。所以這里所講的必須是認證服務號
二、需求
1.pc網站綁定個人微信賬號2.pc網站獲取驗證碼(用戶注冊即綁定、找回密碼等場景)
三、實現流程及與傳統方法對比
1.pc網站綁定個人微信賬號:
傳統的方法--是輸入賬號和密碼,然后通過網頁授權綁定,下次可以免登陸
利用微信接口--方法1、網頁授權
在pc端生成一個網頁授權的二維碼:url+id=32132312其中id為用戶的唯一標識,用微信掃描 保存id和openid在對應的用戶表即綁定成功
方法2、申請帶參數二維碼+網頁授權
在通過微信接口申請臨時的帶參數二位碼顯示在pc網頁上,所帶參數是根據登錄用戶生成的唯一標識一串數字 ,當用戶掃描的時候微信回復的參數即為這串數字,將這串數字和openid保存在數據庫對應的用戶表中即可。
注意:在這建議使用第2中方法:第1中方法是直接在網頁中綁定,用戶可能沒有關注我們的公眾賬號,而第二種方法當用戶沒有關注的時候提示先關注,關注完之后自動綁定,并且提示成功,如果關注也是直接跳轉到我們的公眾賬號
四、用戶綁定流程圖
1.網頁授權綁定的流程圖:
2.帶參數二維碼綁定
五、用戶綁定實現方法主要代碼
這里以綁定第二種方法為例
1.首先用戶登錄pc網站 獲取到唯一標識也可以即時生成,然后以唯一標識為參數向微信服務器申請帶參數的二維碼方法詳情可參照我之前的文章:C#微信公眾號接口開發實例-高級接口-申請帶參數的二維碼
主要代碼獲取ticket 其中 scene_id即為用戶唯一標識 二維碼鏈接https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET 嵌入到網頁中即可
/// <summary> /// 調用微信接口獲取帶參數臨時二維碼的ticket /// 使用方法:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET /// </summary> /// <param name="scene_id">二維碼帶的參數</param> /// <returns>json:ticket:換取二維碼的憑證,expire_seconds:憑證有效時間,url:二維碼解析后的地址。此處返回ticket 否則返回錯誤碼</returns> public string GetQrcode(string appid, string appsecret, Int32 scene_id) { string QrcodeUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";//WxQrcodeAPI接口 string AccessToken = getTokenSession(appid, appsecret);//拉取全局的AccessToken11 QrcodeUrl = string.Format(QrcodeUrl, AccessToken); string PostJson = "{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": " + scene_id + "}}}"; string ReText = WebRequestPostOrGet(QrcodeUrl, PostJson);//post提交 Dictionary<string, object> reDic = (Dictionary<string, object>)Jss.DeserializeObject(ReText); if (reDic.ContainsKey("ticket")) return reDic["ticket"].ToString();//成功 } else { return reDic["errcode"].ToString();//返回錯誤碼 } }
2.用戶掃描帶參數二維碼(此處為臨時二維碼),非關注用戶提示關注,關注后直接綁定,關注用戶可以直接綁定,原理是掃描帶參數二維碼,微信會接收到xml形式的數據
解析獲取到scene_id因為消息也帶用戶信息openid 將scene_id和openid保存到用戶表即完成主要代碼如下:
switch (WxXmlModel.Event) { case "subscribe": if (string.IsNullOrEmpty(WxXmlModel.EventKey)) { XML = sohovan.com.wxapi.ResponseMessage.GetText(WxXmlModel.FromUserName, WxXmlModel.ToUserName,"關注成功"); } else { XML = sohovan.com.wxapi.ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey); //掃描帶參數二維碼先關注后推送事件11 } break; case "SCAN": XML = sohovan.com.wxapi.ResponseMessage.ScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey); //掃描帶參數二維碼已關注 直接推送事件 break; }
掃描分為兩種一種是先關注后進入公眾號(Event=="subscribe")還有一種是直接進入公眾號 (Event="SCAN") 其中FromUserName是用戶的openid微信唯一標識 此時將openid 和scene_id保存到對應用戶表即可需要
注意的是關注掃描中EventKey為qrscene_加標識 如果標識為321312那么EventKey="qrscene_321312",已經關注的EventKey="321312"。
六、模板消息獲取驗證碼實現方法
上一步已經將pc網站和微信綁定,如果我們忘記密碼,傳統的做法是可以通過短信找回,弊端是對于手機號碼經常換的用戶可能找不回,相信對于大部分年輕人來說換10個手機號碼也不會去換一個QQ好一個微信號,這個時候我們通過微信找回我們的密碼是相對安全的
實現方法很多,比如在微信中修改,但是麻煩(需要查找到公眾賬號,找到對應的按鈕等等),這里可以利用帶參數二維碼用戶掃描pc網站的方式獲取,類似上面的方法,而此時利用微信模板消息,體驗又更加方便。
獲取驗證碼流程圖:
這個過程就是和短信類似,但是我覺得無論是從經濟還是用營銷上考慮都是好處多多,比較如果量大,每個月驗證各種東西以萬條算的網站短信費用就可以省不小一筆,同時還可以為微信引流一舉多得。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“C#開發微信公眾號之接口開發的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。