public class GetQcCodeUtil {
//获取二维码路径
private static final String WxCode_URL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN";
//图片储存路径
private static final String SAVE_PATH = "";
/**
* 获取二维码
* @param accessToken
* @param fileName 文件名称
* @param param 二维码参数
* @return
*/
public static String getminiqrQr(String accessToken,String fileName,String param) {
File file = new File(SAVE_PATH);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
String savePath = file.getPath() + File.separator + fileName;
String qrCode = SAVE_PATH + File.separator + fileName;
if (qrCode.contains("\\")) {
qrCode = qrCode.replace("\\", "/");
}
try
{
String wxCodeURL = WxCode_URL.replace("ACCESS_TOKEN",accessToken);
URL url = new URL(wxCodeURL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");// 提交模式
httpURLConnection.setConnectTimeout(10000);//连接超时 单位毫秒
httpURLConnection.setReadTimeout(2000);//读取超时 单位毫秒
// 发送POST请求必须设置如下两行
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
// 获取URLConnection对象对应的输出流
PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
// 发送请求参数
JSONObject paramJson = new JSONObject();
paramJson.put("scene", param);//参数
paramJson.put("page", ""); //若小程序暂未发布 带page参数无作用
paramJson.put("width", 400);//生成二维码的大小
paramJson.put("is_hyaline", true);
paramJson.put("auto_color", true);
printWriter.write(paramJson.toString());
// flush输出流的缓冲
printWriter.flush();
//开始获取数据
BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
OutputStream os = new FileOutputStream(new File(savePath));
int len;
byte[] arr = new byte[1024];
while ((len = bis.read(arr)) != -1)
{
os.write(arr, 0, len);
os.flush();
}
os.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return qrCode;
}
public static void main(String[] args) {
String token = "";//若不知道怎么获取 请查看 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html
System.out.println(getminiqrQr(token,FormatTimeUtil.getTimeMillis()+"图片名称","参数"));
}
}