微信小程序生成海报工具类

本文主要对微信小程序和图片的引用工具进行了封装,内容中也结合了许多网上资源,整合一下方便开发者应用。
项目应用工具:Java8  IDEA Gradle5.2.1 
获取小程序的文档首先我们要阅读微信的官方文档,然后针对文档的内容编写代码。

生成小程序码地址(同步时间2020-7-15日 后续微信如果更新请自行官网查询):
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html 

第一步:


第二步:选择适用的场景,本文选择接口A 进行说明。(其他选择大同小异 需要开发者仔细阅读)


第三步: 根据要求文档分为两个步骤: 第一个步骤获取微信小程序accessToken,第二步根据accessToken和其他参数获取小程序码。获取微信小程序accessToken代码如下:

  //微信获取授权请求地址
    private final String wechatGetTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?";
    //appId
    private final String appId = "";
    //secret
    private final String secret = "";
    //微信获取二维码授权请求地址
    private final String wechatGetAppletCodenUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN";
    //前端页面地址
    private final String frontEndUrl = "/image/";

    //常规字体
    private static final String FONT_FILE = "/PingFang.ttf";

    /**
     * @className AppletPosterImplServiceImpl
     * @date 2020/7/13 15:39
     * @author Leo
     * @desc 获取token  
     * @Url 微信文档连接: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html
     */
    @Override
    public WechatGetAccessTokenDTO getAccessToken() {
        return getSmallProgramAccessToken();
    }
    
      /**
     * @className AppletPosterImplServiceImpl
     * @date 2020/7/13 15:45
     * @author Leo
     * @desc 拆分共用 HttpUtil.sendGet工具和JsonUtils.jsonToBean工具后续补充
     */
    public WechatGetAccessTokenDTO getSmallProgramAccessToken() {
        //返回参数封装
        WechatGetAccessTokenDTO wechatGetAccessTokenDTO = new WechatGetAccessTokenDTO();
        //请求参数拼接
        String params = "grant_type=client_credential&appid=" + appId + "&secret=" + secret;

        try {
            //返回值
            String data = HttpUtil.sendGet(wechatGetTokenUrl, params);
            wechatGetAccessTokenDTO = JsonUtils.jsonToBean(data, WechatGetAccessTokenDTO.class);
        } catch (Exception e) {
           // log.error(String.valueOf(e));
        }
        return wechatGetAccessTokenDTO;
    }


第四步: 获取微信小程序码代码如下: (注:由于代码过于多已经封装成demo在下方链接)

/**
     * @className AppletPosterImplServiceImpl
     * @date 2020/7/14 11:24
     * @author Leo
     * @desc 获取小程序码
     * @Url 微信文档连接 : https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html
     */
    @Override
    public InputStream getAppletCode() {
        //获取token
        WechatGetAccessTokenDTO wechatGetAccessTokenDTO = getSmallProgramAccessToken();
        if (Objects.isNull(wechatGetAccessTokenDTO)) {
            new Exception("未获取信息");
        }
        //获取二维码流文件  (这里可以根据流进行保存这个二维码 保存本地 工具类里面有方法)
        return HttpUtil.getWechatQrCode(
                wechatGetAppletCodenUrl,                     //请求的微信地址
                "",   //获取的token
                frontEndUrl,                                 //生成小程序码所要展示前端的地方 (也就是你二维码所要跳转的前端目录 可以拼接参数)
                "280");                                //不是必须,需要的宽度,默认430x430,最小280最大1280
    }

第五步:对图片进行封装测试



本文主要实现了三个方法方法如下:


系统应用所要注意的地方:
 1.需要配置相关应用参数
 2.尽可能的不要将图片放大或缩小容易图片失帧
 3.问题发生在Window 和 Mac /Linux 上,在使用文本
  Font font = FontUtil.getFont(FONT_FILE, Font.BOLD, 10);
     font字体需要根据系统的资源查看是否存在这个字体,在开发或者调试的时候就可能不存在这些字体,导致使用的是默认字体。导致不同系统产生的效果不一样,本文是将字体导入到项目的做法,也可以在服务器中添加进去。

应用demo系统讲解:

项目地址下载:(如果没有积分可随时在博客上沟通,每周一和周五看到会统一回复,并发送) 有不足的地方还请谅解!!!
下载地址:https://download.csdn.net/download/qq_27535933/12618319
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值