|
|
|
@ -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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|