最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)微信掃碼登入的實例代碼

 更新時間:2020年06月11日 09:46:31   作者:如今與你丶  
這篇文章主要介紹了java實現(xiàn)微信掃碼登入功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

微信掃碼登入

首先去通過微信開放平臺做好開發(fā)者資質認證,創(chuàng)建網(wǎng)站應用然后等待審核

開發(fā)者資質認證

在這里插入圖片描述

網(wǎng)站應用

在這里插入圖片描述

審核通過的話就是這個樣子 還有最底下的授權回調地址 (www.xxxxx.com) 填寫域名即可

在這里插入圖片描述

pom

<!-- WeChatQrCode -->
		<dependency>
			<groupId>com.github.binarywang</groupId>
			<artifactId>weixin-java-mp</artifactId>
			<version>3.4.0</version>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>RELEASE</version>
			<scope>compile</scope>
		</dependency>

第一步 用戶通過點擊事件獲取到微信二維碼連接

在這里插入圖片描述

 /**
  * 獲取微信登陸二維碼地址
  * @return
  */
 @RequestMapping(value = "/getQRCodeUrl",method = RequestMethod.POST)
 public Message getQRCodeUrl() {
  logger.info("獲取二維碼地址");
  try {
   String codeUrl = weChatService.getQRCodeUrl();
   logger.info("codeUrl:"+codeUrl);
   return new Message(ResponseEnum.SUCCESS,codeUrl);
  }catch (Exception e){
   logger.error(e.toString()+e);
   return new Message(ResponseEnum.FALL);
  }
 }
 @Override
 public String getQRCodeUrl() {
  // 生成 state 參數(shù),用于防止 csrf
  String date = DateUtil.format(new Date(), "yyyyMMdd");
  String state = MD5Utils.generate(CSRF_KEY + date);
  return wxMpService.buildQrConnectUrl(wxRedirectUrl,"snsapi_login", state);
 }
 /**
  * 回調地址
  * @param code
  * @param state
  * @return
  */
 @RequestMapping(value = "/wxCallBack",method = RequestMethod.POST)
 public Message wxCallBack(HttpServletRequest request, HttpServletResponse response,
   @RequestParam(name = "code",defaultValue = "") String code, @RequestParam(name = "state",defaultValue = "")String state) {
  if(StringUtils.isBlank(code)){
   return new Message(ResponseEnum.ESSENTIAL_IS_NULL);
  }
  if(StringUtils.isBlank(state)){
   return new Message(ResponseEnum.ESSENTIAL_IS_NULL);
  }
  logger.info("微信回調------------");
  logger.info(code+"------"+state);
  try {
   Message message=weChatService.wxCallBack(request,code, state);
   return message;
  }catch (Exception e){
   logger.error(e.toString()+"\n"+e);
   return new Message(ResponseEnum.FALL);
  }
 }
@Override
 public Message wxCallBack(HttpServletRequest request, String code, String state) {
  String openId = null;
  if (code != null) {
   // 獲取 openid
   try {
    WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code);
    if (accessToken == null) {
     return new Message(ResponseEnum.DATA_IS_NULL);
    }
    openId = accessToken.getOpenId();
    log.info("openId:" + openId);
    /*token = accessToken.getAccessToken();*/
     WxMpUser wxUser = wxMpService.oauth2getUserInfo(accessToken, null);
     log.info(wxUser.toString());
   	  return new Message(ResponseEnum.WECHAT_NOT_BINGDING, wxUser);
   } catch (WxErrorException e) {
    log.error(e.getMessage(), e);
    return new Message(ResponseEnum.FALL);
   }
  }
  return new Message(ResponseEnum.FALL);
 }

前端請求

 $("#weiLog").click(function () {
  $.ajax({
   type: "POST",
   url: "/api/wx/getQRCodeUrl",
   dataType: 'json',
   success: function (result) {
    //console.log(result);
    if(result.code==0){
     this.itop = (window.screen.availHeight - 500) / 2;
     //獲得窗口的水平位置
     this.ileft = (window.screen.availWidth - 400) / 2;
     this.w = window.open(
      result.data,
      "newwindow",
      "height=500, width=600, top=" +
      this.itop +
      ", left = " +
      this.ileft +
      ", toolbar=no, menubar=no,scrollbars=no, resizable=no,location=no, status=no"
     );
    }
   }
  });
 });

