Implemente rápidamente el desarrollo de autorización y autenticación de cuentas públicas de WeChat
Recientemente participó en el desarrollo de mini programas y cuentas públicas de WeChat. Todo el mundo sabe que el desarrollo y la depuración de WeChat es problemático, por lo que recomiendo NATTAPP, una herramienta de penetración en la intranet. Adjunto se encuentra la dirección de inicio rápido de un minuto del sitio web oficial: /article/natapp_newbie. Configure un nombre de dominio en esta plataforma. Este nombre de dominio se puede asignar al área local.
?
Antes del desarrollo de WeChat, primero debe tener un nombre de dominio registrado como /Wechat-Group/weixin-java-tools
Crear una nueva clase de configuración de URL
configuración yml
Interfaz de autorización de escritura
@GetMapping("/authorize")
public Stringauthorize(@RequestParam("returnUrl") String returnUrl) {
String url =urlConfig.getWechatMpAuthorize() +"/sell/wechat/userInfo";? //Dirección de devolución de llamada después de la autorización del usuario
//Redireccionamiento después de la ejecución del método
Cadena de redirecciónUrl =wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAUTH2_SCOPE_USER_INFO,
URLEncoder.encode(returnUrl));
devuelve "redireccionamiento:" + redirecciónUrl;
}
Interfaz de dirección de devolución de llamada después de una autorización exitosa
/**
* Este método se volverá a llamar después de que el usuario esté autorizado. obtener el openid del usuario
**/
@GetMapping("/userInfo")
public StringuserInfo(@RequestParam("code") Código de cadena, @ RequestParam("state ") String returnUrl) arroja una excepción {
WxMpOAuth2AccessToken wxMpOAuth2AccessToken =new WxMpOAuth2AccessToken();
prueba {
wxMpOAuth2AccessToken =wxMpService.oauth2getAccessToken(código );
p>}catch (WxErrorException e) {
e.printStackTrace();
log.error("Autorización de la página web WeChat{}" , e.getMessage());
lanzar nueva SellException(ResultEnum.WECHAT_MP_ERROR);
}
WxMpUser wxMpUser =wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, nulo) ;
wxMpUser.getNickname();
Cadena openId = wxMpOAuth2AccessToken.getOpenId();
return "redirect;" + returnUrl +"?openid=" + openId;
}
Después de acceder a las dos interfaces, se completa la autenticación de autorización para obtener información del usuario
Prueba
Abra el Plataforma pública WeChat
/connect/oauth2/authorize?appid= APPID &
redirigir_uri= REDIRECT_URI &response_type=code&scope= ALCANCE &state=STATE#wechat_redirect
Es necesario reemplazar las negritas y cursivas.
Dirección de prueba personal
/connect/oauth2/authorize?appid=your appid&redirect_uri=el nombre de dominio anotado en WeChat/sell/wechat/authorize?returnUrl=&response_type=code&scope=snsapi_userinfo&state= STATE#wechat_redirect
Envíe estas direcciones al Asistente de transferencia de WeChat en WeChat
Al hacer clic en la dirección en el teléfono, se devolverá la llamada a la dirección de autorización preestablecida
Autorización después Una vez finalizado, se volverá a llamar a la interfaz configurada para obtener información del usuario
También se han obtenido el apodo de WeChat y el openId