springboot获取小程序的openid

这个非常简单苦于网上资料杂乱,弄了半天

wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
if (res.code) {
wx.request({
url: ‘http://localhost:8080/cis’,
data: {
code: res.code
},
header: {
‘content-type’: ‘application/x-www-form-urlencoded’
},
success(res) {
console.log(“openid:” + res.data.openid);
if (res.data.openid != “” || res.data.openid != null) {
// 登录成功
wx.setStorageSync(“openid”, res.data.openid);//将用户id保存到缓存中
wx.setStorageSync(“session_key”, res.data.session_key);//将session_key保存到缓存中
} else {
// 登录失败
// TODO 跳转到错误页面,要求用户重试

            return false;
          }
        }
      })
    } else {
      console.log('获取用户登录态失败!' + res.errMsg)
    }
  }
})

在这里插入图片描述

code是从前端传过来的 每次不一样

然后是后端
先导两个依赖 一定要导进来

    <!--https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.49</version>
    </dependency>
    <!--http requset-->
    <dependency>
        <groupId>com.github.kevinsawicki</groupId>
        <artifactId>http-request</artifactId>
        <version>6.0</version>
    </dependency>

package cn.com.doone.sc.tx.cloud.dyb.system.controller.openId;

import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.RequestMessage;
import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.ResponseMessage;
import cn.com.doone.sc.tx.cloud.dyb.system.bean.po.code.CodePo;
import cn.com.doone.sc.tx.cloud.dyb.system.service.openId.WeChatService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**

  • @Auther: liufei

  • @Date: 2020/5/9 14:40

  • @Description:
    */
    @RestController
    public class WeChatController {

    @Autowired
    private WeChatService weChatService;

    @PostMapping("/getOpenid")
    public ResponseMessage getOpenid(@RequestBody RequestMessage requestMessage){
    String code = requestMessage.getBody().getCode();
    return weChatService.getOpenid(requestMessage);
    }
    }

package cn.com.doone.sc.tx.cloud.dyb.system.service.openId;

import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.RequestMessage;
import cn.com.doone.sc.tx.cloud.dyb.common.tool.vo.ResponseMessage;
import cn.com.doone.sc.tx.cloud.dyb.system.bean.po.code.CodePo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.kevinsawicki.http.HttpRequest;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**

  • @Auther: liufei

  • @Date: 2020/5/9 15:14

  • @Description:
    /
    @Service
    public class WeChatService {
    private final static String APPID=“wx76de200fe69b5878”;
    /
    private final static String APPID=“wxd7878dbde55f0312”;/
    private final static String SECRET_KEY=“9a21fd33bc58c12deb919371e6a69596”;
    /
    private final static String SECRET_KEY=“33c0aeeb77f5467a2a8d8e628ca697c7”;*/

    public ResponseMessage getOpenid(RequestMessage requestMessage) {
    Map<String, String> data = new HashMap<String, String>();
    data.put(“appid”, APPID);
    data.put(“secret”, SECRET_KEY);
    data.put(“js_code”, requestMessage.getBody().getCode());
    data.put(“grant_type”, “authorization_code”);
    String response = HttpRequest.get(“https://api.weixin.qq.com/sns/jscode2session”).form(data).body();
    System.out.println("Response was: " + response);
    JSONObject obj= JSON.parseObject(response);//将json字符串转换为json对
    return new ResponseMessage().success(obj);
    }
    }
    在这里插入图片描述
    最后就可以生成对应的sessionId 和openid了
    而且每次code不一样 ,可是openid都会一样 很神奇 以后研究一下

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot 微信小程序对接可以通过以下步骤完成: 1.注册微信公众平台账号并创建小程序获取小程序的AppID和AppSecret。 2.创建一个Spring Boot项目,添加Spring Boot对WeChat SDK的依赖。 3.在项目中配置小程序的AppID和AppSecret,可以通过在配置文件中设置或者在代码中进行配置。 4.实现微信小程序的登录,可以通过WeChat SDK提供的接口获取用户的OpenIDSessionKey。 5.实现微信小程序的支付功能,可以通过WeChat SDK提供的接口实现支付功能。 6.实现微信小程序的模板消息推送,可以通过WeChat SDK提供的接口实现模板消息的发送功能。 7.实现微信小程序的二维码生成,可以通过WeChat SDK提供的接口生成二维码图片。 8.实现微信小程序的数据统计,可以通过WeChat SDK提供的接口获取小程序的访问数据和用户数据。 以上是基本的对接流程,具体实现还需要根据项目需求进行调整和扩展。 ### 回答2: Spring Boot对接微信小程序的方式主要有以下几个步骤: 1. 获取微信小程序的AppID和AppSecret,可以在微信公众平台上申请得到。 2. 在Spring Boot项目中添加依赖,例如引入Spring Boot的Web模块和微信的SDK等。可以使用Maven或Gradle进行依赖管理。 3. 创建微信小程序登录的接口,用于接收小程序的登录请求,获取小程序的code和encryptedData等参数。 4. 使用微信提供的SDK,使用AppID和AppSecret等参数调用微信的接口,获取访问令牌access_token和用户唯一标识openid等信息。 5. 返回访问令牌和用户信息给小程序。 6. 小程序接收到访问令牌和用户信息后,可以保存用户信息或进行其他业务逻辑处理。 7. 针对其他小程序的业务需求,可以继续对接微信提供的其他接口,如支付、模板消息等。 8. 在开发过程中,可以使用微信提供的工具进行API测试和调试,确保接口的正确性。 总结起来,对接微信小程序需要获取AppID和AppSecret,使用Spring Boot创建接口,调用微信接口获取访问令牌和用户信息,并进行相应的业务处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值