微信公眾號+h5項目開發


需求:以微信公眾號為入口,提供h5頁面共用戶進行業務操作,用戶信息完全依賴公眾號;

方案:創建公眾號-》用戶關注公眾號-》靜默授權到h5頁面-》h5頁面獲取用戶信息-》用戶在h5頁面上進行業務操作;

准備:公眾號一個(必須是需要認證的,認證需要硬性條件,無奈只能用測試賬號,測試賬號有一個坑的地方,下邊會講到), 可以進行域名訪問80端口的服務器一台(域名和服務器都好搞也便宜,但是域名需要備案才能訪問,無奈只能找內網穿透的工具,我用的是natapp,一開始用的是免費版的,但是域名很不穩定,每變一次都需要改代碼改設置,索性在natapp上買了一個vpi隧道9塊錢一個月,然后又在上面買了個域名,3塊錢一年,用了一下午還算穩定,用來做開發綽綽有余了)

工具:VS+HBuilderX+Mysql+微信開發工具

步驟:

1 .net創建webapi提供接口 實現功能A 用戶驗證和信息獲取 2 具體業務接口

2 mysql數據庫存儲用戶信息和業務數據

3 uni-app創建后h5頁面

也沒什么高深的代碼,分享一下頁面授權部分代碼

onLoad() {
            var appId = 'xxx';
            var reg = new RegExp("(^|&)" + "code" + "=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            var code = "";
            if (r != null)
                code = unescape(r[2]);

            if (code == null || code == "") {
                window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" +
                    encodeURIComponent("xxx") +
                    "&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"; //頁面授權
            } else {
          //授權后根據返回的code獲取用戶信息 uni.request({ url:
'xxxx', header: { 'content-type': 'application/x-www-form-urlencoded' //自定義請求頭信息 }, method: 'POST', data: { Code: code }, success: res => { this.Data= res.data; }, fail: fail => {}, complete: () => {} }); } }

踩坑的地方:

a js跨域的問題,網上解決方案很多,我索性把web站點和api站點部署到一個站點下,其中一個布置成站點,另一個布置成該站點下的應用程序;

b 如果用戶尚未關注公眾號,則提示需關注該公眾號,錯誤碼10006。眼下之意不關注不能玩。問題原因網上大都說是測試賬號的原因;

c 我一開始授權那里思路錯了,按照需求,因為用戶是在關注公眾號的前提下操作,所以我只要通過靜默授權拿到用戶的openId就可以通過公眾號接口拿到用戶詳細信息 ,一開始以為一定需要非靜默授權。非靜默授權一般都是用戶沒有關注公眾號的情況下才會用的。

d 之前沒接觸過公眾號開發,剛開始跟幾個同事討論這個東西,他們竟然都很肯定的說openid每一次都會變/或者重新關注公眾號后會變,今天事實證明他們錯了。因為openid變掉的話我都沒辦法標識用戶了,搞得慌慌的。看來實踐出真知,而且自己不確定的技術一定不要說的很確定的樣子,對人對己都不好,切記。


免責聲明!

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



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