1去微信公众平台配置
2 controller中的方法 (没有工具类的参考我另一篇)https://blog.csdn.net/qq_42917455/article/details/97751644
/**
* 调用微信二维码的方法
* @param request
* @return
* @throws Exception
*/
@GetMapping("getWechatSign")
public String getWechatSign(HttpServletRequest request) throws Exception {
String accessToken = WeiXinUtil.getAccessToken();
String ticket = WeiXinUtil.getJsTicket(accessToken);
String url = request.getParameter("url");
Map<String, String> sign = SignUtil.sign(ticket, url);
sign.put("appId", APPID);
return com.alibaba.fastjson.JSONObject.toJSONString(sign);
}
3 前端调用后台的方法实现扫一扫 (记得引入微信的js 如下)
<script type="text/javascript" src="http://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
var _data = {
url: location.href.split('#')[0],
t: Math.random()
};
// 获取微信签名
$.ajax({
url: "请求后台签名校验的路劲",
data: _data,
method: "GET",
contentType: 'application/json;charset=utf-8',
success: function(o) {
var data = JSON.parse(o);
wxConfig(data.timestamp, data.nonceStr, data.signature, data.appId);
},
error: function(err) {
console.log("签名错误")
}
});
function wxConfig(_timestamp, _nonceStr, _signature, _appId) {
wx.config({
debug: false, // 开启调试模式
appId: _appId, // 必填,公众号的唯一标识
timestamp: _timestamp, // 必填,生成签名的时间戳
nonceStr: _nonceStr, // 必填,生成签名的随机串
signature: _signature, // 必填,签名,
jsApiList: ['checkJsApi', 'scanQRCode','chooseImage','uploadImage','downloadImage','getLocalImgData']
// 必填,需要使用的JS接口列表,
});
//调用微信扫一扫
$("#saoyisao").click(function() {
//调用微信扫一扫
wx.scanQRCode({
needResult: 1,
scanType: ["qrCode", "barCode"],
success: function(res) {
//获取的值
var result = res.resultStr;
}
})
})
}