一、微信邀请码生成:
一张二维码里面包含了一个Key值 就是这么简单
在测试生成二维码之前 请确保你的小程序已经通过微信审核并且上线
否则会报错 41030错误代码。生成的图片打不开 碎了
这个时候不要慌 将文件格式改为TXT可以查看错误信息 进行百度解决

二、上代码
开始前请参考博客微信笔记第一篇参数配置和对应工具类

@ApiOperation(value = "生成微信小程序码Url")@ApiOperationSupport(ignoreParameters = { "limit", "offset", "paramError" })@PostMapping("getQrCode")public BaseResponse<WxQrCodeResponse> getQrCode(@RequestBody WxQrCodeRequest request) {return wxService.getQrCode(request);}

Service:

   private final WxMaService wxMaService;/*** 微信小程序邀请码生成** @param request OpenID* @return 邀请码Url*/@Overridepublic BaseResponse<WxQrCodeResponse> getQrCode(WxQrCodeRequest request) {BaseResponse<WxQrCodeResponse> response = new BaseResponse<>();// 校验入参if (Objects.isNull(request) || request.isParamError()) {log.info("[WxServiceImpl-getQrCode] 入参校验错误");response.fail(ResponseEnum.PARAM_VALIDATE_ERROR);return response;}String invitationUrl = "";try {//生成微信小程序邀请码String sceneStr = "key=" + request.getOpenId();String accessToken = wxMaService.getAccessToken();invitationUrl = wxCodeService.getWxQrCode(sceneStr, accessToken);} catch (WxErrorException e) {log.error("[WxServiceImpl-getQrCode]生成微信小程序码失败{}", e.getMessage());response.fail(ResponseEnum.WX_GET_QR_CODE_ERROR);return response;}//保存用户邀请码信息boolean flag = lambdaUpdate().eq(UserDmo::getOpenId, request.getOpenId()).set(UserDmo::getInvitationUrl, fileUtil.addFileUrl(invitationUrl)).update();if (!flag) {log.info("[WxServiceImpl-getQrCode] 生成微信邀请码入库失败");response.fail(ResponseEnum.WX_GET_QR_CODE_ERROR);return response;}//返回WxQrCodeResponse vo = WxQrCodeResponse.builder().invitationUrl(invitationUrl).build();response.setData(new ResultData<>(vo));return response;}

工具类:

  /*** 邀请码保存路径*/private static final String UPLOAD_MINI_CODE_PATH = PathConstant.getInstance().getPath("file/minicode");/*** 生成微信邀请二维码** @param sceneStr    参数* @param accessToken accessToken* @return url*/public String getWxQrCode(String sceneStr, String accessToken) {RestTemplate rest = new RestTemplate();String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;Map<String, Object> param = new HashMap<>();param.put("scene", sceneStr);param.put("page", "pages/index/index");param.put("width", 430);param.put("auto_color", false);Map<String, Object> line_color = new HashMap<>();line_color.put("r", 0);line_color.put("g", 0);line_color.put("b", 0);param.put("line_color", line_color);String jsonString = JSONObject.toJSONString(param);log.info("[WxService-getMiNiQr] jsonString: {}", jsonString);MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();HttpEntity<String> requestEntity = new HttpEntity<>(jsonString, headers);ResponseEntity<byte[]> entity =rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class);byte[] result = entity.getBody();InputStream inputStream = new ByteArrayInputStream(result);String filePath = UPLOAD_MINI_CODE_PATH + DateUtil.formatDateTime(LocalDateTime.now(), DateEnum.DATE) + "/";String fileName = filePath + UUIDUtil.generateUUID() + ".jpg";log.info("[fileName]: {}", fileName);MultipartFile file = null;try {file = new MockMultipartFile(fileName, "response.png", ContentType.APPLICATION_OCTET_STREAM.toString(),inputStream);} catch (IOException e) {log.info("[WxService-inputStream to multipartFile fail] inputStream转换为multipartFile失败");return null;}File dir = new File(filePath);if (!dir.exists()) {if (!dir.mkdir()) {log.info("[WxService-fileUpload] 文件路径文件夹创建失败");}}File localFile = new File(fileName);try {file.transferTo(localFile);} catch (IOException e) {log.error("[WxService-fileUpload] 文件上传异常" + e);return null;}return systemConfig.getFileUrlPrefix() + FileUtil.getFileSuffix(fileName);}

PS:关于这个systemConfig第一篇博客里面都有的大家可以去复制 也可以不用这个截取路径 直接返回绝对路径即可

最终效果:

总结:本地测试的话 会在你当前项目Class文件里面可以找到生成的图片

