一、回调方法定义
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