推广 热搜:   公司  中国  行业  快速  企业  设备  上海  未来  技术 

java获取openid_微信小程序之java服务端获取openid

   日期:2025-01-02     移动:http://www78564.xrbh.cn/mobile/quote/28638.html

微信小程序越来越热,最近团队写了一个小程序,这篇博客我将讲一下怎么通过java服务端获取到用户的openid。

api文档的授权登陆地址

http://developers.weixin.qq.com/miniprogram/dev/api/api-login.html

首先我们看下小程序官方的api文档的一张图

我把我们服务端的部分用红框框起来了。

图的意思就是前台小程序通过wx.login()这个接口获取了一个code。

前台把code连同appid和secret请求发给服务端,服务端接收后通过访问微信接口服务从而获取到openid和session_key。

我们继续看

从图看出,接口地址即为上面说的服务端访问地址。

请求的参数有四个。

appid和secret开发者可以通过微信公众平台->设置->开发设置,从而找出appid和secret。

js_code就是上面说的前台通过调用wx.login()获得一个code。

grant_type默认为authorization_code。

访问后接口地址将返回json字符串,里面携带着openid和seesion_key。

下面通过代码来演示

写一个访问工具类

package utils;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

import java.net.URLConnection;

public class getOpenIdutil {

public String getopenid(String appid,String code,String secret) {

BufferedReader in = null;

//appid和secret是开发者分别是小程序ID和小程序密钥,开发者通过微信公众平台-》设置-》开发设置就可以直接获取

String url="https://api.weixin.qq.com/sns/jscode2session?appid="

+appid+"&secret="+secret+"&js_code="+code+"&grant_type=authorization_code";

try {

URL weChatUrl = new URL(url);

// 打开和URL之间的连接

URLConnection connection = weChatUrl.openConnection();

// 设置通用的请求属性

connection.setConnectTimeout(5000);

connection.setReadTimeout(5000);

// 建立实际的连接

connection.connect();

// 定义 BufferedReader输入流来读取URL的响应

in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

StringBuffer sb = new StringBuffer();

String line;

while ((line = in.readLine()) != null) {

sb.append(line);

}

return sb.toString();

} catch (Exception 1) {

throw new RuntimeException(e1);

}

// 使用finally块来关闭输入流

finally {

try {

if (in != null) {

in.close();

}

} catch (Exception e2) {

e2.printStackTrace();

}

}

}

}

前台发送请求,携带着appid、secret和code,服务端调用我写的这个工具类传入三个参数,我采用了拼接的方法把传过来的三个参数连同grant_type拼接成一段url。

调用java.net.url->new一个url->调java.net.URLConnection打开连接发送参数->读取相应->获取json字符串返回。

调用代码,返回json字符串,用导JSONObject包,解析json串

getOpenIdutil getopenid=new getOpenIdutil();

//调用访问微信服务器工具方法,传入三个参数获取带有openid、session_key的json字符串

String jsonId=getopenid.getopenid(appid,code,secret);

JSonObject jsonObject = JSONObject.fromObject(jsonId);

//从json字符串获取openid和session_key

String openid=jsonObject.getString("openid");

String session_key=jsonObject.getString("session_key");

本文地址:http://www78564.xrbh.cn/quote/28638.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号