添加微信接口二进制转base64

master
吴顺杰 10 months ago
parent 86a495c369
commit 9a200012a0

@ -54,8 +54,8 @@ public class WeChatController extends BaseController {
@ApiOperation("获取微信二维码")
@PostMapping("/findWxCode")
public AjaxResult findWxCode(@RequestBody WeChatCodeRequest req) {
weChatService.findWxCode(req);
return AjaxResult.success();
return AjaxResult.success(weChatService.findWxCode(req));
}
/**

@ -50,5 +50,5 @@ public interface WeChatService {
* @param req
* @return
*/
void findWxCode(WeChatCodeRequest req);
byte[] findWxCode(WeChatCodeRequest req);
}

@ -12,14 +12,8 @@ import com.ruoyi.system.domain.dto.request.WeChatRequest;
import com.ruoyi.system.service.WeChatService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import sun.misc.BASE64Decoder;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
@ -37,11 +31,12 @@ import java.util.concurrent.TimeUnit;
@Service
public class WeChatServiceImpl implements WeChatService {
static BASE64Decoder decoder = new BASE64Decoder();
@Value("${wechat.appid}")
private String appid;
@Value("${wechat.secret}")
private String secret;
@Resource
private RedisCache redisCache;
@ -150,7 +145,7 @@ public class WeChatServiceImpl implements WeChatService {
* @return
*/
@Override
public void findWxCode(WeChatCodeRequest req) {
public byte[] findWxCode(WeChatCodeRequest req) {
String accessToken = this.findAccessToken();
Map<String, Object> map = new HashMap<>();
if (req.getWidth() != null) {
@ -159,17 +154,7 @@ public class WeChatServiceImpl implements WeChatService {
map.put("path", req.getPath() + "?shanghuId=" + req.getShanghuId());
String jsonStr = JSONUtil.toJsonStr(map);
String body = HttpUtil.post("https://api.weixin.qq.com/wxa/getwxacode?access_token=" + accessToken, jsonStr);
// BufferedImage image = null;
// return Base64.getEncoder().encodeToString(body.getBytes());
try {
byte[] bytes1 = decoder.decodeBuffer(body);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
BufferedImage bi1 = ImageIO.read(bais);
File w2 = new File("D:\\QQ.png");// 可以是jpg,png,gif格式
ImageIO.write(bi1, "png", w2);// 不管输出什么格式图片,此处不需改动
} catch (IOException e) {
e.printStackTrace();
}
return body.getBytes();
}
}

Loading…
Cancel
Save