6.4.2 创建永久二维码
1.接口描述
创建永久二维码的接口地址如下:
- https:// api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
调用该接口需要POST如下格式的JSON数据包:
- {"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
接口调用成功时返回的JSON结果如下:
- {"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA=="}
接口调用失败时返回的JSON结果示例如下:
- {"errcode":40053,"errmsg":"invalid action info, please check document"}
2.方法封装及使用
将创建永久二维码的操作封装成createPermanentQRCode()方法,该方法的实现如下:
- /**
- * 创建永久带参二维码
- *
- * @param accessToken 接口访问凭证
- * @param sceneId 场景ID
- * @return ticket
- */
- public static String createPermanentQRCode(String accessToken, int sceneId) {
- String ticket = null;
- // 拼接请求地址
- String requestUrl = "https:// api.weixin.qq.com/cgi-bin/qrcode/
- create?access_token=ACCESS_TOKEN";
- requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken);
- // 需要提交的JSON数据
- String jsonMsg = "{\"action_name\": \"QR_LIMIT_SCENE\", \"action_info\":
- {\"scene\": {\"scene_id\": %d}}}";
- // 创建永久带参二维码
- JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "POST", String.
- format(jsonMsg, sceneId));
- if (null != jsonObject) {
- try {
- ticket = jsonObject.getString("ticket");
- log.info("创建永久带参二维码成功 ticket:{}", ticket);
- } catch (Exception e) {
- int errorCode = jsonObject.getInt("errcode");
- String errorMsg = jsonObject.getString("errmsg");
- log.error("创建永久带参二维码失败 errcode:{} errmsg:{}", errorCode,
- errorMsg);
- }
- }
- return ticket;
- }
下面调用createPermanentQRCode()方法创建一个场景值ID为617的永久二维码,示例代码如下:
- public static void main(String args[]) {
- // 获取接口访问凭证
- String accessToken = CommonUtil.getToken("APPID", "APPSECRET").
- getAccessToken();
- // 创建永久二维码
- String ticket = createPermanentQRCode(accessToken, 617);
- }
运行结果如下所示:
- [INFO ] 2013-11-10 02:26:44,661 org.liufeng.course.util.AdvancedUtil 创建永久带参二维
- 码成功 ticket:gQEg7zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2lIVVJ3VmJsTzFsQ0
- ZuQ0Y1bG5WAAIEW35+UgMEAAAAAA==