一、回調方法定義
ApiWxController中添加方法
@GetMapping("callback")
public String callback(String code, String state){
//回調被拉起,並獲得code和state參數
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: wxc606fb748aedee7c
# 微信開放平台 appsecret
appSecret: 073e8e1117c1054b14586c8aa922bc9c
# 微信開放平台 重定向url(guli.shop需要在微信開放平台配置)
redirectUri: http://imhelen.free.idcfengye.com/api/ucenter/wx/callback
注意:yml文件中redirecturi的域名必須和開放平台中應用配置的授權回調域的值完全一致,
但是開放平台上的一個應用只能配置一個回調地址,提供給一個開發者使用
2、方式二:外網服務器跳轉
解決多人無法共享回調域設置的問題。
步驟:將跳轉程序部署到外網服務器-->開放平台配置回調地址-->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