您的位置:首页 > 移动开发 > 微信开发

java微信网页授权获取用户信息以及JSSDK自定义分享等功能<三>

2015-12-08 13:09 1016 查看
接上文,在写完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;
}
}


全部完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: