微信开发总结 五
2015-08-03 13:41
357 查看
1.二维码
2.二维码常量
3.工具类
public class QRCode { private String ticket; private int expireSeconds; private String url;
2.二维码常量
public class QRCodeConstant { /**创建二维码 POST*/ public static final String QRCODE_CREATE_URL="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=ACCESS_TOKEN"; /**通过ticket获取二维码 GET*/ public static final String QRCODE_TICKET_URL="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET"; }
3.工具类
public class QRCodeUtil { /** * 创建临时二维码 * @author wuyw * 2015-7-30下午12:30:44 * @param accessToken * @param expireSeconds * @param sceneId 场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000) * @return */ public static QRCode createTemporaryQRCode(String accessToken, int expireSeconds, int sceneId) { QRCode code = new QRCode(); String requestUrl = QRCodeConstant.QRCODE_CREATE_URL.replace("ACCESS_TOKEN", accessToken); String jsonMsg = "{\"expire_seconds\": %d, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": %d}}"; JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_POST, String.format(jsonMsg, expireSeconds, sceneId)); if (null != jsonObject) { code.setTicket(jsonObject.getString("ticket")); code.setExpireSeconds(jsonObject.getInt("expire_seconds")); code.setUrl(jsonObject.getString("url")); } return code; } /** * 创建永久二维码 * @author wuyw * 2015-7-30下午12:31:14 * @param accessToken * @param sceneId * @return */ public static QRCode createPermanentQRCode(String accessToken, int sceneId) { QRCode code = new QRCode(); String requestUrl = QRCodeConstant.QRCODE_CREATE_URL.replace("ACCESS_TOKEN", accessToken); String jsonMsg = "{\"action_name\": \"QR_LIMIT_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": %d}}"; JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_POST, String.format(jsonMsg, sceneId)); if (null != jsonObject) { code.setTicket(jsonObject.getString("ticket")); code.setExpireSeconds(jsonObject.getInt("expire_seconds")); code.setUrl(jsonObject.getString("url")); } return code; } /** * 根据ticket获取二维码图片 * @author wuyw * 2015-7-30下午12:32:47 * @param accessToken * @param ticket * @return */ public static String getQRCode(String ticket, String savePath) { String filePath = null; String requestUrl = QRCodeConstant.QRCODE_TICKET_URL.replace("TICKET", SignUtil.urlEncodeUTF8(ticket)); try { URL url = new URL(requestUrl); HttpsURLConnection connection = (HttpsURLConnection) url .openConnection(); connection.setDoInput(true); connection.setRequestMethod(BaseConstant.TOKEN_URL_GET); if (!savePath.endsWith("/")) { savePath += "/"; } filePath = savePath + ticket + ".jpg"; BufferedInputStream bis = new BufferedInputStream( connection.getInputStream()); FileOutputStream fos = new FileOutputStream(new File(filePath)); byte[] buf = new byte[2048]; int size = 0; while ((size = bis.read(buf)) != -1) { fos.write(buf, 0, size); } fos.close(); bis.close(); connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } return filePath; } }
相关文章推荐
- 微信开发总结 四
- 每天一个小程序——选择排序时的一个小问题!
- 微信开发总结 三
- 微信开发总结 二
- 微信开发总结 一
- 微信开发总结
- 人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经(转)
- Android 微信下拉眼睛
- android 微信支付直接跳转结果
- Java微信公众号支付
- 如何利用事件营销一天获得35万微信粉丝
- 微信公众平台开发(十二) 发送客服消息
- 微信公众平台开发(73) 客服接口发送客服消息
- 关于微信分享、登录的一些注意事项
- 好消息: 《微信商城开发实战》 已经由电子工业出版社出版发行啦
- 使用AccessibilityService实现微信自动抢红包
- 用MVC结构写web小程序时出现“ Cannot forward after response has been committed”的错误
- 微信在召唤千万个“王尼玛”
- 判断闰年平年的小程序
- java 微信开发