日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

请求微信接口,判断用户是否关注公众号

發(fā)布時(shí)間:2025/3/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 请求微信接口,判断用户是否关注公众号 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ? ? 最近開發(fā)了一個(gè)投票活動(dòng),用戶可上傳一張照片,分享微信好友或朋友圈邀請(qǐng)好友點(diǎn)贊,點(diǎn)贊前幾名可獲得相應(yīng)的獎(jiǎng)品。上傳照片的用戶必須關(guān)注某公眾號(hào)。

? 用戶點(diǎn)擊上傳按鈕,后臺(tái)判斷用戶是否關(guān)注公眾號(hào),關(guān)注則前端可使用相機(jī)或選擇本地照片進(jìn)行上傳 ,未關(guān)注則彈出二維碼。

? ? ? ? ? 對(duì)于判斷用戶是否關(guān)注某公眾號(hào),微信官方提供的接口是:

https://api.weixin.qq.com/cgi-bin/user/info?access_token="+accessToken+"&openid="+openid+"&lang=zh_CN
其中access_token是全局的access_token,openid就是當(dāng)前微信關(guān)于當(dāng)前服務(wù)號(hào)的openId
附上代碼 1 public static Boolean judgeFollow(String openId){ 2 List<NameValuePair> params=new ArrayList<NameValuePair>(); 3 params.add(new BasicNameValuePair("xx","xx")); 4 params.add(new BasicNameValuePair("xxx","xx")); 5 params.add(new BasicNameValuePair("openid",openId)); 6 String s = new HttpUtil().get("http://xxx.xxx.cn/xx/xxx.php", params, "UTF-8", "UTF-8"); 7 String decode = DES.Decode(s); 8 JSONObject jsonObject = JSONArray.parseObject(decode); 9 String data = jsonObject.get("data").toString(); 10 JSONObject jsonObject1 = JSONObject.parseObject(data); 11 Integer subscribe = jsonObject1.getInteger("subscribe"); 12 if(subscribe==null){ 13 return false; 14 } 15 return 1==subscribe?true:false; 16 }

? ? ? ?上面的這個(gè)接口地址是公司封裝好了的,沒有直接請(qǐng)求官方的接口,只用帶一個(gè)openID過去就行了,另外2個(gè)參數(shù)xx是公司接口需填的參數(shù)。json包是阿里的fastjson。通過這個(gè)接口獲得subscribe這個(gè)字段,是否訂閱,為1則表示當(dāng)前微信關(guān)注了該公眾號(hào),為0則表示未關(guān)注。 完整的請(qǐng)求結(jié)果為

"subscribe":1,"openid":"oeQDZabsrfs12341***","nickname":"會(huì)飛的貓","sex":1,"language":"zh_CN","city":"武漢","province":"湖北","country":"中國","headimgurl":"http://wx.qlogo.cn/mmopen/kBwGJuwqK9**********************ibVUEpgFE90LH3b3uj7AYRjZP/0","subscribe_time":1474964999,"unionid":"oGCG8t5**********jPQTPw","remark":"","groupid":0,"tagid_list":[只需要拿到subscribe這個(gè)字段的值就可以了。
下面附上一段直接請(qǐng)求官方接口的代碼,也是網(wǎng)上搜的,試了一下沒有問題。原文地址:https://blog.csdn.net/qq_23842683/article/details/53888927 1 public static boolean judgeIsFollow(String openid){ 2 logger.error("判斷是否關(guān)注:"+openid); 3 Integer subscribe=null; 4 String accessToken = getAccessToken(); 5 String url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="+accessToken+"&openid="+openid+"&lang=zh_CN"; 6 try { 7 URL urlGet = new URL(url); 8 logger.error("urlGet:"+urlGet); 9 HttpURLConnection http = (HttpURLConnection) urlGet.openConnection(); 10 http.setRequestMethod("GET"); // 必須是get方式請(qǐng)求 11 http.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 12 http.setDoOutput(true); 13 http.setDoInput(true); 14 http.connect(); 15 InputStream is = http.getInputStream(); 16 int size = is.available(); 17 byte[] jsonBytes = new byte[size]; 18 is.read(jsonBytes); 19 String message = new String(jsonBytes, "UTF-8"); 20 JSONObject demoJson = JSONObject.fromObject(message); 21 System.out.println("JSON字符串:"+demoJson); 22 subscribe = demoJson.getInt("subscribe"); 23 is.close(); 24 logger.error("當(dāng)前subscribe:"+subscribe); 25 } catch (Exception e) { 26 e.printStackTrace(); 27 } 28 return 1==subscribe?true:false; 29 }

? ? ? 上面那個(gè)getAccessToken()方法是獲得我當(dāng)前服務(wù)號(hào)的全局accessToken。其余的基本和原文一樣。有不對(duì)的地方希望各位看官批評(píng)指正。(雖然好像沒什么人看)

??

轉(zhuǎn)載于:https://www.cnblogs.com/Yang777/p/10113077.html

總結(jié)

以上是生活随笔為你收集整理的请求微信接口,判断用户是否关注公众号的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。