微信開發相關,了解一下


前言:

  從微信公眾號到現在的小程序,涉及微信開發方面的內容越來越多,工作大多時候是需要我們更了解微信開發的,比如老大說要做個什么東西,涉及到微信的,我們能立馬想到方案或者提出可行性的分析嗎?  因為微信開發有它自己的一套規則,有它自己的一套框架,有一定它帶來的便利,也就有它帶來的限制。  這篇文章,不寫入門,不寫開發流程,主要聊聊最近的一些調研和細節。

 

主要平台:

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

 

  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給重置了。  結論是后台權限還是別給非研發同事吧,如果要給,也要提前提醒一下這些注意事項。

 

消息分發相關

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

  • 公眾號可以以一定頻次群發消息(訂閱號為每天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。  目前小程序無法遷移。

 

結語

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM