微信公眾號網頁開發——授權登錄,js安全域名,jssdk使用


微信的普及,好多項目開始運行在微信環境中,微信公眾號算是一個很常見的平台,主要介紹微信公眾號內部,網頁開發的一些知識點和值得關注的點;  

沒有基礎的可以先看下微信官方文檔的基礎介紹;

一、首先說說,我們自己開發的h5網頁,配置在公眾號平台內,怎么獲取微信用戶信息;

 1、很重要的一步js安全域名配置配置,看下微信官方的介紹吧,如下圖:

 

簡單理解就是,前端h5項目運行的服務器域名,注意是域名,不是IP

當然這個域名配置由微信公眾號管理者進行配置,只要確認前端項目運行服務器域名給他們配就行;

需要注意的有兩點,

1)端口必須是80端口,也就是不能這樣:http://xxx.xxx:8080/xxx.html,不能帶端口號!切記切記,不然你就別玩這個公眾號網頁開發了(微信就是這么牛逼,這是他們規定的);

2)看到上面的圖片,說有一個txt文件要放置在提供的域名目錄下,可以是根目錄,也可以指定目錄下面,配置好之后,直接瀏覽器地址欄訪問這個路徑,能打開就成功了,此處還有一個坑:

    如果把這個txt文件放置在根目錄,你的h5訪問路徑就不能帶路徑也就是放置在根路徑下面,http://xxx,xxx/index.html是沒有問題的,如果h5項目是http://xxx.xxx/mp/index.html,這是行不通;

    同理,如果你把這個txt文件放置在某個文件下,如:http://xxx.xxx/mp,放在mp文件夾下,那你的h5也要放在這個路徑下面,http://xxx.xxx/mp/index.html;不然肯定有問題;

至於什么問題,如果你后面要調用微信的jssdk,在wx,config時會一直提示你,config err: invalid url domain;啥意思?域名不合法啊!

這個問題搞定好了之后,后面會非常順利,通常直接讓運維或者后端大佬們,直接放根目錄就行,也別搞什么其他端口,就80端口;

二、授權登錄

授權登錄第一步就是獲取微信返回的code值,只有拿到這個code值,才能后續的獲取微信用戶信息,那怎么拿到微信返回的code值?很簡單,文檔有實例,我們要做的只是改改參數就行:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect //若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限。

上面標紅的幾個參數值,是需要替換成自己需要的值,

APPID=>公眾號的唯一標識,申請公眾號已經分配好的;

REDIRECT_URL=>在成功拿到code值,你需要跳轉到你項目的路徑地址,比如login.html之類的;

SCOPE=>有兩個固定值:snsapi_base,snsapi_userinfo ,兩者任選其一,兩個值區別,看文檔自然明白;

STATE=>這個參數是自定義,什么值都行,你配置什么值,到時候跳轉回來后,原樣給你帶回來,需要注意的是有格式要求(重定向后會帶上state參數,開發者可以填寫a-zA-Z0-9的參數值,最多128字節);

拿到code后,微信會自動跳轉會你配置的鏈接地址並攜帶code,state參數——redirect_uri/?code=CODE&state=STATE,這種格式的,直接在url中取參數就行;

這一步搞定之后,后面就是各種調微信接口,傳對應接口需要的參數就行;

三、調用jssdk

這一步的前置條件就是第1點的,js安全域名要配置通過,不然你不可能調用sdk成功的,相信我沒錯的;

那如何調用jssdk呢?很簡單,也有文檔說明=>JSSDK調用說明

1)先在你需要調用的sdk的頁面,引入js文件;http://res2.wx.qq.com/open/js/jweixin-1.4.0.js 或者http://res.wx.qq.com/open/js/jweixin-1.4.0.js;

2)完善配置信息,一般前后端分離項目,都是前端調用后端接口,把這一堆參數返給前端,然后前端在js里面直接給對應參數賦值就行,(因為signature簽名參數,通常要后端來生成,生成簽名需要獲取一個授權參數jsapi_ticket,這個需要后端請求微信接口,才能拿到,詳情見文檔的簽名規則)

wx.config({
  debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
  appId: '', // 必填,公眾號的唯一標識
  timestamp: , // 必填,生成簽名的時間戳
  nonceStr: '', // 必填,生成簽名的隨機串
  signature: '',// 必填,簽名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

上面wx.config配置好之后,工作基本完成,剩下的就是根據自己項目需求調用特定的sdk,比如自定義分享,優惠券。。。。按照文檔走就OK,挺簡單;

總結:js安全域名配置很重要,非常重要!

 


免責聲明!

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



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