下载地址:https://www.pan38.com/share.php?code=FNNhz 提取码:8888
pom.xml配置ZXing和commons-codec依赖
添加异常处理模块
实现文件批量导入导出功能
建议增加日志模块(如log4j)
import com.google.zxing.*;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import java.nio.file.Path;
import java.nio.file.Paths;
public class WxidQRGenerator {
// 生成微信添加好友二维码
public static void generateQR(String wxid, String outputPath) throws Exception {
String content = "weixin://contacts/profile/" + wxid;
BitMatrix matrix = new MultiFormatWriter().encode(
content, BarcodeFormat.QR_CODE, 300, 300);
Path path = Paths.get(outputPath + wxid + ".png");
MatrixToImageWriter.writeToPath(matrix, "PNG", path);
}
}
核心二维码生成逻辑,依赖ZXing库实现标准QR编码
```import org.apache.commons.codec.digest.DigestUtils;
public class WxidConverter {
// 模拟微信号转wxid(实际需调用微信API)
public static String wechatIdToWxid(String wechatId) {
return "wxid_" + DigestUtils.md5Hex(wechatId).substring(0, 12);
}
// 批量转换入口
public static void batchConvert(String[] ids, boolean toQR) {
for(String id : ids) {
if(id.startsWith("wxid_")) {
// 处理wxid转换逻辑
} else {
String wxid = wechatIdToWxid(id);
}
}
}
}
实现基础ID转换逻辑
```import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1.单个wxid转二维码\n2.批量转换");
int choice = sc.nextInt();
switch(choice) {
case 1:
WxidQRGenerator.generateQR("wxid_test123", "./");
break;
case 2:
// 调用批量处理方法
break;
}
}
}