/**
* 获取个人邀请二维码
* is_hyaline为true的话,图片格式为png
* @param uid
* @return
*/
public String QrCode(String uid){
String path = PathKit.getWebRootPath()+"/QrCode/";
File pathFile = new File(path);
if(!pathFile.exists()){
pathFile.mkdir();
}
try{
File targetFile = new File(path+uid+".png");
Boolean isOver = true;
for(int i=0;isOver && i < 5 ;i++){
URL url = new URL(“https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=”+ AccessTokenApi.getAccessTokenStr());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
// 提交模式
httpURLConnection.setRequestMethod(“POST”);
// conn.setConnectTimeout(10000);//连接超时 单位毫秒
// conn.setReadTimeout(2000);//读取超时 单位毫秒
// 发送POST请求必须设置如下两行
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
// 获取URLConnection对象对应的输出流
PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
// 发送请求参数
JSONObject paramJson = new JSONObject();
paramJson.put(“scene”, uid);
paramJson.put(“page”, “pages/index/index”);
paramJson.put(“is_hyaline”, true);
printWriter.write(paramJson.toString());
// flush输出流的缓冲
printWriter.flush();
//开始获取数据
BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
OutputStream os = new FileOutputStream(targetFile);
int len;
byte[] arr = new byte[1024];
while ((len = bis.read(arr)) != -1)
{
os.write(arr, 0, len);
os.flush();
}
if(targetFile.length() > 200){
isOver = false;
}
os.close();
}
//五次图片生成仍然失败
if(targetFile.length() <200){
return "图片生成失败";
}
}catch (Exception e){
e.printStackTrace();
return "图片生成失败";
}
return PropKit.get("server_url")+"/QrCode/"+uid+".png";
}
}
该博客介绍了如何利用JFinal框架结合微信API生成个人邀请二维码。通过指定uid,创建二维码图片并保存到本地,同时提供了尝试重试的机制以应对可能的网络问题。
4874

被折叠的 条评论
为什么被折叠?



