一、微信公众号
获取appid,secret
二、设置JS接口安全域名
公众号设置-》功能设置-》JS接口安全域名
三、设置白名单
基本设置-》IP白名单
这个不设置获取不了TOKEN
四、获取签名相关
@GetMapping(path = "getWxInfo")public CommonResult getWxInfo(String url) {CommonResult result = new CommonResult();if (obj != null) {Map map = new HashMap();map.putAll((Map)obj);result.setData(map);} else {String hp = get("https://api./cgi-bin/token?grant_type=client_credential&appid=" + DEFAULT_SOCIAL_WEIXIN_Tmp_APP_ID + "&secret=" + DEFAULT_SOCIAL_WEIXIN_Tmp_APP_SECRET + "");JSONObject json = JSON.parseObject(hp);if (null != json.get("access_token")) {String ticket = get("https://api./cgi-bin/ticket/getticket?access_token=" + json.get("access_token") + "&type=jsapi");JSONObject json1 = JSON.parseObject(ticket);if (null != json1.get("ticket")) {Map map = Sign.sign(json1.get("ticket").toString(), url);result.setData(map);}}}return result;}
public static String get(String urlStr) {HttpGet get = new HttpGet(urlStr);try {HttpClient client = HttpClients.createDefault();HttpResponse response = client.execute(get);HttpEntity entity = response.getEntity();String result = EntityUtils.toString(entity, "UTF-8");System.out.print(result);;return result;} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}
签名一天只多2000次,时间为7200秒,可以用REDIS缓存
五、HTML页面
<script src="https://res2./open/js/jweixin-1.4.0.js"></script>
<script>wx.config({debug: false, //是否 开启调试模式,建议调试的时候debug 改为trueappId: 'xxxxx', // 必填,公众号的唯一标识timestamp: '1556602084', // 必填,生成签名的时间戳nonceStr: '96e2140a-be7f-4d61-a1e5-123a7898476e', // 必填,生成签名的随机串signature: 'a1545d56ae3c5d2d388e20ba4a92e5bda74e11ed', // 必填,签名,见附录1jsApiList: ['checkJsApi','updateAppMessageShareData','updateTimelineShareData','onMenuShareAppMessage','onMenuShareTimeline','showOptionMenu',] // 必填,需要使用的JS接口列表 声明});wx.error(function(res) {// alert("微信接口初始化失败;错误信息:"+res.toString());});window.onload = function() {// alert("当前域名是:"+url);}wx.ready(function() {//wx.onMenuShareAppMessage({wx.updateAppMessageShareData({debug: false,title: '分享标题', // 分享标题desc: '分享描述', // 分享描述link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: "", // 分享图标success: function() {// 用户点击了分享后执行的回调函数}});wx.updateTimelineShareData({debug: false,title: '分享标题', // 分享标题desc: '分享描述', // 分享描述link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: "", // 分享图标success: function() {// 用户点击了分享后执行的回调函数}});});</script>
为了好看明白,这里是写死的签名信息,
//wx.onMenuShareAppMessage({
wx.updateAppMessageShareData({微信开发工具不支持这个方法,手机微信支持,开发工具onMenuShareAppMessage
备注:检查签名URLhttps://mp./debug/cgi-bin/sandbox?t=jsapisign
要分享的URL必须是当前签名的URL,不能用aURL的签名分享bURL的链接
若是检查签名没错,报invalid sign,
一、检查公众号是否完成验证,拥有权限
二、检查签名的URL与分享URL,微信上输入实际打开的地址是/后面会多个斜杠
varurl1=location.href.split('#')[0];
三、检查HTML wx.config里的大小写是否正确,jsApiList里是否有相应方法。
如果觉得《spring boot 微信分享到朋友圈 微信分享给朋友》对你有帮助,请点赞、收藏,并留下你的观点哦!