namespace ManYiAbyWAP.Models { /// <summary> /// 微信获取Token返回参数类 /// </summary> public class WXInfo { public string APPID { get; set; } public string access_token { get; set; }//access_token public string expires_in { get; set; }//Token过期时间,7200秒内有效 public string ticket { get; set; }//jsapi_ticket public string errmsg { get; set; } public int errcode { get; set; } public string noncestr { get; set; }//生成签名的随机串 public string timestamp { get; set; }//生成签名的时间戳 public string signature { get; set; }//签名返回值 } }
网页端进行初始化的JS代码:
//微信JS SDK请求状态 var requestStatus = 0; function shareWX() { if (requestStatus != 1) { requestStatus = 1;//正在请求 var ajaxPara = "url=" + encodeURIComponent(window.location.href.split('#')[0]); $.ajax({ url: '/WXMessage/GetToken', dataType: 'json', data: ajaxPara, success: function (json) { if (undefined != json && json !== "") { var jsonObjs = eval(json); wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: jsonObjs.APPID, // 必填,公众号的唯一标识 timestamp: jsonObjs.timestamp, // 必填,生成签名的时间戳 nonceStr: jsonObjs.noncestr, // 必填,生成签名的随机串 signature: jsonObjs.signature,// 必填,签名,见附录1 jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone' ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function () { //alert("微信验证成功"); // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 wx.checkJsApi({ jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone' ], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function (res) { // 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} } }); wx.onMenuShareWeibo({ title: '满艺网分享测试', // 分享标题 desc: '满艺网分享描述测试', // 分享描述 link: 'http://www.manyiaby.com', // 分享链接 imgUrl: 'http://www.manyiaby.com/img/logo_2.jpg', // 分享图标 success: function () { // 用户确认分享后执行的回调函数 alert("分享成功"); }, cancel: function () { // 用户取消分享后执行的回调函数 alert("分享取消"); } }); }); wx.error(function (res) { //alert("微信验证失败 res:"+res); // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 }); requestStatus = 2;//请求完成 } }, complete: function () { window.setTimeout(function () { requestStatus = 2;//请求完成 }, 300); } }); }