| | |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import com.ruoyi.system.api.model.LoginUser; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.http.HttpResponse; |
| | | import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.core.io.ByteArrayResource; |
| | |
| | | } |
| | | @ApiOperation(tags = {"2.0-积分钱包"}, value = "获取小程序二维码") |
| | | @PostMapping(value = "/getQrCode") |
| | | public R getQrCode() { |
| | | public R getQrCode(@RequestParam("amount") String amount ) { |
| | | LoginUser loginUser = tokenService.getLoginUser(); |
| | | SysUser data = sysUserClient.getSysUser(loginUser.getUserid()).getData(); |
| | | // 充值手机号 |
| | |
| | | OutputStream outputStream = null; |
| | | String accessToken = wxAppletTools.getAccessToken(); |
| | | try { |
| | | String url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + accessToken; |
| | | // String url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + accessToken; |
| | | Map<String, Object> param = new HashMap<>(); |
| | | param.put("scene", "phone=" + phonenumber); |
| | | param.put("scene", "phone=" + phonenumber+",amount="+amount); |
| | | param.put("check_path", false); |
| | | param.put("env_version", "trial"); |
| | | param.put("width", 200); //二维码尺寸 |
| | |
| | | line_color.put("b", 0); |
| | | param.put("line_color", line_color); |
| | | System.err.println("调用生成微信URL接口传参:" + param); |
| | | MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); |
| | | HttpEntity requestEntity = new HttpEntity(param, headers); |
| | | ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]); |
| | | System.err.println("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody()); |
| | | byte[] result = entity.getBody(); |
| | | inputStream = new ByteArrayInputStream(result); |
| | | // MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); |
| | | // HttpEntity requestEntity = new HttpEntity(param, headers); |
| | | // ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]); |
| | | // System.err.println("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody()); |
| | | // byte[] result = entity.getBody(); |
| | | //路径也是固定的"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" |
| | | String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; |
| | | //这里有个坑,需要用HttpResponse获取,不然会有问题 |
| | | HttpResponse httpResponse = HttpUtils.doPost(url, new JSONObject(param)); |
| | | //拿到httpResponse后,在获取里面的图片 |
| | | inputStream = httpResponse.getEntity().getContent(); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); |
| | | // 最后上传生成的文件名 |
| | | String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + ".jpg"; |