微信第三方平臺開發流程和總結

微信第三方平臺開發流程和總結html

 

建立第三方平臺

1).在微信開放平臺-管理中心-第三方平臺中建立第三方平臺帳號。建立第三方平臺數據庫

2).選擇「平臺型服務商類型」建立第三方平臺。填寫第三方平臺的基本信息. 填寫基本信息小程序

3).設置相關權限信息,具體權限集信息可參考:第三方平臺權限說明
4).填寫開發資料的信息說明, 可參考:第三方平臺申請資料說明api

 

開發接入

  1.  接收第三方驗證票據(component_verity_ticket

在第三方平臺建立審覈經過後,微信服務器會向其「受權事件接收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進行寫入緩存/數據庫/文件(後續全部的操做都須要用到)

 

  1. 獲取令牌(component_access_token

第三方平臺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" 

}

  1. 判斷token未過時直接返回(不要頻繁的請求token,微信有請求次數限制)
  2. 判斷ticket是否存在或過時
  3. 拼裝請求數據
  4. 發送Https請求並獲取結果
  5. 解析結果並保存token

 

  1.  獲取預受權碼(pre_auth_code

該API用於獲取預受權碼。預受權碼用於公衆號或小程序受權時的第三方平臺方安全驗證。

接口調用請求說明

http請求方式: POST(請使用https協議) 
https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx

POST數據示例:

{
"component_appid":"appid_value" 

}

步驟:

  1. 判斷pre_auth_code未過時直接返回
  2. 獲取token,若是過時則從新請求
  3. 替換url中的xxx
  4. 拼裝請求參數
  5. 發送請求並獲取返回結果
  6. 保存pre_auth_code

 

  1. 重定向到受權頁,引入用戶進入受權頁

第三方平臺方能夠在本身的網站:中放置「微信公衆號受權」的入口,引導公衆號進入受權頁。受權頁網址爲

https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx

該網址中第三方平臺方須要提供第三方平臺方appid、預受權碼和回調URI(受權成功後直接跳轉的頁面),

步驟:

  • 在第三方平臺指定的域名下作一個簡單的頁面做爲受權頁的入口
  • 獲取pre_auth_code
  • 替換重定向的url的參數
  1. 接收受權方受權請求並保存受權方信息

在第四步後重定向到受權頁後,在受權頁上會有一個二維碼,微信公衆號管理員經過的使用本人微信掃描二維碼對第三方平臺進行受權,在公衆號管理員掃描二維碼後,第三方平臺後臺給定的回調地址(redirect_uri將會收到一條請求,請求中包含了受權方的authorization_code和authorization_code的有效期 ;

  1. 使用authorization_code換取受權方的authorizer_access_token和authorizer_refresh_token。

接口調用請求說明

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

}

返回參數如圖看微信文檔裏面

步驟:

  • 獲取第三方平臺的token
  • 獲取受權方受權信息
  • 獲取受權方帳號信息進行保存

 

  1. 接收微信用戶發送的事件以及消息

簡單講,就是微信用戶在手機上給公衆號發的普通文本消息會以上面的格式發到第三方平臺的公衆號消息與事件接收URL

而後這個xml是加密過的,msg_signature(簽名),timestamp(時間戳),nonce(隨機數),postDataStr(post來的數據字符串),進行校驗和解密成明文內容

注意:被動回覆時消息須要進行加密處理

步驟:

  • 對post來的數據解密
  • 根據解密後的明文處理不一樣的業務

特別注意:

    1. component_verity_ticket是獲取component_access_token必備參數
    2. component_access_token是獲取公衆號(受權方)authorizer_access_token時必備參數
    3. authorizer_access_token是代公衆號(受權方)處理業務的必備參數。
    4. component_verity_ticket有效期3600(目前接口推送時返回的)。
    5. component_access_token有效期時2小時,且不是無限的。須要保存到緩存中(最好設置1小時30分)
    6. authorizer_access_token有效期是2小時,且不是無限的。須要保存到緩存中(最好設置1小時30分)
相關文章
相關標籤/搜索