微信公眾帳號開發:URL 和 Tocken介紹

高洛峰
發布: 2017-03-23 13:20:06
原創
2527 人瀏覽過

一、URL 和Tocken 簡介

1、想成為開發者必須要有一個公網的網路位址(URL),這個網路位址要求微信公眾平台可以存取到,網路位址的取得有多種方式:可以藉助其他平台,也可以自己租借伺服器(建議自己租一個伺服器,因為我們需要部署應用程式);總之,你要提供一個公網上的URL;

#2、Tocken(標記):Tocken可以隨便填寫一個字串,在認證的時候使用;

3、認證過程:需要開發者進行編程,所以要在開發者伺服器上部署一個應用(提供URL);當公網上的URL被微信訪問時,微信會發送過來一些數據,你的應用要把微信發送過來的數據進行加密,然後用密文和signature比較,如果相同,返回echostr給微信公眾平台,微信公眾平台進行校驗,如果正確,那麼恭喜你,你的公眾帳號成為成為開發者帳號;

二、驗證流程圖

您已經向微信公眾平台提供了URL(開發者伺服器網址址) 和Tocken,下圖是微信公眾平台認證流程;

微信公众账号开发:URL 和 Tocken介绍

#從上圖可以看出,主要驗證功能是在開發者伺服器這端,其中在開發者伺服器這端進行tocken,timestamp,nonce加密認證(sha1加密)的時候,tocken是開發者提供給微信公眾平台的;如果加密的結果和微信公眾平台提供的signature一樣,那麼我們就返回echostr給微信公眾平台;微信公眾平台進行echostr認證,如果通過,公眾帳號就成為了開發者

三、代碼說明

本人開發用的是python語言,如果你使用的是其他語言,邏輯結構類似,只是實現不同;

@csrf_exempt
def wx_valid(request):#提供给微信公众平台的url,微信公众平台请求url时,会执行此方法

    '''微信开发者验证,是GET请求;GET 和 POST 区分是认证还是发送消息(发送消息的时候是POST)'''
    if(request.method == 'GET'):
        tocken='zainanjing6tocken'#提供给微信公众平台的tocken,可以保持在数据库、文件或者直接硬编码到代码中;
        if tocken:
            timestamp = request.GET['timestamp']
            nonce = request.GET['nonce']
            signature = request.GET['signature']
            echostr = request.GET['echostr']
           
            arr = [tocken,timestamp,nonce]
            arr.sort()
            data = ''
            for s in arr :
                data += s
            sha1 = hashlib.sha1() #或hashlib.md5()  
            sha1.update(data)
            _signature = sha1.hexdigest() #生成40位(sha1)或32位(md5)的十六进制字符串  
            if _signature == signature :
                return HttpResponse(echostr)#返回 echostr
    return HttpResponse('error')#返回 error
登入後複製

以上就是開發者驗證URL和Tocken邏輯流程和源碼了,下面我們就說一下整體的操作流程;

四、操作流程

1、先在開發者伺服器上部署應用,提供出URL 和Tocken,(此URL要求微信公眾平台能夠存取)

2 、把URL 和Tocken 加入微信公眾平台開發者模式後,微信公眾平台就會自動請求URL,開發者伺服器進行資料驗證(signature驗證),如果驗證通過,回傳echostr給微信公眾平台

3、如果成功成為了開發者帳號,並且公眾帳號的模式調整為開發者模式,那麼用戶給公眾帳號發送的訊息,就不是由微信公眾平台進行回復了,微信公眾平台會將訊息轉發給開發者伺服器,開發者伺服器進行訊息回覆

至此,URL 和Tocken的認證就算結束了,如果認證通過了,那麼恭喜,你的帳號已經是開發者帳號,下一步必須要做的是開發回覆用戶訊息的功能,不然用戶接收不到任何訊息;

以上是微信公眾帳號開發:URL 和 Tocken介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!