微信開發筆記

官方開發文檔
 
接入步驟
一、利用filter獲取微信驗證
須要更改端口爲80,(默認端口不要寫)
 
遇到的問題:
該賬號是微信公衆平臺賬號,不能用於登陸微信開放平臺
須要從新註冊,由於是獨立的
 
二、在開發-基本配置裏找到appid、secret,而後填入下面圖片中進行驗證,若是校驗經過,則能夠經過此接口獲取access_token
 

微信公衆平臺接口調試工具

若是校驗失敗,能夠從新再試!
三、經過access_token獲取iplist
https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN
獲取微信服務器ip list:
{"ip_list":["101.226.62.77"]}
 
 
網頁受權:
填寫第一步獲取的code參數
若是網頁受權做用域爲snsapi_userinfo,則此時開發者能夠經過access_token和openid拉取用戶信息了。
總結
啓用服務器配置後,沒法推送獲取,另外菜單也不能使用
 
 
簽名是爲了給微信服務器發送隨機穿並驗證,而且是get方法
之後全部的聊天請求都會由另外的post來處理
 
 
網頁受權的地址,不要帶www,另外也不要有/,也就是com截止!
內網穿透:
 http://www.ngrok.cc/
openID is 公衆號ID與用戶微信ID合成加密而來
因此纔有了unionid
因爲access_token擁有較短的有效期,當access_token超時後,可使用refresh_token進行刷新,refresh_token有效期爲30天,當refresh_token失效以後,須要用戶從新受權。
方案一:爲每一個受權過的用戶建立一個線程定時刷新token
由於,用戶受過權。能夠利用refresh_token的30天期限特徵不須要其再受權,
除非取消了關注,從新關注後openid任然能夠繼續使用
 
 
以前的邏輯所有錯誤!
  if (code == null || code.equals("authdeny")) {
                isValidCode = false;
            }
這個是用戶不一樣意,而後取消受權後強制跳轉到受權按鈕
  //若是session未空或者取消受權,重定向到受權頁面,這句沒搞懂是什麼意思
這個是用於驗證用戶是否點擊了受權贊成按鈕
,並非拿來二次調用的!!!!!!!!!!!!!
不對,是須要二次調用的,第二次調用由於有code了
 
 
獲取用戶信息,只是獲取本地的數據庫表中的緩存,因此,沒有必要使用access_token
 
  
 
跨域 回調解決
 
<mvc:mapping path="/**"/> <mvc:exclude-mapping path="/hello"/>
exc必須放在下面!!!!!!!!!!
 
這個地方,以及其它若干地方須要去掉http
 
 
 
// UserWx userWx = JSONObject.toJavaObject(jsonUser, UserWx.class); 報錯須要解決
 
項目位置:        System.out.println(System.getProperty("user.dir") );
request.getSession().getServletContext().getRealPath("")
 
用戶點擊認證鏈接,不管是否確認受權,都會調到redirectUrl頁面, code可能會變爲ahthden
把code放在首口,多是由於做者的回調地址也是認證地址
 
//                    UserWxService memberService = (UserWxService) WebAppContext.getObject("UserWxService");
//                    response.getWriter().print(obj);
                    userWx = userWxService.saveOrUpdate(userWx);
 
   //若是openid不存在,則返回state並跳轉到註冊,可是跳轉須要用到 頁面,但是參數怎麼傳過去
        
        //或者使用微信回調  XXX行不通
        //放在json裏面做爲
        
        //--不存在話返回標識,約定值,1,到達用戶中心,2,到達註冊頁面
        response.getWriter().print(code);

關於網頁受權access_token和普通access_token的區別html

一、微信網頁受權是經過OAuth2.0機制實現的,在用戶受權給公衆號後,公衆號能夠獲取到一個網頁受權特有的接口調用憑證(網頁受權access_token),經過網頁受權access_token能夠進行受權後接口調用,如獲取用戶基本信息; 數據庫

二、其餘微信接口,須要經過基礎支持中的「獲取access_token」接口來獲取到的普通access_token調用。 json

關於微信用戶登陸的最後的決策:
提供統一的頁面式回調URL,而後後面全部的業務儘可能在後臺完成
相關文章
相關標籤/搜索