function isWeiXin(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}
$(function() {
if(isWeiXin()){
loadJsSdk();
}
});
function loadJsSdk() {
var url = "setWxJsSdk_${currentApp.industryCode}.do";
var params = {
notify_url : window.location.href
};
jQuery.post(url, params, function callback(data) {
wx.config({
appId : data.weiXin.wxAppId, // 必填,公众号的唯一标识
timestamp : data.timestamp, // 必填,生成签名的时间戳
nonceStr : data.nonceStr, // 必填,生成签名的随机串
signature : data.sing,// 必填,签名,见附录1
jsApiList : [ 'hideOptionMenu', 'onMenuShareAppMessage',
'onMenuShareTimeline','onMenuShareQQ' ]
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
});
}
wx.ready(function() {
wx.onMenuShareTimeline({//分享到朋友圈
title : 'product.productName', // 分享标题document.title
link : '${managePath}', // 分享链接
imgUrl : '${product.imgSmall}', // 分享图标
success : function() {
// 用户确认分享后执行的回调函数
var url = "fCircleOfFriends_${currentApp.industryCode}.do";
var params = {
productName : '${product.productName}'
};
jQuery.post(url, params, function callback(data) {});
},
cancel : function() {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({//分享给朋友
title: '${product.productName}', // 分享标题
desc: '${product.productName}', // 分享描述
link: '${managePath}', // 分享链接
imgUrl: '${product.imgSmall}', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
var url = "fCircleOfFriends_${currentApp.industryCode}.do";
var params = {
productName : '${product.productName}'
};
jQuery.post(url, params, function callback(data) {});
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareQQ({
title: '${product.productName}', // 分享标题
desc: '${product.productName}', // 分享描述
link: '${managePath}', // 分享链接
imgUrl: '${product.imgSmall}', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
});
wx.error(function(res) {
});
时间加载要放到网页最后,
public String sign(String jsapi_ticket, String url) {
nonceStr = create_nonce_str();
timestamp = create_timestamp();
String string1;
String signature = "";
//注意这里参数名必须全部小写,且必须有序
string1 = "jsapi_ticket=" + jsapi_ticket +
"&noncestr=" + nonceStr +
"×tamp=" + timestamp +
"&url=" + url;
// System.out.println(string1);
try
{
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(string1.getBytes("UTF-8"));
signature = byteToHex(crypt.digest());
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
return signature;
}
private static String create_nonce_str() {
return UUID.randomUUID().toString();
}
private static String create_timestamp() {
return Long.toString(System.currentTimeMillis() / 1000);
}
private static String create_nonce_str() {
return UUID.randomUUID().toString();
}
private static String create_timestamp() {
return Long.toString(System.currentTimeMillis() / 1000);
}
setWxJsSdk 这个方法主要就是签名,和获取保存到数据库的微信公众号信息。由于ticket在授权给第三方平台和直接用公众号获取方式一样。就是穿的参数不同,这个自己根据文档来写。