微信分享到朋友圈其实是微信中的一个内置功能,但当我们想自定义分享的内容的时候,就得自己写js代码调用微信的jsapi。
过程大体分为两步:
一、当你打开一个页面(你项目中需要加入分享朋友圈功能的页面)时,会执行一段js代码,这段js代码中实现了一个微信注入权限的功能,因为只有注入权限之后你才可以调用微信的分享朋友圈的功能,微信注入权限接口的js代码如下所示:
$(function(){
ajaxConfig();
});
function ajaxConfig(){
$.ajax({
type:"post",
dataType: "json",
data: {
url : location.href.split('#')[0]
},
url: "${pageContext.request.contextPath }/wxUser/testConfig.shtml",
success: function(obj){
if(obj.result == "success"){
//微信注入权限接口
wx.config({
debug: false,
appId: obj.appId,
timestamp: obj.timestamp,
nonceStr: obj.nonceStr,
signature: obj.signature,
jsApiList: [
'onMenuShareTimeline', //分享到朋友圈
]
});
}else{
alert("加载数据错误");
}
},
error:function(){
alert("系统请求异常!");
}
});
}
如果接口权限注入成功,这个接口需要5个重要的参数,公众号的appid,时间戳timestamp,随机字符串nonceStr,以及加密签名signature,这四个参数通过ajax的回调函数进行接收,后台代码的实现如下:
@RequestMapping("/testConfig")
public void testConfig(String url,Model model,HttpServletResponse response) throws IOException{
String jsapi_ticket = JsapiTicketTimeTask.jsapi_ticket;
String result;
if("".equals(jsapi_ticket)){
result = "error";
}
//进行数据的加密(url,jsapi_ticket,nonceStr,timestamp)等参数进行SHA1加