java获取微信公众号的二维码
来源:互联网 发布:淘宝卖窗帘赚钱吗 编辑:程序博客网 时间:2024/06/06 08:35
从微信开发者文档我们可以了解到,我们可以生成临时二维码或者永久二维码
获取微信公众号的二维码总共分为三步
- 获取access_token
- 获取ticket
- 根据ticket换取该公众账号的二维码
1.获取access_oken
// 获取token接口(GET)public final static String TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";/** * 获取接口访问凭证 * @param appid 凭证 * @param appsecret 密钥 */public static AccessToken getToken(String appid, String appsecret) {AccessToken token = null;String requestUrl = WxConstants.TOKEN_URL.replace("APPID", appid).replace("APPSECRET", appsecret);// 发起GET请求获取凭证JSONObject jsonObject = httpsRequestJson(requestUrl, "GET", null);if (null != jsonObject) {try {token = new AccessToken();token.setAccess_token(jsonObject.getString("access_token"));token.setExpires_in(jsonObject.getInt("expires_in"));} catch (JSONException e) {token = null;// 获取token失败logger.error("获取token失败 errcode:{} errmsg:{}",jsonObject.getInt("errcode"),jsonObject.getString("errmsg"));}}return token;}
2.获取ticket
/** * 创建临时带参数二维码 * @param accessToken * @expireSeconds 该二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。 * @param sceneId 场景Id * @return */ public static WeChatQRCode createTemporaryQRCode(String accessToken, String expireSeconds ,int sceneId) { WeChatQRCode weChatQRCode = null; String requestUrl = WxConstants.QR_CODE_URL.replace("TOKEN", accessToken); //需要提交的JSON数据 String outputStr = "{\"expire_seconds\": %d,\"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\":%d}}}"; //创建临时带参数二维码 JSONObject jsonObject = httpRequest(requestUrl, "POST", String.format(outputStr, expireSeconds, sceneId)); if(null!=jsonObject){ try { weChatQRCode = new WeChatQRCode(); weChatQRCode.setTicket(jsonObject.getString("ticket")); weChatQRCode.setExpire_seconds(jsonObject.getInt("expire_seconds")); logger.info("创建临时带参二维码成功,ticket="+weChatQRCode.getTicket()+",expire_seconds="+weChatQRCode.getExpire_seconds()); } catch (Exception e) { weChatQRCode = null; String errorMsg = jsonObject.getString("errmsg"); logger.info("创建临时带参二维码失败,错误码是="+errorMsg); } } return weChatQRCode; } /** * 创建永久二维码 * @param accessToken * @param sceneId 场景Id * @param sceneStr 场景IdsceneStr * @return */ //数字ID用这个{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}} //或者也可以使用以下POST数据创建字符串形式的二维码参数: //字符ID用这个{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "hfrunffgha"}}} public static String createPermanentQRCode(String accessToken, String sceneStr) { String ticket = null; String requestUrl = WxConstants.QR_CODE_URL.replace("TOKEN", accessToken); String outputStr = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\":{\"scene\": {\"scene_str\":%s}}}"; JSONObject jsonObject = httpRequest(requestUrl, "POST", String.format(outputStr, sceneStr)); if(null!=jsonObject){ try { ticket = jsonObject.getString("ticket"); logger.info("创建永久带参二维码成功,ticket="+ticket); } catch (Exception e) { String errorCode = jsonObject.getString("errcode"); logger.info("创建永久带参二维码失败,错误码是="+errorCode); String errorMsg = jsonObject.getString("errmsg"); logger.info("创建永久带参二维码失败,错误信息是="+errorMsg); } } return ticket; }
3.用tiket换取二维码 https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKE
(替换获取到的ticket,放入到浏览器打开即可,若想下载到本地,请参考http://blog.csdn.net/sinat_28505133/article/details/54669167)
0 0
- java获取微信公众号的二维码
- 获取微信公众号的二维码图片
- JAVA微信公众号开发之二维码的创建与获取
- 【微信公众号】- 微信公众号自定义菜单二维码扫描scancode_waitmsg获取不到ScanResult的值
- 微信公众号二维码
- java 获取微信公众号粉丝的openId
- java中获取微信公众号的access_token
- 微信java版本之扫码关注公众号(带参数的临时二维码)
- 微信java版本之扫码关注公众号(带参数的临时二维码)
- 微信java版本之扫码关注公众号(带参数的临时二维码)
- 微信公众号生成带参数的二维码
- 微信公众号-二维码营销-使用指南
- 微信公众号二维码 链接
- 生成微信公众号关注二维码
- 微信菜单获取二维码图片的优化指南——该公众号暂时无法提供服务
- 微信官方提供的生成二维码接口得到的是当前公众号的二维码。
- 微信官方提供的生成二维码接口得到的是当前公众号的二维码
- 微信公众平台自带的生成公众号二维码的连接
- 安装Memcahce linux下
- Linux下C实现心跳包
- svn备份脚本
- linux常用命令——5.系统管理命令
- 向函数中传递指针和传递指针的引用的区别
- java获取微信公众号的二维码
- 系统的crontab设定:/etc/crontab
- TestNG学习(一)
- crontab定时启动脚本,自动化配置
- -bash: java: command not found 解决方法
- 公司内部搭建svn文件服务器备份策略
- MySQL数据库批量修改数据库中的表
- [Struts2] 配置文件struts.xml和web.xml详解
- mysql数据库新建账号开启远程权限