Java 微信小程序登录

这篇具有很好参考价值的文章主要介绍了Java 微信小程序登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

服务端微信小程序登录流程.文章来源地址https://www.toymoban.com/news/detail-504888.html

1.微信小程序获取token


    @Value("${wechat.mini.appid}")
    private String wechatAppId;
    @Value("${wechat.mini.secret}")
    private String wechatSecret;

    private String getWechatToken () {
        log.info("微信小程序获取token");
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wechatAppId +"&secret=" + wechatSecret;
        try {
            String rest = HttpRequestUtil.get(url);
            WeChatToken weChatToken = JSON.parseObject(rest, WeChatToken.class);
            if (weChatToken.getErrcode() == null || weChatToken.getErrcode().equals("0")) {
                return weChatToken.getAccess_token();
            }
            log.error("微信小程序获取token失败" + weChatToken.getErrmsg());
            return null;
        } catch (Exception e) {
            log.error("微信小程序获取token失败" + e.getMessage());
            return null;
        }
    }

2.获取手机号

    // 前端通过code换取用户手机号
    // 每个code只能使用一次,code的有效期为5分钟
    @GetMapping("/getPhoneNumber")
    public Result<Authority> getPhoneNumber(@RequestParam("code") String code) {
        log.info("微信小程序获取手机号:" + code);
        String wechatToken = getWechatToken();
        if (StringUtils.isEmpty(wechatToken)) {
            return Result.error("服务异常,请重试");
        }
        String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" +  wechatToken;
        try {
            HashMap<String, String> map = new HashMap<>();
            map.put("code", code);
            String rest = HttpRequestUtil.post(url, JSON.toJSONString(map));

            WeChatSession weChatSession = JSON.parseObject(rest, WeChatSession.class);
            if (weChatSession.getErrcode() == null || weChatSession.getErrcode().equals("0")) {
                String phone_info = weChatSession.getPhone_info();
                WeChatPhoneInfo phoneInfo = JSON.parseObject(phone_info, WeChatPhoneInfo.class);
                return Result.success(phoneInfo);
            }
            return Result.error(weChatSession.getErrmsg());
        } catch (Exception e) {
            log.error(e.getMessage());
            return Result.error("服务异常,请重试");
        }
    }
@Data
public class WeChatSession {
    String openid;
    String session_key;
    String unionid;
    String errcode;
    String errmsg;
    String phone_info;

}

3.小程序登录授权

// 前端通过code获取微信session信息
    @GetMapping("/code2Session")
    public Result<String> code2Session(@RequestParam("code") String code) {

        log.info("微信小程序登录:" + code);
        String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wechatAppId + "&secret=" + wechatSecret + "&js_code=" + code + "&grant_type=authorization_code";
        try {
            String rest = HttpRequestUtil.get(url);
            WeChatSession weChatSession = JSON.parseObject(rest, WeChatSession.class);
            if (weChatSession.getErrcode() == null || weChatSession.getErrcode().equals("0")) {
                return Result.success(weChatSession);
            }
            return Result.error(weChatSession.getErrmsg());
        } catch (Exception e) {
            log.error(e.getMessage());
            return Result.error("服务异常,请重试");
        }
    }

4.微信小程序用户登录

    // 校验用户是否注册,是否绑定
    // 未注册用户先注册
    // 未绑定用户
    @PostMapping("/login")
    public Result<Authority> login(@RequestParam(name = "appId") String appId, @RequestParam(name = "openId") String openId, @RequestParam(name = "mobile") String mobile) {
        return loginFacadeService.loginByOpenId(appId, openId, mobile);
    }

5.首次登录小程序的用户进行绑定

// 首次登录小程序的用户记录openId,下次使用openId直接登陆
    @PostMapping("/bind")
    public Result<Authority> bind(@RequestBody @Valid WeChatBind weChatBind) {
        return loginFacadeService.bindOpenId(weChatBind.getAppId(), weChatBind.getMobile(), weChatBind.getPswd(), weChatBind.getOpenId());
    }

