发环境及框架后端:国产java极速框架JFinal(超级好用有木有啊)前端:WEUI WXSS版(微信团队出品的,自己写样式不管怎么写都丑啊)数据库:MySQL服务器:Linux Nginx Tomcat开发流程 ...

开发环境及框架
-
后端:国产java极速框架JFinal(超级好用有木有啊)
-
前端:WEUI WXSS版(微信团队出品的,自己写样式不管怎么写都丑啊)
-
数据库:MySQL
-
服务器:Linux Nginx Tomcat
开发流程
-
用户打开小程序后,本程序获取用户的昵称,头像展示在前台
-
用户输入姓名后,系统根据用户的openid生成结婚证图片链接(重复生成自动覆盖上一张)
-
判断如果是在开发者工具里面运行。则提示需找我获取体验资格。
后端关键代码详情
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);
-
// 加水印
-
|