Java 微信小程序笔记 三、 微信小程序邀请码生成相关推荐

  1. 微信小程序(三个小点)颜色显示问题

    微信小程序(三个小点)颜色显示问题 修改加载图标的默认颜色 在已经添加下拉刷新页面对应的json文件中添加 "backgroundTextStyle": "dark&qu ...

  2. C++小游戏笔记——射击小行星(附源码)

    C++小游戏笔记--射击小行星(附源码) 游戏展示图 一.飞船 1.飞船的绘制 2.飞船的角度 二.小行星 1.小行星的绘制 2."凹凸不平"效果的形成 3.小行星的分裂 三.子弹 ...

  3. 微信公众号带场景参数的二维码生成与使用?

    2019独角兽企业重金招聘Python工程师标准>>> 微信公众号推广时,用户通过扫码关注公众号,统计用户是通过哪个带场景二维码进行关注的,并对用户自动分组打标签备注.直接使用微号帮 ...

  4. Marco's Java【小工具篇 之 Google Zxing 二维码生成】

    前言 二维码相信大家一定不陌生啦,去菜市场买菜,路边摊买个小吃都可以扫一扫,近几年来中国的二维码技术的普及也是大家有目共睹的,而二维码在其他国家虽然有用到,但极少,更没有说全国普及. 二维码又称二维条 ...

  5. Java加密与解密笔记(三) 非对称加密

    非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...

  6. android(安卓系统)系统下优秀的笔记软件,小筑笔记app下载 小筑笔记(手机笔记本软件) for Android v1.31 安卓手机版 下载-脚本之家...

    小筑笔记app是一款适用于安卓手机端的手机笔记本软件,支持多种录入方式,方便用户在不同情景进行记录,而且小筑笔记app可无限分层,记录清晰.感兴趣的朋友快来下载使用吧. 软件亮点 [多种方式记录] 包 ...

  7. java唯一码_唯一邀请码生成(Java版本)

    前言 之前收到一个需求,甲方说,他们想给用户生成一个唯一的邀请码,然后用户量在xxx之类的,例如我这里就随便说个5kw个吧.这个嘛,听起来都觉得挺简单的,毕竟每个用户基本上都有自己的唯一用户id,用那 ...

  8. 唯一邀请码生成(Java版本)

    前言 之前收到一个需求,甲方说,他们想给用户生成一个唯一的邀请码,然后用户量在xxx之类的,例如我这里就随便说个5kw个吧.这个嘛,听起来都觉得挺简单的,毕竟每个用户基本上都有自己的唯一用户id,用那 ...

  9. 走进小程序【三】小程序代码构成

    文章目录

  10. 产品经理小技术(三):二维码这把利刃,产品应该用到极致

    二维码,业界当然是人人听说,人人用过. 这个话题,我倒是百感交集,我一直认为,我有一种"二维码情节". 一方面, 我自认为是国内"钻研"二维码比较早的一个人了, ...

最新文章

  1. linux驱动:音频驱动(二)ASoc
  2. windows环境下,mysql的root密码丢失后重置方法
  3. 获取用户Ip地址通用方法常见安全隐患 x-forwarded-for
  4. Windows Phone 7 不温不火学习之《画图》
  5. 用命令行为MySQL设置/修改管理员密码
  6. “不厚道”的程序员:年后第一天上班就提辞职?
  7. 人工智能热门图书(深度学习、TensorFlow)免费送!
  8. Debian GNU/Linux 的发展简史
  9. [win7] 去除将窗口拖到屏幕边缘时“自动最大化”
  10. 【转】vscode下编译告警“undefined reference”?三步教你如何解决
  11. AttributeError: 'module' object has no attribute 'main'
  12. C#使用NPOI导出excel设置单元格背景颜色
  13. 对Oracle SQL Developer中 变量的学习
  14. 无线教育带来BYOD的A+体验
  15. 微软雅黑字体,百度云下载
  16. 大学加权平均分计算器_澳大利亚移民宝藏专业----西澳大学幼教硕士解析
  17. JS学习之路系列总结二阴阳阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)
  18. html网页结尾署名,书信署名及敬语常识(转摘)
  19. 支持自动查找和选择的ComboBox的具体实现
  20. elasticsearch 数据类型

热门文章

  1. Java版九宫格算法
  2. php的rps,SMP irq affinity与RPS/RFS的调优纪实
  3. 性能测试 - 响应时间的衡量指标 RPS Average Min Max P90 P95 P99
  4. 点播系统加服务器加投影加音响,打造真实家庭影院 投影机+音响巧搭配
  5. ! [rejected] master - master (fetch first)问题的解决方案
  6. css 平行四边形 梯形 组合_CSS-实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形 Web程序 - 贪吃蛇学院-专业IT技术平台...
  7. 虚拟机ubuntu左侧和上方工具栏消失
  8. 温度及pH敏感性聚乙烯醇/羧甲基壳聚糖水凝胶/金银花多糖/薄荷多糖/O-羧甲基壳聚糖水凝胶
  9. 交换机和路由器的区别_交换机和路由器有什么区别 交换机和路由器区别介绍【详解】...
  10. (附源码)springboot助农电商系统 毕业设计 081919