到了这里,关于Java 微信小程序登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Fiddler抓取PC端微信小程序请求方法

    最近PC端的微信更新了,在微信中也可以打开相对应的小程序了,那么对于大多数测试同学来说要是可以在PC端打开小程序直接查看小程序发出的HTTPS请求报文,那么定位问题也就太方便了吧,我就是抱着这样的一个心态来分享一下如何在PC端查看小程序的请求方法,题主亲测

    2024年02月11日
    浏览(48)
  • charles 如何获取电脑端微信小程序接口

    安装证书 设置代理端口 即可抓取美团酒店小程序的数据 从charles 可以抓取出header 请求,没有所谓的通过遍历循环能简单的得到数据,请求包含加密信息 随便改下数据就是 所以如果要得到这些数据,还非得通过小程序模拟人滑动获取数据,在企业数据开发中,也确实要重视

    2024年02月15日
    浏览(33)
  • Burpsuite联动Proxifier抓包pc端微信小程序

    工具Proxifier以及burpsuite Proxifier下载地址 https://www.mustdown.com/software/13717.html 以上是破解版汉化版的下载地址,也可以去Proxifier官网下载30天的试用版本下载地址如下 https://www.proxifier.com Proxifier配置 配置文件--代理规则--添加 名称随意填写 应用程序填写WeChatAppEx.exe 动作选择Pro

    2024年02月01日
    浏览(41)
  • Proxifier与Burp联动 抓取PC端微信小程序

    目录 一、 配置burp并安装CA证书  1. 证书下载 2. 安装证书 二、 配置proxifile 1. 启用HTTP代理服务器 2. 配置代理服务器 3. 设置程序流量的代理规则 三、 抓包 现在就可以愉快的抓包喽~ 微信版本:3.9.9.43 Proxifier 下载链接:https://www.proxifier.com/ Burp Suite 下载链接:Burp Suite - Applic

    2024年04月17日
    浏览(35)
  • PC端微信小程序使用Fiddler进行爬取抓包

    本博客用于个人学习与工作中的收获 前言 前两天被安排了一个没有接触过的爬取微信小程序中数据的任务,虽然我是连爬虫貌似都还没写过的实习仔,但是想着应该不难,那可不就信心满满地接下任务了。然后第一天,一整天都在查资料看python爬虫相关的东西,什么 urllib

    2024年01月17日
    浏览(35)
  • fiddler抓取不了PC端微信小程序的包解决方法

    最近突然遇到微信抓取不到小程序包,之前都是好的,但突然就凉凉了,经过不懈的查找终于在某个大佬的文章找到解决方法。原址在这里:https://mbd.baidu.com/ma/s/VwHQ8Rom 以下是自己的操作记录。 打开小程序,然后打开任务管理器找到小程序的应用, 右键点击小程序,或者M

    2024年02月16日
    浏览(29)
  • Java 微信小程序登录

    服务端微信小程序登录流程.

    2024年02月11日
    浏览(27)
  • Java - 微信小程序授权手机号登录

            最近做了一个关于商城的项目,B端选用若依的开源框架,C端还是vue前后端分离。其中C端主要是小程序的形式,所以想着来总结一下对接微信小程序登录中Java部分遇到的坑即代码分享! 废话不多说,直接上代码! 1、controller 层代码          入参我这边是直接使用

    2024年02月04日
    浏览(36)
  • 微信小程序 + Java + Mysql(登录 Demo)

    目录 一、开发前准备 二、设计登录页面(小程序) 三、创建 Maven 项目 四、创建数据库与数据表 五、后台代码(Java Servlet) 六、运行 七、总结 建议  1、注册一个微信开发者账号:https://open.weixin.qq.com (略)  2、开发工具:idea、Mysql、微信开发者工具  3、应用技术:Ja

    2024年02月03日
    浏览(29)
  • 微信小程序获取手机号登录(Java后端)

    1.前端请求getPhoneNumber方法获取code传给后端接口; 2.后端接口通过配置的appid、secretKey请求接口https://api.weixin.qq.com/cgi-bin/token获取access_token参数; 3.后端通过参数code和参数access_token,去请求接口https://api.weixin.qq.com/wxa/business/getuserphonenumber来获取手机号。

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包