Java集成小程序,获取用户信息

本文介绍了如何在Java中集成微信小程序,通过登录获取用户信息。详细步骤包括参考小程序开发文档,使用特定的Java类如WeChaConnView.java、DataResponse.java、HttpRequest.java和AesCbcUtil.java进行信息交互和加密解密。此外,还推荐了一个开源工具包weixin-java-tools用于小程序开发。
摘要由CSDN通过智能技术生成

小程序开发文档:https://mp.weixin.qq.com/debug/wxadoc/dev/

参考文章:http://www.jb51.net/article/117352.htm

微信小程序登录获取用户信息

WeChaConnView.java

@RestController
@RequestMapping(value = "/wechat")
public class WeChaConnView {

    /** 
     * 解密用户敏感数据 
     * 
     * @param encryptedData 明文,加密数据 
     * @param iv      加密算法的初始向量 
     * @param code     用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key 
     * @return 
     */
    @ResponseBody
    @RequestMapping(value = "/decodeUser", method = RequestMethod.POST) 
    public DataResponse decodeUser(@RequestParam("encryptedData")String encryptedData, 
            @RequestParam("iv")String iv, 
            @RequestParam("code")String code) { 
        DataResponse response = new DataResponse();
        Map<String, Object> map = new HashMap<>(); 

        //登录凭证不能为空 
        if (code == null || code.length() == 0) { 
            /*map.put("status", 0); 
            map.put("msg", "code 不能为空");

            return map;*/
            response.setResult_code("failed");
            response.setResult_msg("code 不能为空");

            return response; 
        } 

        //小程序唯一标识  (在微信小程序管理后台获取) 
        String wxspAppid = "xxxxxx"; 
        //小程序的 app secret (在微信小程序管理后台获取) 
        String wxspSecret = "xxxxxx"; 
        //授权(必填) 
        String grant_type = "authorization_code"; 

        //////////////// 1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid //////////////// 
        //请求参数 
        String params = "appid=" + wxspAppid + "&secret=" + wxspSecret + "&js_code=" + code + "&grant_type=" + grant_type; 
        //发送请求 
        String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params); 
        //解析相应内容(转换成json对象) 
        Gson gson = new Gson();
        JsonObject json = gson.fromJson(sr, JsonObject.class);
        System.out.println(json);
//      JSONObject json = JSONObject.fromObject(sr);

        if (json.get("session_key") == null) {
            /*map.put("status", 0); 
            map.put("msg", "解密失败");

            return map;*/
            response.setResult_code("failed");
            response.setResult_msg("解密失败:" + json.get("errmsg").toString().replaceAll("\"", ""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值