微信第三方平臺開發流程和總結html
1).在微信開放平臺-管理中心-第三方平臺中建立第三方平臺帳號。建立第三方平臺數據庫
2).選擇「平臺型服務商類型」建立第三方平臺。填寫第三方平臺的基本信息. 填寫基本信息小程序
3).設置相關權限信息,具體權限集信息可參考:第三方平臺權限說明
4).填寫開發資料的信息說明, 可參考:第三方平臺申請資料說明api
在第三方平臺建立審覈經過後,微信服務器會向其「受權事件接收URL」每隔10分鐘定時推送component_verify_ticket。第三方平臺方在收到ticket推送後也需進行解密(詳細請見【消息加解密接入指引】),接收到後必須直接返回字符串success。緩存
注意1:component_verity_ticket建議每次接受都進行寫入緩存/數據庫/文件安全
注意2:微信發送的請求中總共有5個參數,具體以下:服務器
時間戳 timestamp,隨機數nonce , encrypt_type(加密類型,爲aes)和msg_signature(消息體簽名,用於驗證消息體的正確性)以及xml內容 詳細能夠查看 微信
XML內容app
<xml>post
<AppId></AppId>
<CreateTime>1413192605 </CreateTime>
<InfoType> </InfoType>
<ComponentVerifyTicket> </ComponentVerifyTicket>
</xml>
注意3:對上述XML內容解密
解密/加密方式都是aes,
須要在建立第三方平臺時填寫開發資料時填寫的:消息驗證token,消息加解密key,appid
和微信請求來的參數:msg_signature(簽名),timestamp(時間戳),nonce(隨機數),postDataStr(post來的數據字符串),進行校驗和解密成明文內容。而後提取出ComponentVerifyTicket進行寫入緩存/數據庫/文件(後續全部的操做都須要用到)
第三方平臺component_access_token是第三方平臺的下文中接口的調用憑據,也叫作令牌(component_access_token)。每一個令牌是存在有效期(2小時)的,且令牌的調用不是無限制的,請第三方平臺作好令牌的管理,在令牌快過時時(好比1小時30分)再進行刷新.
接口調用請求說明
http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/component/api_component_token
POST數據示例:
{
"component_appid":"appid_value" ,
"component_appsecret": "appsecret_value",
"component_verify_ticket": "ticket_value"
}
該API用於獲取預受權碼。預受權碼用於公衆號或小程序受權時的第三方平臺方安全驗證。
接口調用請求說明
http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx
POST數據示例:
{
"component_appid":"appid_value"
}
步驟:
第三方平臺方能夠在本身的網站:中放置「微信公衆號受權」的入口,引導公衆號進入受權頁。受權頁網址爲
該網址中第三方平臺方須要提供第三方平臺方appid、預受權碼和回調URI(受權成功後直接跳轉的頁面),
步驟:
在第四步後重定向到受權頁後,在受權頁上會有一個二維碼,微信公衆號管理員經過的使用本人微信掃描二維碼對第三方平臺進行受權,在公衆號管理員掃描二維碼後,第三方平臺後臺給定的回調地址(redirect_uri),將會收到一條請求,請求中包含了受權方的authorization_code和authorization_code的有效期 ;
接口調用請求說明
http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=xxxx
POST數據示例:
{
"component_appid":"appid_value" ,//第三方appid
"authorization_code": "auth_code_value" //受權code
}
返回參數如圖看微信文檔裏面
步驟:
簡單講,就是微信用戶在手機上給公衆號發的普通文本消息會以上面的格式發到第三方平臺的公衆號消息與事件接收URL
而後這個xml是加密過的,msg_signature(簽名),timestamp(時間戳),nonce(隨機數),postDataStr(post來的數據字符串),進行校驗和解密成明文內容
注意:被動回覆時消息須要進行加密處理
步驟:
特別注意: