java微信网页授权获取用户信息以及JSSDK自定义分享等功能<三>
接上文,在写完java全部代码之后,请先进行微信公众平台环境配置。
博主用的是测试号,正式公众号配置相同。
首先找到 js接口安全域 ,这个是做jssdk必须配置的一项,跟代理域名相同即可,在weixinProperties.properties这个配置文件中wx.url项。
测试公众号是这个地方,不含http://这部分,正式公众号是 公众号设置→功能设置→js接口安全域名
这样jssdk的环境配置就完成了。
然后是网页授权的环境配置,正式号也一样。
这里的网页账号项后面有个修改,点击修改,输入weixinProperties.properties这个配置文件中wx.url项,同样不含http://这个头,正式公众号是在 开发者中心→网页账号,位置差不多。
到此,授权和网页jssdk的外部环境配置全部完成。接下来剩下jsp页面的代码。这个时候在java后台已经可以通过http://heboy18.6655.la/lvyouju/lvyou.do?info=1这个链接获取到用户信息。只是没有页面,依旧会报404错误。
jsp页面代码图:
<span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="org.lvyouju.entity.SignPackage;" %> <% SignPackage signPackage = (SignPackage)request.getAttribute("signPackage"); %> <!DOCTYPE HTML> <html> <head> <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script> </head> <body> <input type="hidden" id="appid"value=<%=signPackage.getAppid()%>> <input type="hidden" id="timestamp"value=<%=signPackage.getTimestamp()%>> <input type="hidden" id="nonceStr"value=<%=signPackage.getNonceStr()%>> <input type="hidden" id="signature"value=<%=signPackage.getSignature()%>> <img id="img" alt="图片" src="test.jpg"> </body> <script type="text/javascript"src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script type="text/javascript"> var appid=$("#appid").val(); var timestamp=$("#timestamp").val(); var nonceStr=$("#nonceStr").val(); var signature=$("#signature").val(); var dataForWeixin = { title: "随便写", //分享标题 desc: "分享之旅", //分享描述 imgUrl: $("#img")[0].src, //分享的图片 link: "http://heboy18.6655.la" //分享的链接 }; wx.config({ debug : false, appId : appid, timestamp : timestamp, nonceStr : nonceStr, signature : signature, jsApiList : [ "onMenuShareQQ","hideAllNonBaseMenuItem","showMenuItems","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareQZone"] }); wx.ready(function() { wx.hideOptionMenu(); wx.showMenuItems({ menuList: ["menuItem:share:timeline","menuItem:share:appMessage","menuItem:share:qq","menuItem:share:QZone"] }); wx.onMenuShareTimeline({ title: dataForWeixin.title, // 分享标题 link: dataForWeixin.link, // 分享链接 imgUrl: dataForWeixin.imgUrl, // 分享图标 success: function () { alert("分享成功"); }, cancel: function () { // 用户取消分享后执行的回调函数 } }); wx.onMenuShareAppMessage({ //分享给微信朋友 title: dataForWeixin.title, // 分享标题 desc: dataForWeixin.desc, // 分享描述 link: dataForWeixin.link, // 分享链接 imgUrl: dataForWeixin.imgUrl, // 分享图标 type: "", // 分享类型,music、video或link,不填默认为link dataUrl: "", // 如果type是music或video,则要提供数据链接,默认为空 success: function () { alert("分享成功"); }, cancel: function () { } }); wx.onMenuShareQQ({ title: dataForWeixin.title, // 分享标题 desc: dataForWeixin.desc, // 分享描述 link: dataForWeixin.link, // 分享链接 imgUrl: dataForWeixin.imgUrl, // 分享图标 success: function () { alert("分享成功"); }, cancel: function () { } }); wx.onMenuShareQZone({ title: dataForWeixin.title, // 分享标题 desc: dataForWeixin.desc, // 分享描述 link: dataForWeixin.link, // 分享链接 imgUrl: dataForWeixin.imgUrl, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); }); wx.error(function(res) { }); </script> </html> </span>页面代码全部写完。可能还有个签名的类没有源码。
SignPackage.java类
public class SignPackage { /** * 时间戳 */ private String timestamp; /** * 随机字符串 */ private String nonceStr; /** * 签名字符串 */ private String signature; /** * 参与签名的url */ private String url; /** * js票据 */ private JsapiTicket jsapiTicket; /** * 网页授权access_token */ private String access_token; /** * 用户刷新access_token */ private String refresh_token; /** * 公众号id */ private String appid; /** * 用户openid */ private String openid; public String getAccess_token() { return access_token; } public void setAccess_token(String access_token) { this.access_token = access_token; } public String getRefresh_token() { return refresh_token; } public void setRefresh_token(String refresh_token) { this.refresh_token = refresh_token; } public String getAppid() { return appid; } public void setAppid(String appid) { this.appid = appid; } public String getOpenid() { return openid; } public void setOpenid(String openid) { this.openid = openid; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public JsapiTicket getJsapiTicket() { return jsapiTicket; } public void setJsapiTicket(JsapiTicket jsapiTicket) { this.jsapiTicket = jsapiTicket; } public String getTimestamp() { return timestamp; } public void setTimestamp(String timestamp) { this.timestamp = timestamp; } public String getNonceStr() { return nonceStr; } public void setNonceStr(String nonceStr) { this.nonceStr = nonceStr; } public String getSignature() { return signature; } public void setSignature(String signature) { this.signature = signature; } }
全部完成。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。