com.jfinal.weixin.sdk.api.QrcodeApi Maven / Gradle / Ivy
/**
* Copyright (c) 2011-2015, Unas 小强哥 ([email protected]).
*
* Licensed under the Apache License, Version 2.0 (the "License");
*/
package com.jfinal.weixin.sdk.api;
import java.util.HashMap;
import java.util.Map;
import com.jfinal.weixin.sdk.utils.HttpUtils;
import com.jfinal.weixin.sdk.utils.JsonUtils;
/**
* 生成带参数的二维码 API
* https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
*/
public class QrcodeApi
{
private static String apiUrl = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=";
public static ApiResult create(String jsonStr) {
String jsonResult = HttpUtils.post(apiUrl + AccessTokenApi.getAccessTokenStr(), jsonStr);
return new ApiResult(jsonResult);
}
/**
* 创建临时二维码
* @param expireSeconds 该二维码有效时间,以秒为单位。 最大不超过604800(即7天)。
* @param sceneId 场景值ID,临时二维码时为32位非0整型
* @return ApiResult 二维码信息
*/
public static ApiResult createTemporary(int expireSeconds, int sceneId) {
Map params = new HashMap();
params.put("expire_seconds", expireSeconds);
params.put("action_name", "QR_SCENE");
Map actionInfo = new HashMap();
Map scene = new HashMap();
scene.put("scene_id", sceneId);
actionInfo.put("scene", scene);
params.put("action_info", actionInfo);
return create(JsonUtils.toJson(params));
}
/**
* 创建临时二维码
* @param expireSeconds 该二维码有效时间,以秒为单位。 最大不超过604800(即7天)。
* @param sceneStr 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64
* @return ApiResult 二维码信息
*/
public static ApiResult createTemporary(int expireSeconds, String sceneStr) {
Map params = new HashMap();
params.put("expire_seconds", expireSeconds);
params.put("action_name", "QR_STR_SCENE");
Map actionInfo = new HashMap();
Map scene = new HashMap();
scene.put("scene_str", sceneStr);
actionInfo.put("scene", scene);
params.put("action_info", actionInfo);
return create(JsonUtils.toJson(params));
}
/**
* 创建永久二维码
* @param sceneId 场景值ID,永久二维码时最大值为100000(目前参数只支持1--100000)
* @return ApiResult 二维码信息
*/
public static ApiResult createPermanent(int sceneId) {
Map params = new HashMap();
params.put("action_name", "QR_LIMIT_SCENE");
Map actionInfo = new HashMap();
Map scene = new HashMap();
scene.put("scene_id", sceneId);
actionInfo.put("scene", scene);
params.put("action_info", actionInfo);
return create(JsonUtils.toJson(params));
}
/**
* 创建永久二维码
* @param sceneStr 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64,仅永久二维码支持此字段
* @return ApiResult 二维码信息
*/
public static ApiResult createPermanent(String sceneStr) {
Map params = new HashMap();
params.put("action_name", "QR_LIMIT_STR_SCENE");
Map actionInfo = new HashMap();
Map scene = new HashMap();
scene.put("scene_str", sceneStr);
actionInfo.put("scene", scene);
params.put("action_info", actionInfo);
return create(JsonUtils.toJson(params));
}
private static String showQrcodeUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=";
/**
* 通过ticket换取二维码地址
* @param ticket 换取二维码参数
* @return String url
*/
public static String getShowQrcodeUrl(String ticket) {
return showQrcodeUrl + ticket;
}
}