微信公众平台开发学习系列(四):微信分享内容修改与分享之后才能访问某页面

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

本来是想实现点击一个按钮就弹出微信的分享窗口,但是并没有发现微信提供这样的功能。可总是有收获的,比如,如何修改微信的分享内容。这些功能是由微信JS-SDK提供。

官方文档地址:http://mp.weixin.QQ.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html

根据步骤,绑定域名-引入js-编写js代码

前台代码:

<script>wx.config({

debug:false,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId:'@ViewData["AppId"]',//必填,公众号的唯一标识timestamp:'@ViewData["Timestamp"]',//必填,生成签名的时间戳nonceStr:'@ViewData["NonceStr"]',//必填,生成签名的随机串signature:'@ViewData["Signature"]',//必填,签名jsApiList: ['checkJsApi','openLocation','getLocation','onMenuShareTimeline','onMenuShareAppMessage','scanQRCode']//必填,需要使用的JS接口列表,所有JS接口列表见附录2。详见:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html});

wx.error(function (res) {

console.log(res);

alert('验证失败');

});

wx.ready(function () {

wx.onMenuShareTimeline({

title:'自定义的分享标题',//分享标题link:'http://www.baidu.com',//分享链接imgUrl:'http://images.cnitblog.com/i/340216/201404/301756448922305.jpg',//分享图标success: function () {

$.post("/Home/GetCookie");

alert('转发成功!');

},

cancel: function () {

alert("转发失败");

},

fail: function (res) {

alert(JSON.stringify(res));

}

});

});</script>

获取timestamp等信息的后台代码如下:

publicActionResult Index()

{vartimestamp =JSSDKHelper.GetTimestamp();varnonceStr =JSSDKHelper.GetNoncestr();stringticket =accessTokenContainer.TryGetJsApiTicket(appId, secret);varsignature =JSSDKHelper.GetSignature(ticket, nonceStr, timestamp, Request.Url.AbsoluteUri);

ViewData["AppId"] =appId;

ViewData["Timestamp"] =timestamp;

ViewData["NonceStr"] =nonceStr;

ViewData["Signature"] =signature;returnView();

}

以下内容与微信开发并没什么关系,只是记录而已。

根据需求,需要分享之后才能访问某页面,我的想法是再分享success是post一个请求,返回cookie,cookie记录一个特殊值,同样,session中也记录同样的值,在页面上逻辑判断。代码为:

publicActionResultPRotectView()

{if(Request.Cookies["protect"] !=null&& Session["protect"] !=null)

{if(Session["protect"].ToString() == Request.Cookies["protect"].Value)

{returnContent("你有权访问此页面");

}returnContent("你无权访问此页面,需要先分享图文链接");

}returnContent("你无权访问此页面,需要先分享图文链接");

}

post请求的action为:

[HttpPost]publicvoidGetCookie()

{

Guid guid=Guid.NewGuid();

HttpCookie cookie= Request.Cookies["protect"];

cookie=newHttpCookie("protect",guid.ToString());

Session["protect"] =guid.ToString();

cookie.Expires= DateTime.Now.AddMinutes(10);

Response.Cookies.Add(cookie);

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航