微信js sdk分享开发摘记java版
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了微信js sdk分享开发摘记java版,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3490字,纯文字阅读大概需要5分钟。
内容图文
绑定域名和引入js的就不说了
废话不说直接上代码
1 public void share(HttpServletRequest request) throws Exception { 2 3 StringBuffer homeUrl = request.getRequestURL(); 4 String queryString =request.getQueryString(); 5if(StringUtils.isNotBlank(queryString)){ 6 homeUrl.append("?").append(queryString); 7 }
8long timestamp = System.currentTimeMillis() / 1000; 910 String nonceStr = UUID.randomUUID().toString(); 1112 String signature = SignUtil.getSignature( 13 weiXinBaseService.getJsTicket(), nonceStr, timestamp, 14 homeUrl.toString()); 15 logger.info("url="+homeUrl); 16 logger.info("nonceStr=" + nonceStr); 17 logger.info("timestamp=" + timestamp); 18 logger.info("signature=" + signature); 19 logger.info("appid=" + WebConfig.get("weixin.appid")); 20 request.setAttribute("appid", WebConfig.get("weixin.appid")); 21 request.setAttribute("timestamp", timestamp); 22 request.setAttribute("nonceStr", nonceStr); 23 request.setAttribute("signature", signature); 24 }
此方法主要有几个地方需要注意:1.获取的是请求的全路径,如果get请求有跟参数需要做个拼接。要不然签名会有错误。
2.随机数直接通过uuid随机数取的。
3.签名。微信的签名是个挺麻烦的事。但是又是必不可少的。签名代码奉上。
/** * 获得分享链接的签名。 * @param ticket * @param nonceStr * @param timeStamp * @param url * @return * @throws Exception */ public static String getSignature(String ticket, String nonceStr, long timeStamp, String url) throws Exception { String sKey = "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "×tamp=" + timeStamp + "&url=" + url; return getSignature(sKey); }
具体签名方法如下
/** * 验证签名。 * * @param signature * @param timestamp * @param nonce * @return */ public static String getSignature(String sKey) throws Exception { String ciphertext = null; MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] digest = md.digest(sKey.toString().getBytes()); ciphertext = byteToStr(digest); return ciphertext.toLowerCase(); } /** * 将字节数组转换为十六进制字符串 * * @param byteArray * @return*/privatestatic String byteToStr(byte[] byteArray) { String strDigest = ""; for (int i = 0; i < byteArray.length; i++) { strDigest += byteToHexStr(byteArray[i]); } return strDigest; }
/** * 将字节转换为十六进制字符串 * * @param mByte * @return */ private static String byteToHexStr(byte mByte) { char[] Digit = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘ }; char[] tempArr = newchar[2]; tempArr[0] = Digit[(mByte >>> 4) & 0X0F]; tempArr[1] = Digit[mByte & 0X0F]; String s = new String(tempArr); return s; }
前端页面中引入微信js文件并配置config
< script type ="text/javascript" src ="${pageContext.request.contextPath}/static/js/jweixin-1.0.0.js" ></ script > < script > var shareTitle = " 法国游已经近在咫尺了,是朋友就帮我一把吧! " ; var shareImg = " http:// " + domain + " ${pageContext.request.contextPath}/static/img/shareImage.jpg " wx.config({ debug: false , // appId: ‘ ${appid} ‘ , // 必填,公众号的唯一标识 timestamp: ‘ ${timestamp} ‘ , // 必填,生成签名的时间戳 nonceStr: ‘ ${nonceStr} ‘ , // 必填,生成签名的随机串 signature: ‘ ${signature} ‘ , // 必填,签名,见附录1 jsApiList: [ ‘ onMenuShareTimeline ‘ , ‘ onMenuShareAppMessage ‘ , ‘ showOptionMenu ‘ ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });
wx.ready(function () {
share();
});
function share(){
wx.showOptionMenu();
wx.onMenuShareTimeline({
title: shareTitle, // 分享标题
link: $("#shareLink").val(), // 分享链接
imgUrl:shareImg,
success: function () {
}
});
wx.onMenuShareAppMessage({
title: shareTitle, // 分享标题
link: $("#shareLink").val(), // 分享链接
imgUrl:shareImg,
desc: ‘xxx‘, // 分享描述
success: function () {
}
});
}
</script>
原文:http://www.cnblogs.com/wanglonghai/p/4565452.html
内容总结
以上是互联网集市为您收集整理的微信js sdk分享开发摘记java版全部内容,希望文章能够帮你解决微信js sdk分享开发摘记java版所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。