范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

35。springboot小程序不需要授权登录

  不需要授权的登录,只能获取到openId,有openId便可从数据库中关联到平台中的用户。
  引入包:                           com.github.binarywang             weixin-java-miniapp             3.6.0         
  WxMaConfiguration:package com.haiyeren.config;  import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; import cn.binarywang.wx.miniapp.bean.WxMaTemplateData; import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage; import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; import cn.binarywang.wx.miniapp.message.WxMaMessageHandler; import cn.binarywang.wx.miniapp.message.WxMaMessageRouter; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; import me.chanjar.weixin.common.error.WxErrorException;  import java.io.File; import java.util.Map;  /**  * @author Binary Wang  */  public class WxMaConfiguration {       private static Map routers = Maps.newHashMap();     private static Map maServices = Maps.newHashMap();        public static WxMaService getMaService(String appid, String secret) {         WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();         config.setAppid(appid);         config.setSecret(secret);         config.setToken("");         config.setAesKey("");         config.setMsgDataFormat("JSON");          WxMaService service = new WxMaServiceImpl();         service.setWxMaConfig(config);          return service;     }      public static WxMaMessageRouter getRouter(String appid) {         return routers.get(appid);     }       private WxMaMessageRouter newRouter(WxMaService service) {         final WxMaMessageRouter router = new WxMaMessageRouter(service);         router             .rule().handler(logHandler).next()             .rule().async(false).content("模板").handler(templateMsgHandler).end()             .rule().async(false).content("文本").handler(textHandler).end()             .rule().async(false).content("图片").handler(picHandler).end()             .rule().async(false).content("二维码").handler(qrcodeHandler).end();         return router;     }      private final WxMaMessageHandler templateMsgHandler = (wxMessage, context, service, sessionManager) -> {         service.getMsgService().sendTemplateMsg(WxMaTemplateMessage.builder()             .templateId("此处更换为自己的模板id")             .formId("自己替换可用的formid")             .data(Lists.newArrayList(                 new WxMaTemplateData("keyword1", "339208499", "#173177")))             .toUser(wxMessage.getFromUser())             .build());         return null;     };      private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> {         System.out.println("收到消息:" + wxMessage.toString());         service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson())             .toUser(wxMessage.getFromUser()).build());         return null;     };      private final WxMaMessageHandler textHandler = (wxMessage, context, service, sessionManager) -> {         service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息")             .toUser(wxMessage.getFromUser()).build());         return null;     };      private final WxMaMessageHandler picHandler = (wxMessage, context, service, sessionManager) -> {         try {             WxMediaUploadResult uploadResult = service.getMediaService()                 .uploadMedia("image", "png",                     ClassLoader.getSystemResourceAsStream("tmp.png"));             service.getMsgService().sendKefuMsg(                 WxMaKefuMessage                     .newImageBuilder()                     .mediaId(uploadResult.getMediaId())                     .toUser(wxMessage.getFromUser())                     .build());         } catch (WxErrorException e) {             e.printStackTrace();         }          return null;     };      private final WxMaMessageHandler qrcodeHandler = (wxMessage, context, service, sessionManager) -> {         try {             final File file = service.getQrcodeService().createQrcode("123", 430);             WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia("image", file);             service.getMsgService().sendKefuMsg(                 WxMaKefuMessage                     .newImageBuilder()                     .mediaId(uploadResult.getMediaId())                     .toUser(wxMessage.getFromUser())                     .build());         } catch (WxErrorException e) {             e.printStackTrace();         }          return null;     };  }
  后台代码(xcxAppId和xcxSecret需要自己填): @ApiOperation(value = "小程序登录,只获取openid")     @PostMapping("loginByWeixin")     public ResultVo loginByWeixin(String code) throws Exception {         ResultVo result = new ResultVo<>();         WeixinLoginVo weixinLoginVo = new WeixinLoginVo();         //获取openid         //通过自定义工具类组合出小程序需要的登录凭证 code         String xcxAppId = "xxxx";         String xcxSecret = "xxxx";         //其他商城的小程序          final WxMaService wxService = WxMaConfiguration.getMaService(xcxAppId, xcxSecret);         WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(code);         String  openid = session.getOpenid();         QueryWrapper queryWrapper = new QueryWrapper<>();         queryWrapper.lambda().eq(UserEntity::getOpenid,openid);         UserEntity user=userService.getOne(queryWrapper);         if(null==user)         {             user=new UserEntity();              user.setOpenid(openid);            userService.save(user);         }         String tokenId = tokenService.getTokenId(user.getId(), "");         weixinLoginVo.setOpenid(openid);         weixinLoginVo.setOpenid(tokenId);         result.setData(weixinLoginVo);         return result;     }
  WeixinLoginVo:package com.haiyeren.entity.vo;  import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data;  @ApiModel("小程序登录返回") @Data public class WeixinLoginVo {     @ApiModelProperty(value="登录令牌")     private String token;     @ApiModelProperty(value="openid")     private String openid; }
  小程序端登录代码:  login: function () {     var that = this;     wx.login({       success: res => {         // 发送 res.code 到后台换取 openId, sessionKey, unionId         console.log("res.code:", res.code)         if (res.code) {           //发起网络请求            wx.request({             url:  "",             data: {               code: res.code                     },             header: {               "content-type": "application/x-www-form-urlencoded"             },             method: "POST", // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT             success: function (res) {               console.log("登陆回调", res);               if (res.data.status == 1) {                                that.globalData.token = res.data.data.token;                               that.globalData.openid = res.data.data.openid;                                           }               if (res.data.status != 1) {                 // 登录错误              //   wx.hideLoading();                 wx.showModal({                   title: "提示",                   content: "无法登录,请重试",                   showCancel: false                 })                 return;               }              },             fail: function (failRes) {               //用户未授权会调用失败,调用失败就进这里             //  wx.hideLoading();             }           })         } else {           console.log("获取用户登录态失败!" + res.errMsg)         }       }       })   }

2022年苹果春季发布会,三款新品基本实锤了按照往年的苹果发布会的情况来看,每年的春季发布会发布的新品基本都是很少的,有时候可能就直接发布一款新品,也有试过就为走了流程,发布了个寂寞等情况也是很常见的,但是今年的春季发布会有2021全球智能手机出货量排名新鲜出炉,全年三星夺冠,Q4苹果第一近日,2021年全球智能手机出货量排行榜相继公布,我们先来看一下2021年第四季度的全球智能手机销量排行情况。Omdia发布的第四季度的统计数据,和以往其他调研机构只公布到第五不同2021全球平板出货1。69亿台,苹果稳居第一平板作为如今很受欢迎的大屏设备,一直以来都是不少人学习娱乐生产力(爱奇艺)的主力设备,有不少人都会在手机之外再购买一台平板电脑。特别是在近两年由于疫情的原因,网课成为了不少学生必须置身鸟巢等大型场馆不怕迷路,AIAR技术助力冬奥北京冬奥会开幕式运用了大量的人工智能5G和云计算等最新科技,为全世界呈现出一场全新的视觉盛宴。而另一项新技术的应用则悄然无声地为场馆内每一个人提供着服务融合了AI和AR技术的智能导为何老外都在说中国的高科技如何牛,但中国科技产品却是老外代言?其实这个和高科技无关,其实和设计有关系!就像很多设计师做设计的时候,就发现英文字体设计起来就是高大上,一旦换成了中文字体,就很难设计出好的风格!这个就需要很多厉害一点的设计师操刀才港股异动港股虎年首个交易日恒生科技股指数涨超2阿里巴巴SW(09988。HK)早盘高开逾5领涨蓝筹港股虎年首个交易日恒生科技指数早盘高开近3,阿里巴巴SW(09988。HK)早盘高开逾5,领涨蓝筹,截止发稿,该股涨482,报119。5港元,成交额12。68亿。美团W(03690午评港股迎来虎年首个交易日恒生科技指数涨超2金融界2月4日消息港股迎来虎年首个交易日,恒指高开2。48后涨幅扩大,截至午盘,恒生指数涨2。71,报24447。31点国企指数涨2。22,红筹指数涨2。01。恒生科技指数涨超2,手里有二十万左右,适合做什么样的创业项目?去农村养狗,保证能一本一利。我的堂兄就是靠养狗发财的,他从广东打工回来,也是同你一样有二十万资金,他租赁了一所闲置的村小学五年,用来养狗。原来是养蚕,后来改养狗,终于逆袭发了。在我电动车48v的是四块12v串起来的,续航不太足可以再加一块12v的并联,可以用吗?题主的意思是只在其中一块电池上再并一个,把组成电池组的电池由4个变为5个。先说一下答案这样做不可以。因为这个48的电池组是由4块12v电池共同构成的,缺一不可。其中任何一块电池出现自动驾驶汽车发生事故谁该负责?越来越多国家和地区开始试验自动驾驶车辆,未来这些无人车也许很快就会穿越大街小巷。但是自动驾驶车辆如果发生事故,责任应该算谁的?目前为止仍然没有法律定论,而是一个模糊的地带。有法律专宇宙四种粒子,寻找思维和记忆形成方式生命的特征,从外形可见是对称的,而这种对称结构,可以更好的进行光子对撞,形成快子和空间粒子。生命起初,脑海是一团黑暗物质和空间粒子的混合体。当外界光子进入脑海,因为光的速度不变,会
美法院判决中兴通讯五年合规监察期结束不附加任何处罚来源新华社据美国得克萨斯州一家法院日前判决及中国中兴通讯股份有限公司公告,美国对中兴通讯的合规监察期于美国时间22日结束,且不附加任何处罚,美国此前派驻该公司的监察官任期也于同日结音响界的特斯拉一前言BLUESOUND是一家致力于完美实现无线数字高保真音频的公司,也许你对这个品牌名并不熟悉,但提到NADPSB,只要对音响产品稍有接触的朋友,就应该知道了。BLUESOUND银行春招近万岗位虚席以待金融科技人才成限量版资源据证券日报记者不完全统计,已有农业银行交通银行民生银行等超10家银行发布招聘公告。对金融科技人才的招揽仍然是各家银行招聘的重点领域。本报记者李冰见习记者张博我现在离职了,正值春招打优化拍摄功能三星发布两款中低端5G智能手机据韩联社网站报道,三星电子近日在线发布旗下中低端入门级新机GalaxyA535G版和GalaxyA335G版。GalaxyA系列采用5纳米制程芯片,增强人工智能算力,优化夜景拍摄模织密信息安全防护网由13个部门联合修订发布的网络安全审查办法(以下简称办法)日前开始施行,受到广泛关注。国家网信办有关负责人表示,对办法进行修订,主要目的是进一步保障网络安全和数据安全,维护国家安全今日上市祥明智能鹿山新材中国经济网北京3月25日讯今日,祥明智能(301226)鹿山新材(603051)2只新股上市。祥明智能(301226)祥明智能主要从事微特电机风机及智能化组件的研发生产与销售,为H2000元买不到好手机?这3款性价比十足,好用不贵不知道从什么时候开始,国产手机普遍出现了大涨价,以往两三千元就可以选择一款旗舰机,但如今一款旗舰机都要五六千元以上,甚至有些直接突破了万元,这是很多消费者无法承受的,但也无法否认旗厦大科研团队首次揭示细胞原位坏死小体组织结构特征来源台海网台海网3月24日讯据福建日报报道前方就是细胞膜城,但城下还有条河,怎么办?混合谱系激酶结构域(MLKL)分子正在着急,突然看到河上有拼成的木块。于是,它们四位以上一组,踩你手机上都有哪些非常神奇的软件?背着宝剑的观点谢谢邀请!最近每天都有推送app,现在汇总推荐给你们1。完事儿推荐理由一款美到窒息的日常管理应用,可以用来做日记做记录写待办事项设定目标建立养成习惯等。2。NFC卡模为什么苹果手机把后壳改成玻璃?苹果11以上的手机采用了无线充电技术,这个技术可以说在品牌机机型中苹果是最后一家采用。手机无线充电技术是日本夏普手机在2005年最先采用,苹果手机晚了整整10年。无线充电技术其实很超级小桀6万人砍不下1台手机,拼多多砍一刀的背后,有何猫腻?网友6万人能砍一座城,却砍不下资本家手里的一台手机终于有人揭露拼夕夕的砍一刀套路了。近日,游戏主播超级小桀借着高人气,在直播间让网友帮忙砍一刀,帮助自己在拼夕夕免费领手机活动中,拿