添加微信接口二进制转base64

master
吴顺杰 2 years ago
parent 86a495c369
commit 9a200012a0

@ -54,8 +54,8 @@ public class WeChatController extends BaseController {
@ApiOperation("获取微信二维码") @ApiOperation("获取微信二维码")
@PostMapping("/findWxCode") @PostMapping("/findWxCode")
public AjaxResult findWxCode(@RequestBody WeChatCodeRequest req) { 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 * @param req
* @return * @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 com.ruoyi.system.service.WeChatService;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import sun.misc.BASE64Decoder;
import javax.annotation.Resource; 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.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.Arrays; import java.util.Arrays;
@ -37,11 +31,12 @@ import java.util.concurrent.TimeUnit;
@Service @Service
public class WeChatServiceImpl implements WeChatService { public class WeChatServiceImpl implements WeChatService {
static BASE64Decoder decoder = new BASE64Decoder();
@Value("${wechat.appid}") @Value("${wechat.appid}")
private String appid; private String appid;
@Value("${wechat.secret}") @Value("${wechat.secret}")
private String secret; private String secret;
@Resource @Resource
private RedisCache redisCache; private RedisCache redisCache;
@ -150,7 +145,7 @@ public class WeChatServiceImpl implements WeChatService {
* @return * @return
*/ */
@Override @Override
public void findWxCode(WeChatCodeRequest req) { public byte[] findWxCode(WeChatCodeRequest req) {
String accessToken = this.findAccessToken(); String accessToken = this.findAccessToken();
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (req.getWidth() != null) { if (req.getWidth() != null) {
@ -159,17 +154,7 @@ public class WeChatServiceImpl implements WeChatService {
map.put("path", req.getPath() + "?shanghuId=" + req.getShanghuId()); map.put("path", req.getPath() + "?shanghuId=" + req.getShanghuId());
String jsonStr = JSONUtil.toJsonStr(map); String jsonStr = JSONUtil.toJsonStr(map);
String body = HttpUtil.post("https://api.weixin.qq.com/wxa/getwxacode?access_token=" + accessToken, jsonStr); String body = HttpUtil.post("https://api.weixin.qq.com/wxa/getwxacode?access_token=" + accessToken, jsonStr);
// BufferedImage image = null;
// return Base64.getEncoder().encodeToString(body.getBytes()); // return Base64.getEncoder().encodeToString(body.getBytes());
try { return body.getBytes();
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();
}
} }
} }

Loading…
Cancel
Save