總結

到此這篇關于Java實現(xiàn)微信掃碼登入的實例代碼的文章就介紹到這了,更多相關java微信掃碼登入內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JPA之多對多查詢死循環(huán)嵌套問題及解決方案

    JPA之多對多查詢死循環(huán)嵌套問題及解決方案

    這篇文章主要介紹了JPA之多對多查詢死循環(huán)嵌套問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • IDEA斷點調試,斷點不起作用的解決

    IDEA斷點調試,斷點不起作用的解決

    這篇文章主要介紹了IDEA斷點調試,斷點不起作用的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Springboot使用RabbitMQ實現(xiàn)關閉超時訂單(示例詳解)

    Springboot使用RabbitMQ實現(xiàn)關閉超時訂單(示例詳解)

    介紹了如何在Spring Boot項目中使用RabbitMQ實現(xiàn)訂單的延時處理和超時關閉,通過配置RabbitMQ的交換機、隊列和綁定關系,以及編寫監(jiān)聽方法,實現(xiàn)了訂單數(shù)據(jù)的發(fā)送和延時消費,感興趣的朋友一起看看吧
    2025-01-01
  • java final 和instanceof 關鍵字的區(qū)別

    java final 和instanceof 關鍵字的區(qū)別

    這篇文章介紹了java final 和instanceof 關鍵字的區(qū)別,有需要的朋友可以參考一下
    2013-09-09
  • 關于如何搭建CAS服務并將CAS項目導入IDEA

    關于如何搭建CAS服務并將CAS項目導入IDEA

    這篇文章主要介紹了關于如何搭建CAS服務并將CAS項目導入IDEA的問題,文中提供了詳細的圖文講解,需要的朋友可以參考下,如果有錯誤的地方還請指正
    2023-03-03
  • SpringBoot多環(huán)境打包與配置文件排除實踐記錄

    SpringBoot多環(huán)境打包與配置文件排除實踐記錄

    本文介紹了SpringBoot項目多環(huán)境打包與配置文件排除實踐,包括多環(huán)境配置的實現(xiàn)方法、打包時排除配置文件的方法以及動態(tài)加載外部配置文件的最佳實踐,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 解決IDEA target文件夾越來越大的問題

    解決IDEA target文件夾越來越大的問題

    這篇文章主要介紹了解決IDEA target文件夾越來越大的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java如何通過Kerberos認證方式連接hive

    java如何通過Kerberos認證方式連接hive

    該文主要介紹了如何在數(shù)據(jù)源管理功能中適配不同數(shù)據(jù)源(如MySQL、PostgreSQL和Hive),特別是如何在SpringBoot3框架下通過Kerberos認證與Hive進行安全交互,文章詳細描述了Kerberos認證過程,包括配置krb5.conf和keytab文件、處理Hadoop和Hive版本兼容性問題
    2025-02-02
  • java基礎-數(shù)組擴容詳解

    java基礎-數(shù)組擴容詳解

    這篇文章主要介紹了Java數(shù)組擴容實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-08-08
  • Java設計模式之適配器模式簡介

    Java設計模式之適配器模式簡介

    這篇文章主要介紹了Java設計模式之適配器模式,需要的朋友可以參考下
    2014-07-07

最新評論

闽侯县| 新泰市| 阿瓦提县| 敦煌市| 石林| 鄢陵县| 华池县| 阜平县| 台中市| 泾川县| 泰兴市| 吴忠市| 绥中县| 阿合奇县| 东源县| 积石山| 高州市| 商水县| 清涧县| 高唐县| 峨眉山市| 舟曲县| 宜兴市| 积石山| 万宁市| 九龙城区| 梁河县| 隆安县| 霍城县| 彰化市| 钟祥市| 贡山| 长寿区| 岱山县| 万宁市| 昭通市| 旺苍县| 翼城县| 长兴县| 博爱县| 鹤壁市|