发环境及框架后端:国产java极速框架JFinal(超级好用有木有啊)前端:WEUI WXSS版(微信团队出品的,自己写样式不管怎么写都丑啊)数据库:MySQL服务器:Linux Nginx Tomcat开发流程 ...
开发环境及框架
开发流程
后端关键代码详情
2个方法,一个是接收前台传入的参数生成图片并返回处理结果的,一个是获取用户openid时候的前置请求
private static final WeixinInfo weixinInfo = WeixinInfo.dao.getWeixinInfoById(5);
/**
* 创建一个接口,用户需传递姓名和微信openid
* 每个用户只能创建一张(为服务器考虑,重复生成则覆盖上一张)
* 返回结果有fail和ok两种
*/
public void getMarryPic() {
Map map = new HashMap<>();
String result = "fail";
String openid = getPara("openid");
String name = getPara("name");
if (name != null && !name.equals("")) {
ImgMarkUtil.mark(getRequest().getServletContext().getRealPath("/") + "/jiehun/yuan2.jpg", getRequest().getServletContext().getRealPath("/") + "jiehun/" + openid + ".jpg", name);
result = "ok";
map.put("imgurl", weixinInfo.get("host") + "/jiehun/" + openid + ".jpg");
}
map.put("result", result);
renderJson(map);
}
public void getWxCode() {
String js_code = getPara("js_code");
String alipayURL = "https://api.weixin.qq.com/sns/jscode2session?";
renderText(HttpUtils.post(alipayURL, "appid=" + weixinInfo.get("appid") + "&secret=" + weixinInfo.get("appsecret")
+ "&grant_type=authorization_code" + "&js_code=" + js_code));
}
通过读取本地原图片,把用户传入的姓名弄成水印附在图片上,随后根据openid生成文件名。
public static void mark(String srcImgPath, String outImgPath, String waterMarkContent) {
try {
// 读取原图片信息
File srcImgFile = new File(srcImgPath);
Image srcImg = ImageIO.read(srcImgFile);
int srcImgWidth = srcImg.getWidth(null);
int srcImgHeight = srcImg.getHeight(null);
// 加水印