微信開發相關,瞭解一下

前言:

  從微信公衆號到如今的小程序,涉及微信開發方面的內容愈來愈多,工做大多時候是須要咱們更瞭解微信開發的,好比老大說要作個什麼東西,涉及到微信的,咱們能立馬想到方案或者提出可行性的分析嗎?  由於微信開發有它本身的一套規則,有它本身的一套框架,有必定它帶來的便利,也就有它帶來的限制。  這篇文章,不寫入門,不寫開發流程,主要聊聊最近的一些調研和細節。html

 

主要平臺:

  • 開放平臺            (文檔:微信開放平臺文)
  • 公衆平臺&小程序 (文檔:微信公衆平臺文檔&微信小程序文檔)
  • 商戶平臺            (文檔:微信支付文檔)

 

  1)開放平臺包含了:移動應用,網站應用,公衆號和小程序,第三方平臺。    前端

  1. 移動應用:在開放平臺建立移動應用和app關聯,爲app提供微信支付、分享到微信等等功能
  2. 網站應用:使網站支持使用微信賬號來登陸
  3. 公衆號和小程序:在開放平臺裏,能夠綁定公衆號和小程序,綁定後會觸發unionId機制,幫助不一樣公衆號或者小程序打通用戶體系。
  4. 第三方平臺:代小程序和公衆號調用接口,提供運營服務和行業解決方案

 

  2)公衆平臺包含:訂閱號、服務號、小程序小程序

  3)商戶平臺:主要支持微信支付,包括線上線下的支付應用場景後端

 

  三者關係以下圖,全部應用都屬於開放平臺,開放平臺能夠綁定小程序和公衆號使它們關聯起來,商戶平臺爲全部應用提供支付功能。微信小程序

 

  如何更好的理解他們呢?  固然是走一遍全部的流程,所謂流程也包括了註冊,微信文檔在大多數時候並無特別詳細,文檔告訴了咱們幾步流程,但每一個流程裏面含有什麼內容咱們不知道,我好幾回在文檔怎麼也找不到我想要的一些細節點。  最後仍是本身走一遍流程才理解,因此你想要更清楚細節,最好都能本身去註冊一遍。  微信開發相關的內容不少,研發要關注的不僅是怎麼調用接口,而還須要關注平臺相互之間的關係,運營規範,設計規範等等。  瀏覽器

 

列舉一些比較常遇到的問題

微信受權OAuth2.0

  微信受權幾乎是全部微信開發下應用入口接口,用戶受權後,經過請求微信後端,咱們才能拿到用戶信息,受權流程大體以下:安全

  1. 第三方發起微信受權登陸請求,微信用戶容許受權第三方應用後,微信會拉起應用或重定向到第三方網站,而且帶上受權臨時票據code參數;
  2. 經過code參數加上AppID和AppSecret等,經過API換取access_token;
  3. 經過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操做微信

  官方文檔:Appsecret 是應用接口使用密鑰,泄漏後將可能致使應用數據泄漏、應用的用戶數據泄漏等高風險後果;存儲在客戶端,極有可能被惡意竊取(如反編譯獲取Appsecret)。微信開發

  提及這個問題,當時也出現一個事故,在微信公衆平臺後臺appsecret沒有修改的功能,只能重置。微信後臺也有統計功能,當時運營同事就要求給他們帳戶,他們方便實時查看。  次日咱們就發現業務功能出問題了,沒法用了,前端查問題,後端查問題,怎麼看業務邏輯都沒有動過,不會是代碼改出的問題,後端查日誌就是微信那塊報的錯。  結果是一個運營同事皮,公衆後臺裏面的全部功能都去點過一次,把appsecret給重置了。  結論是後臺權限仍是別給非研發同事吧,若是要給,也要提早提醒一下這些注意事項。app

 

消息分發相關

  產品是須要提醒用戶的,消息通知在平時的開發中顯得尤其重要,也常由於消息的規則可能會影響最初的產品需求。

  • 公衆號能夠以必定頻次羣發消息(訂閱號爲天天1次,服務號爲每個月4次)
  • 公衆號模板消息能夠用特定內容模板,主動向用戶發送消息,能夠帶上連接,能夠說沒有次數限制
  • 小程序的模版消息須要用戶有交互經過form組件拿到formId才能向用戶發送模板

 

