最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#開發(fā)微信公眾號接口開發(fā)

 更新時間:2015年07月24日 15:47:08   作者:奈特(謝?。? 
這篇文章主要介紹了C#微信公眾號接口開發(fā),靈活利用網(wǎng)頁授權(quán)、帶參數(shù)二維碼、模板消息,提升用戶體驗之完成用戶綁定個人微信及驗證碼獲取,需要的朋友可以參考下

具體實現(xiàn)方式不多說了,請看下文

一、前言

當下微信公眾號幾乎已經(jīng)是每個公司必備的,但是大部分微信公眾賬號用戶體驗都欠佳,特別是涉及到用戶綁定等,需要用戶進行復雜的操作才可以和網(wǎng)站綁定,或者很多公司直接不綁定,而是每次都讓用戶填寫賬號密碼。作為微信接口開發(fā)人員我們知道網(wǎng)頁授權(quán)可以用作微信網(wǎng)頁用作安全登錄,帶參數(shù)二維碼的使用用作記錄用戶來源,模板消息用作購物消費等消息的通知,但是很少看到有綜合利用這些高級接口做出體驗比較好的公眾賬號,這里分享一些我開發(fā)的用戶綁定和驗證碼的一些心得。所需要的接口有基礎(chǔ)的回復、網(wǎng)頁授權(quán)、帶參數(shù)二維碼、模板消息。所以這里所講的必須是認證服務號(沒辦法騰訊接口限制真的好為難我們這些開發(fā)人員)。

二、需求

1.pc網(wǎng)站綁定個人微信賬號2.pc網(wǎng)站獲取驗證碼(用戶注冊即綁定、找回密碼等場景)

三、實現(xiàn)流程及與傳統(tǒng)方法對比

1.pc網(wǎng)站綁定個人微信賬號:

傳統(tǒng)的方法--是輸入賬號和密碼,然后通過網(wǎng)頁授權(quán)綁定,下次可以免登陸

利用微信接口--方法1、網(wǎng)頁授權(quán)

在pc端生成一個網(wǎng)頁授權(quán)的二維碼:url+id=32132312其中id為用戶的唯一標識,用微信掃描 保存id和openid在對應的用戶表即綁定成功

       方法2、申請帶參數(shù)二維碼+網(wǎng)頁授權(quán)

在通過微信接口申請臨時的帶參數(shù)二位碼顯示在pc網(wǎng)頁上,所帶參數(shù)是根據(jù)登錄用戶生成的唯一標識一串數(shù)字 ,當用戶掃描的時候微信回復的參數(shù)即為這串數(shù)字,將這串數(shù)字和openid保存在數(shù)據(jù)庫對應的用戶表中即可。

注意:在這建議使用第2中方法:第1中方法是直接在網(wǎng)頁中綁定,用戶可能沒有關(guān)注我們的公眾賬號,而第二種方法當用戶沒有關(guān)注的時候提示先關(guān)注,關(guān)注完之后自動綁定,并且提示成功,如果關(guān)注也是直接跳轉(zhuǎn)到我們的公眾賬號

四、用戶綁定流程圖

1.網(wǎng)頁授權(quán)綁定的流程圖:

2.帶參數(shù)二維碼綁定

五、用戶綁定實現(xiàn)方法主要代碼

這里以綁定第二種方法為例(網(wǎng)頁授權(quán)參考我之前文章C#微信公眾號開發(fā)-高級接口-之網(wǎng)頁授權(quán)oauth2.0獲取用戶基本信息(二)

1.首先用戶登錄pc網(wǎng)站 獲取到唯一標識也可以即時生成,然后以唯一標識為參數(shù)向微信服務器申請帶參數(shù)的二維碼方法詳情可參照我之前的文章:C#微信公眾號接口開發(fā)實例-高級接口-申請帶參數(shù)的二維碼

主要代碼獲取ticket 其中 scene_id即為用戶唯一標識 二維碼鏈接https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET 嵌入到網(wǎng)頁中即可

 1 /// <summary> 2 /// 調(diào)用微信接口獲取帶參數(shù)臨時二維碼的ticket 3 /// 使用方法:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET 4 /// </summary> 5 /// <param name="scene_id">二維碼帶的參數(shù)</param> 6 /// <returns>json:ticket:換取二維碼的憑證,expire_seconds:憑證有效時間,url:二維碼解析后的地址。此處返回ticket 否則返回錯誤碼</returns> 7 public string GetQrcode(string appid, string appsecret, Int32 scene_id) 8 { 9   string QrcodeUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";//WxQrcodeAPI接口10   string AccessToken = getTokenSession(appid, appsecret);//拉取全局的AccessToken11   QrcodeUrl = string.Format(QrcodeUrl, AccessToken);12   string PostJson = "{\"expire_seconds\": 1800, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": " + scene_id + "}}}";13   string ReText = WebRequestPostOrGet(QrcodeUrl, PostJson);//post提交14   Dictionary<string, object> reDic = (Dictionary<string, object>)Jss.DeserializeObject(ReText);15   if (reDic.ContainsKey("ticket"))16   {17     return reDic["ticket"].ToString();//成功18   }19   else20   {21     return reDic["errcode"].ToString();//返回錯誤碼22   }23 }

2.用戶掃描帶參數(shù)二維碼(此處為臨時二維碼),非關(guān)注用戶提示關(guān)注,關(guān)注后直接綁定,關(guān)注用戶可以直接綁定,原理是掃描帶參數(shù)二維碼,微信會接收到xml形式的數(shù)據(jù) 可參考我之前文章C#/ASP.NET MVC微信公眾號接口開發(fā)之從零開發(fā)(二) 接收微信消息并且解析XML(附源碼)

解析獲取到scene_id因為消息也帶用戶信息openid 將scene_id和openid保存到用戶表即完成主要代碼如下:

 1 switch (WxXmlModel.Event) 2 { 3   case "subscribe": 4     if (string.IsNullOrEmpty(WxXmlModel.EventKey)) 5     { 6       XML = sohovan.com.wxapi.ResponseMessage.GetText(WxXmlModel.FromUserName, WxXmlModel.ToUserName,"關(guān)注成功"); 7     } 8     else 9     {10       XML = sohovan.com.wxapi.ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey);//掃描帶參數(shù)二維碼先關(guān)注后推送事件11     }12     break;13   case "SCAN":14     XML = sohovan.com.wxapi.ResponseMessage.ScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey);//掃描帶參數(shù)二維碼已關(guān)注 直接推送事件15     break;16 }

掃描分為兩種一種是先關(guān)注后進入公眾號(Event=="subscribe")還有一種是直接進入公眾號 (Event="SCAN") 其中FromUserName是用戶的openid微信唯一標識 此時將openid 和scene_id保存到對應用戶表即可需要

注意的是關(guān)注掃描中EventKey為qrscene_加標識 如果標識為321312那么EventKey="qrscene_321312",已經(jīng)關(guān)注的EventKey="321312"。

六、模板消息獲取驗證碼實現(xiàn)方法

上一步已經(jīng)將pc網(wǎng)站和微信綁定,如果我們忘記密碼,傳統(tǒng)的做法是可以通過短信找回,弊端是對于手機號碼經(jīng)常換的用戶可能找不回,相信對于大部分年輕人來說換10個手機號碼也不會去換一個QQ好一個微信號,這個時候我們通過微信找回我們的密碼是相對安全的

實現(xiàn)方法很多,比如在微信中修改,但是麻煩(需要查找到公眾賬號,找到對應的按鈕等等),這里可以利用帶參數(shù)二維碼用戶掃描pc網(wǎng)站的方式獲取,類似上面的方法,而此時利用微信模板消息,體驗又更加方便。

獲取驗證碼流程圖:

這個過程就是和短信類似,但是我覺得無論是從經(jīng)濟還是用營銷上考慮都是好處多多,比較如果量大,每個月驗證各種東西以萬條算的網(wǎng)站短信費用就可以省不小一筆,同時還可以為微信引流一舉多得。

希望大家能夠喜歡。

相關(guān)文章

  • 使用C#實現(xiàn)一個簡單的繪圖工具

    使用C#實現(xiàn)一個簡單的繪圖工具

    這篇文章主要為大家詳細介紹了如何使用C#開發(fā)的簡單繪圖工具,可以將簽名簡單繪圖后的效果以圖片的形式導出,有需要的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • C#簡單操作MongoDB的步驟全紀錄

    C#簡單操作MongoDB的步驟全紀錄

    最近花了不少時間研究學習了MongoDB數(shù)據(jù)庫的相關(guān)知識,下面這篇文章主要給大家介紹了關(guān)于C#簡單操作MongoDB的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • 你了解C#的協(xié)變和逆變嗎,看完這篇就懂了

    你了解C#的協(xié)變和逆變嗎,看完這篇就懂了

    這篇文章主要介紹了你了解C#的協(xié)變和逆變嗎,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 用C#縮小照片上傳到各種空間的具體方法

    用C#縮小照片上傳到各種空間的具體方法

    這篇文章介紹了用C#縮小照片的具體方法,有需要的朋友可以參考一下
    2013-09-09
  • C#?WPF實現(xiàn)播放音頻文件的示例詳解

    C#?WPF實現(xiàn)播放音頻文件的示例詳解

    這篇文章主要為大家詳細介紹了利用C#?WPF實現(xiàn)播放音頻文件的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • 一些C#常見面試題目以及答案總結(jié)

    一些C#常見面試題目以及答案總結(jié)

    這篇文章主要介紹了C#常見面試題目以及答案的相關(guān)資料,分別是C#編程語言中的委托、多線程、事件、異常處理、異步編程、LINQ、內(nèi)存管理、圖像處理、內(nèi)存管理、設(shè)計模式等概念和實現(xiàn)方法,需要的朋友可以參考下
    2025-03-03
  • C#中38個常用運算符的優(yōu)先級的劃分和理解

    C#中38個常用運算符的優(yōu)先級的劃分和理解

    這只我自己在學C#中的一些總結(jié),其中對于各級的劃分方式、各操作符的優(yōu)先級的理解并不見得正確,只是自己的看法,拿出來與大家分享
    2012-08-08
  • Unity實現(xiàn)移動物體到鼠標點擊位置

    Unity實現(xiàn)移動物體到鼠標點擊位置

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)移動物體到鼠標點擊位置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 利用C#編寫掃雷游戲(附源碼)

    利用C#編寫掃雷游戲(附源碼)

    掃雷游戲相信不用給大家過多介紹,大家基本都玩過,下面這篇文章主要給大家介紹了關(guān)于如何利用C#編寫掃雷游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2019-01-01
  • 使用C#代碼獲取存儲過程返回值

    使用C#代碼獲取存儲過程返回值

    這篇文章主要介紹了使用C#代碼獲取存儲過程返回值,需要的朋友可以參考下
    2015-11-11

最新評論

阿巴嘎旗| 屯留县| 赤城县| 遵化市| 水城县| 社旗县| 双城市| 牟定县| 固镇县| 三台县| 德令哈市| 祁连县| 洪洞县| 尚志市| 淮阳县| 青州市| 景洪市| 峨眉山市| 阿鲁科尔沁旗| 祥云县| 宣汉县| 普宁市| 湾仔区| 鄯善县| 东丽区| 江华| 麻栗坡县| 景谷| 崇州市| 陵川县| 苍梧县| 庐江县| 青河县| 昭平县| 普兰县| 桐城市| 九龙县| 平南县| 乾安县| 涪陵区| 山阴县|