java获取openid_JAVA获取微信小程序openid和获取公众号openid,以及通过openid获取用户信息...

https://www.cnblogs.com/lxwt/p/10154540.html?tdsourcetag=s_pcqq_aiomsg

一,首先说明下这个微信的openid

为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID

我用简单自己理解的话来说就是  这个  你在每个公众号 或者小程序  都是在这个小程序或者这个公众号下会有一个openid   你去别的公众号 或者 小程序 这个是会改变的  但是unionid是不管你在哪个小程序或者公众号是唯一不变的。

微信官方提供了 了一个  可以通过用户的openid来获取用户信息,前提是用户必须关注了你的公众号,这个好像要做的话需要关联一个需要三百块钱认证的那个啥来着。这个就先不说了吧,现在我们要说的问题是如何获取openid

二,小程序获取openid

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 /**

2 * 微信小程序获取openid

3 * @author Mr.Lin

4 */

5 public class GetOpenIDUtil {

6 // 网页授权接口

7 // public final static String GetPageAccessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";//

8 // public final static String GetPageAccessTokenUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=CODE&grant_type=authorization_code";

9 public final static String GetPageAccessTokenUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=CODE&grant_type=authorization_code";

10 public static Map oauth2GetOpenid(String appid,String code,String appsecret) {

11 String requestUrl = GetPageAccessTokenUrl.replace("APPID", appid).replace("SECRET", appsecret).replace("CODE", code);

12 HttpClient client = null;

13 Map result =new HashMap();

14 try {

15 client = new DefaultHttpClient();

16 HttpGet httpget = new HttpGet(requestUrl);

17 ResponseHandler responseHandler = new BasicResponseHandler();

18 String response = client.execute(httpget, responseHandler);

19 JSONObject OpenidJSONO=JSONObject.fromObject(response);

20 String openid =String.valueOf(OpenidJSONO.get("openid"));

21 String session_key=String.valueOf(OpenidJSONO.get("session_key"));

22 String unionid=String.valueOf(OpenidJSONO.get("unionid"));

23 String errcode=String.valueOf(OpenidJSONO.get("errcode"));

24 String errmsg=String.valueOf(OpenidJSONO.get("errmsg"));

25

26 result.put("openid", openid);

27 result.put("sessionKey", session_key);

28 result.put("unionid", unionid);

29 result.put("errcode", errcode);

30 result.put("errmsg", errmsg);

31 } catch (Exception e) {

32 e.printStackTrace();

33 } finally {

34 client.getConnectionManager().shutdown();

35 }

36 return result;

37 }

38 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值