微信分享

  在開放平臺註冊移動應用後申請的App經過審覈後,便可得到微信分享及收藏權限。

  若是在網頁中須要以下步驟:

    1.微信公衆平臺裏填寫「JS接口安全域名」

    2.在須要調用JS接口的頁面引入以下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js

    3.經過config接口注入權限驗證配置(配置的簽名須要後端獲取)

  目前一個公衆號能夠填寫三個js接口安全域名地址。  大部分公司的前端頁面都部署到某一個域名下的,後端能夠只提供一個公衆號的簽名接口做爲公共服務,其餘公衆號的業務在同一個域名下都能調用這個接口,以完成jssdk簽名配置。

 

微信支付

  1)要使用微信支付,咱們的商戶號的公司主體必須和公衆號小程序等註冊主體同樣,不然沒法綁定商戶號。

  2)如何實現測試公衆號支付:

  生成一個字典,存儲測試用戶的測試公衆號和正式公衆號的openId,當測試用戶在測試公衆號喚起支付的時候,後端把測試公衆號的openId替換爲正式公衆號,並使用同主體商戶號,即可以正常支付。  其實就是走正式的支付,調用測試的回調。

  3)商戶號綁定公衆號:

  微信的開發者文檔有時候某些文檔不是很好找,入口比較深,好比最初我想找到商戶號如何和多個公衆號綁定,找半天沒有相關文檔,幾個開發文檔裏搜索也沒有。  而在微信公衆平臺後臺的「微信支付」裏,也找不到相關的文檔和入口。  還好由於公司有商戶號,我登陸進去看了看才找到,若是是新手,在作技術調研的時候,可能會找不到文檔。  最開始我還覺得商戶號和公衆號後臺都能相互申請綁定,可是確實只有商戶號裏面纔有此功能。  商戶平臺新增了受權申請單之後,對應的公衆平臺後臺便在【微信支付 ~ M-A受權】下能看到。

  •  商戶號綁定申請頁面:

  • 公衆平臺後臺申請受權頁面


如何受權文檔連接 https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml,文檔入口以下圖(難找):

 

 

關於支付,企業後端應該對每種支付實現後提供一個公共服務,每當有新的公衆號須要支付的時候,只須要配置好相應的參數,調用公共服務下單便可。  若是有須要,前端也能夠作一個錢包頁面兼容多場景下的支付。  若是帳戶體系打通了,錢包裏會有充值的餘額,用戶還能夠直接選擇扣除餘額,若是是在非微信瀏覽器中,錢包理應也有支付寶等支付方式。  可是錢包頁面的存在會多一次跳轉,若是在微信裏用錢包頁面,用戶體驗沒有直接喚起支付好。

  

經過開放平臺打通帳戶體系

一個企業下面大部分的應用都但願擁有一個帳戶體系,相互之間的數據要能打通,而每個公衆號或者應用下面對應一個用戶都有不一樣的openId也就沒法在不一樣應用之間標識同一個用戶,這個時候就須要用到微信開放平臺。微信公衆號、移動應用、小程序等都是經過openId來標識用戶的惟一性,開放平臺可以綁定這些應用,綁定以後同一個用戶會生成unionid來體現用戶的惟一性。詳情UnionID機制

目前一個開放平臺下面能夠綁定:

  • 50個移動應用(native)
  • 10個網站應用
  • 50個同主體公司公衆號,5個不一樣主體公司公衆號
  • 50個同主體公司小程序,5個不一樣主體公司小程序

 

主體註冊限制 

  我以前一直在找一個公司能註冊多少公衆號,在公衆平臺開發者文檔就一直沒找到有說明。  結果這塊的內容在qq客服那個網站上http://kf.qq.com/faq/120911VrYVrA140428naUJVv.html

 

帳號遷移

  公衆號主體一旦審覈完成就不能更換。若是須要更換,只能新註冊一個公衆號作遷移,遷移只能遷移部分數據,一個用戶在不一樣公衆號openId不同的原則,若是A公衆號遷移到B公衆號,須要進行一次openId轉換,官方有接口,詳情看:http://kf.qq.com/faq/170221aUnmmU170221eUZJNf.html。  目前小程序沒法遷移。

 

結語

  微信開發容易出現不少坑,不止於技術帶來的,而其體量也愈來愈大,先後端都應該瞭解整個開發流程、開發配置、運營規則等等,不然容易出了問題不知道是誰的問題,解決問題的效率會很是低,甚至相互甩鍋。  微信生態功能在不停的迭代,開發者技術文檔、各類政策也時而變動,這些都是咱們須要時刻關注的。

相關文章
相關標籤/搜索