//生成临时二维码ticket 的url private static final String QR_TEMPORARY_TICKET_URL= "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN"; //生成临时二维码ticket scene_id json private static final String QRCODE_TEMPORARY_TICKET_SCENE_ID = "{\"expire_seconds\": SECONDS, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": SCENEID}}}"; //通过ticket获取二维码 public static String QR_CODE_URL ="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET"; 获取扫码链接方法 public static QrTicket getTemporaryQRTicketBySceneId(String appId, String appSecert, Long expireSeconds, Long sceneId){ AccessToken accessToken = getAccessToken(appId, appSecert); String url = QR_TEMPORARY_TICKET_URL.replace("TOKEN", accessToken.getToken()); String postJson = QRCODE_TEMPORARY_TICKET_SCENE_ID.replace("SECONDS", String.valueOf(expireSeconds)) .replace("SCENEID", String.valueOf(sceneId)); JSONObject res = CommonUtil.httpsRequest(url, "POST", postJson); QrTicket qrTicket = new QrTicket(); qrTicket.setExpireSeconds((Integer) res.get("expire_seconds")); qrTicket.setTicket(res.getString("ticket")); qrTicket.setUrl("url"); return qrTicket; }
public class QrTicket { private String url; private String ticket; private Integer expireSeconds; } //生成的链接跳转关注公众号,需转二维码我的博客之前有转二维码的,可参考以下 String qrCodeUrl = WeiXinUtil.QR_CODE_URL.replace("TICKET", qrTicket.getTicket()); //存入缓存 redisService.set(rTicket.getTicket()); //可取出openID String openId = redisService.get(ticket);