微信开发(一)--分享接口

      最近在做微信服务号开发,简单总结一下,便于自己学习积累和分享给大家:

      环境介绍

                Spring+ Spring MVC +Mybatis

      开发语言

                 JAVA

      微信公众平台的开发中,微信只公布了一个基于Http协议的接口和加解密的算法sdk,在开发的过程中可以自己根据需求来配置数据,调用相关接口,也可以引用比较成熟的基于java语言的微信公众号sdk。笔者引用的是目前比较流行的

      weixin-java-tools

      可以参考:点击打开链接

项目中引入了 weixin-java-mp-2.9.0.jar 和 weixin-java-common-2.9.0.jar 就可直接调用相关功能接口和完成jssdk认证

      分享接口:

           1.后台准备:

                建一个公用控制类: WeXinJsSdkController ,通过ajax 访问完成jssdk认证:

 
@Controller
@RequestMapping("jssdk")
public class WeXinJsSdkController {
	
	@Autowired
	private WxMpService wxMpService;
	
	@RequestMapping(value = "/config", method = RequestMethod.GET)
	@ResponseBody
	public WxJsapiSignature wxJsSdkConfig(HttpServletRequest request,String url) {
		try {  // 直接调用wxMpServer 接口 
			WxJsapiSignature wxJsapiSignature = wxMpService.createJsapiSignature(url);
			return wxJsapiSignature;
		} catch (WxErrorException e) {
			return null;
		}
	}
	  
}

      2.页面初始化js 配置相关接口: 
   <%--通过config接口注入权限验证配置--%> 
        /* 初始化jssdk  分享功能  */
 	$.get("${basePath}/jssdk/config.do",{url:window.location.href},function(data,status){
 		if(status == "success"){
 			wx.config({
 			    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
 			    appId: data.appId, // 必填,公众号的唯一标识
 			    timestamp: data.timestamp, // 必填,生成签名的时间戳
 			    nonceStr: data.nonceStr, // 必填,生成签名的随机串
 			    signature: data.signature,// 必填,签名,见附录1
 			    jsApiList: ['checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
 			 
 			});  
 		
 			
 			wx.ready(function(){
 			  //	layer.msg("jssdk初始化成功");
 			    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,
 			    //所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
 			
 			      <%-- 分型内容  分享给朋友、朋友圈、 --%> 
 		            var shareData = {  
 		                title: '${requestScope.atc.trainsubject}',  
 		                desc: '${description}',  
 		            //  link: 'https://www.baidu.com',  // 分享域名要和当前域名保持一致!!
 		                imgUrl: 'http://www.cyfd.cn/tektcrm/EventNoti/images/attendance.png',  
 		                success: function (res) {  
 		                   // alert('已分享');  
 		                },  
 		                cancel: function (res) {  
 		                   // alert('已取消');  
 		                },  
 		                fail: function (res) {  
 		                   // alert(JSON.stringify(res));  
 		                }  
 		            };  
 		            
 		                <%--分享给朋友接口--%>  
 		            wx.onMenuShareAppMessage(shareData);  
 		               <%--分享到朋友圈接口--%>  
 		            wx.onMenuShareTimeline(shareData);  
 		               <%--分享到QQ朋友接口--%>  
 		            wx.onMenuShareQQ(shareData);  
 			
 			});
 			wx.error(function(res){
 			    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,
 			    //也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
 			//	layer.msg(res);
 			});
 			
 		}
 		},"json");
   学习在于不断地探索、思考和总结记录,欢迎喜欢的朋友们在下方留言,与君共同进步!















评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值