一、引包(微信開發工具包)
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-common</artifactId>
<version>3.5.0</version>
</dependency>
工具包代碼詳細鏈接:https://github.com/binarywang
二、代碼
這邊是直接返回base64圖片形式。如果有需要其他請自行處理。
@ApiOperation("生成二維碼")
@ApiImplicitParams({
@ApiImplicitParam(name="codeType",value = "類型",dataType = "String",required = true,paramType = "query"),
@ApiImplicitParam(name="parameterValue",value = "參數值",dataType = "String",required = true,paramType = "query")
})
@GetMapping(value = "/createQrCode")
public String createQrCode(@RequestParam("codeType") String codeType,
@RequestParam("parameterValue") String parameterValue) throws HttpProcessException, IOException {
//調用工具包的服務
WxMaService wxMaService = new WxMaServiceImpl();
WxMaDefaultConfigImpl wxMaDefaultConfigImpl = new WxMaDefaultConfigImpl();
wxMaDefaultConfigImpl.setAppid(WxConfig.appid); //小程序appId
wxMaDefaultConfigImpl.setSecret(WxConfig.secret); //小程序secret
wxMaService.setWxMaConfig(wxMaDefaultConfigImpl);
// 設置小程序二維碼線條顏色為黑色
WxMaCodeLineColor lineColor = new WxMaCodeLineColor("0", "0", "0");
byte[] qrCodeBytes = null;
try {
//其中codeType以及parameterValue為前端頁面所需要接收的參數。
qrCodeBytes = wxMaService.getQrcodeService().createWxaCodeBytes("pages/index/index?codeType=" + codeType + "¶meterValue=" + parameterValue, 30, false, lineColor, false);
} catch (WxErrorException e) {
e.printStackTrace();
}
String qrCodeStr= Base64.encodeBase64String(qrCodeBytes);
return qrCodeStr;
}