一 回調方法定義
控制器中定義回調方法
@GetMapping("callback")
public String callback(String code, String state, HttpSession session) {
System.out.println("callback被調用");
System.out.println("code:" + code);
System.out.println("state:" + state);
return null;
}
用戶點擊“確認登錄”後,微信服務器會向穀粒學院的業務服務器發起回調,回調地址就是yml中配置的redirecturi。
二 內網穿透
1 開發步驟
步驟:開通並啓動內網穿透ngrok > 開放平臺配置回調地址 > yml配置
yml配置:
wx:
open:
# 微信開放平臺 appid
appId: <微信開放平臺 appid>
# 微信開放平臺 appsecret
appSecret: <微信開放平臺 appsecret>
# 微信開放平臺 重定向url(guli.shop需要在微信開放平臺配置)
redirectUri: <微信中你配的回調地址>
注意:yml文件中redirecturi的域名必須和開放平臺中應用配置的授權回調域的值完全一致,
但是開放平臺上的一個應用只能配置一個回調地址,提供給一個開發者使用。
2 開通方式
ngnok的地址:http://ngrok.cc
開通方式:
3 使用方式
下載客戶端,啓動客戶端
4 原理說明
三 外網服務器跳轉
解決多人無法共享回調域設置的問題。
步驟:將跳轉程序部署到外網服務器 > 開放平臺配置回調地址 > yml配置
跳轉程序:部署在guli.shop上
guli.shop服務器的接口可以接收微信的回調請求,將微信回調請求轉發到開發者的localhost的8160端口,並傳遞code和state參數
開放平臺配置:
授權回調域一般設置爲一個內網穿透地址,例如使用ngrok工具申請一個內網穿透地止
yml配置
wx:
open:
# 微信開放平臺 appid
appId: wxed9954c01bb89b47
# 微信開放平臺 appsecret
appSecret: a7482517235173ddb4083788de60b90e
# 微信開放平臺 重定向url(guli.shop需要在微信開放平臺配置)
redirectUri: http://guli.shop/api/ucenter/wx/callback8160
四 測試回調跳轉服務器
訪問回調服務器
http://guli.shop/api/ucenter/wx/callback8160?code=1234&state=666
跳轉到
http://localhost:8160/api/ucenter/wx/callback?code=1234&state=666