java微信小程序中获取access_token

 

微信官方文档接口调用凭证接口getAccessToken

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html

 AccessTokenUtil .java

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

@Component
public class AccessTokenUtil {

    @Autowired
    private RedisTemplate redisTemplate;
    // 小程序唯一凭证,即 AppID
    public static final String appId = "xxx";
    // 小程序唯一凭证密钥,即 AppSecret
    public static final String secret = "xxx";


    /**
     * 接口调用凭证 access_token
     *
     * @return
     */
    public String getAccessToken(){
        // 从缓存中获取
        ValueOperations valueOperations = redisTemplate.opsForValue();
        String accessToken = String.valueOf(valueOperations.get("access_token"));
        if (!StringUtils.isEmpty(accessToken) && !"null".equals(accessToken)) {
            return accessToken;
        }
        String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+secret;
        String result = HttpClientUtil.doGet(accessTokenUrl);
        JSONObject json = JSONUtil.parseObj(result);
        String access_token = String.valueOf(json.get("access_token"));
        Long expires_in = Long.valueOf(String.valueOf(json.get("expires_in")));
        if(StringUtils.isEmpty(access_token)){
            access_token="";
        }
        System.out.println("json:"+json.toString());
        // 存redis, 过期时间为7200秒
        valueOperations.set("access_token",access_token,expires_in, TimeUnit.SECONDS);
        return access_token;
    }
}

 

输出:

json:{"access_token":"58_izt-9LP7oQRDzUrIKItfmZ-t99kYTeJ8TQ5yr3zzofl3LdkH0IR_4R_x9UFqYmgK_K7xVVXLwyDzAH9UlHw89H0guqQU2eV7WD2Fvub63a-t2KjkdRbxG6MmbEFLfM2NFmweeH-SFAF2faO3VAXjAEACHE","expires_in":7200}

redis:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好,关于Java实现微信、手机号登录的方法,具体实现方式需要根据您所使用的具体技术栈而定。下面我将分别介绍微信登录和手机号登录的实现方式。 微信登录: 1. 首先需要在微信开放平台注册并创建应用,获取到AppID和AppSecret。 2. 在前端页面引入微信登录SDK,并调用微信登录接口获取到code。 3. 将code发送到后台服务器,后台服务器使用AppID和AppSecret调用微信接口换取access_token和openid。 4. 根据openid判断用户是否已经注册过,如果已经注册则直接登录,如果未注册则需要引导用户进行注册。 5. 注册成功后,将用户信息保存到数据库并生成一个token返回给前端,前端保存token并在后续请求带上token以供验证。 手机号登录: 1. 用户在前端输入手机号并点击发送验证码按钮,前端调用后台接口发送验证码到用户手机。 2. 用户在前端输入验证码并点击登录按钮,前端将手机号和验证码发送到后台服务器。 3. 后台服务器校验手机号和验证码是否匹配,如果匹配则生成一个token返回给前端,前端保存token并在后续请求带上token以供验证。 4. 如果后台服务器发现该手机号未注册,则需要引导用户进行注册,注册方式可以与微信登录类似。 以上就是Java实现微信、手机号登录的基本流程,具体实现方式需要根据您的具体技术栈而定。关于微信小程序获取手机号授权用户登录功能,也可以使用类似的流程进行实现,只需要在前端调用微信小程序获取手机号授权接口即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yixian123.com

谢谢打赏,祝老板心想事成

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值