從微信公衆號到如今的小程序,涉及微信開發方面的內容愈來愈多,工做大多時候是須要咱們更瞭解微信開發的,好比老大說要作個什麼東西,涉及到微信的,咱們能立馬想到方案或者提出可行性的分析嗎? 由於微信開發有它本身的一套規則,有它本身的一套框架,有必定它帶來的便利,也就有它帶來的限制。 這篇文章,不寫入門,不寫開發流程,主要聊聊最近的一些調研和細節。html
1)開放平臺包含了:移動應用,網站應用,公衆號和小程序,第三方平臺。 前端
2)公衆平臺包含:訂閱號、服務號、小程序小程序
3)商戶平臺:主要支持微信支付,包括線上線下的支付應用場景後端
三者關係以下圖,全部應用都屬於開放平臺,開放平臺能夠綁定小程序和公衆號使它們關聯起來,商戶平臺爲全部應用提供支付功能。微信小程序
如何更好的理解他們呢? 固然是走一遍全部的流程,所謂流程也包括了註冊,微信文檔在大多數時候並無特別詳細,文檔告訴了咱們幾步流程,但每一個流程裏面含有什麼內容咱們不知道,我好幾回在文檔怎麼也找不到我想要的一些細節點。 最後仍是本身走一遍流程才理解,因此你想要更清楚細節,最好都能本身去註冊一遍。 微信開發相關的內容不少,研發要關注的不僅是怎麼調用接口,而還須要關注平臺相互之間的關係,運營規範,設計規範等等。 瀏覽器
微信受權幾乎是全部微信開發下應用入口接口,用戶受權後,經過請求微信後端,咱們才能拿到用戶信息,受權流程大體以下:安全
1. 第三方發起微信受權登陸請求,微信用戶容許受權第三方應用後,微信會拉起應用或重定向到第三方網站,而且帶上受權臨時票據code參數;
2. 經過code參數加上AppID和AppSecret等,經過API換取access_token;
3. 經過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操做微信
官方文檔:Appsecret 是應用接口使用密鑰,泄漏後將可能致使應用數據泄漏、應用的用戶數據泄漏等高風險後果;存儲在客戶端,極有可能被惡意竊取(如反編譯獲取Appsecret)。微信開發
提及這個問題,當時也出現一個事故,在微信公衆平臺後臺appsecret沒有修改的功能,只能重置。微信後臺也有統計功能,當時運營同事就要求給他們帳戶,他們方便實時查看。 次日咱們就發現業務功能出問題了,沒法用了,前端查問題,後端查問題,怎麼看業務邏輯都沒有動過,不會是代碼改出的問題,後端查日誌就是微信那塊報的錯。 結果是一個運營同事皮,公衆後臺裏面的全部功能都去點過一次,把appsecret給重置了。 結論是後臺權限仍是別給非研發同事吧,若是要給,也要提早提醒一下這些注意事項。app
產品是須要提醒用戶的,消息通知在平時的開發中顯得尤其重要,也常由於消息的規則可能會影響最初的產品需求。
在開放平臺註冊移動應用後申請的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機制。
目前一個開放平臺下面能夠綁定:
我以前一直在找一個公司能註冊多少公衆號,在公衆平臺開發者文檔就一直沒找到有說明。 結果這塊的內容在qq客服那個網站上http://kf.qq.com/faq/120911VrYVrA140428naUJVv.html
公衆號主體一旦審覈完成就不能更換。若是須要更換,只能新註冊一個公衆號作遷移,遷移只能遷移部分數據,一個用戶在不一樣公衆號openId不同的原則,若是A公衆號遷移到B公衆號,須要進行一次openId轉換,官方有接口,詳情看:http://kf.qq.com/faq/170221aUnmmU170221eUZJNf.html。 目前小程序沒法遷移。
微信開發容易出現不少坑,不止於技術帶來的,而其體量也愈來愈大,先後端都應該瞭解整個開發流程、開發配置、運營規則等等,不然容易出了問題不知道是誰的問題,解決問題的效率會很是低,甚至相互甩鍋。 微信生態功能在不停的迭代,開發者技術文檔、各類政策也時而變動,這些都是咱們須要時刻關注的。