最近忙了好久,也好久没有写点什么,总算抽出点时间可以来csdn看看。顺便把微信分享的功能写一点心得。
微信H5分享就是我们写的一个H5页面,可以是html、亦可以是其他动态类型的页面,对于我来说微信分享不是第一次做了,之前以为只可以在非html页面中加,后来仔细一想那我们的ajax干嘛去啦。
下面我就具体说一下静态页面和非静态页面怎么实现微信还H5分享。
非静态:这个好说了,我们只需要在当前页面的onload中获取Token和ticket,把微信分享接口需要的签名apikey什么的做一个全局变量取到值然后在页面前端调用就好了。一开始感觉这种方法确实方便,但是这种方法如果你有一个页面分享你需要写一遍,有几个页面就需要写几遍。
静态:个人建议不论是什么样子的页面都按照静态方式调取微信接口,拓展性比较好。
首先引用微信JS <script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>,这个js版本一直在更新。
var appId;微信公众号appid
var timestamp;时间戳自己生成
var nonceStr;随机字符串自己定义
var signature;签名自己生成(重要)
这四个是我们调用微信js需要的参数,上面除了签名之外其他都好说,最重要是这个签名的生成:
public void signature(string currurl)
{
appid = vhcar.Appid;
noncestr = "123456";
timestamp = GenerateTimeStamp(DateTime.Now);
StringBuilder sb = new StringBuilder();
sb.AppendFormat("jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}", vhcar.Jsapi_ticket, noncestr, timestamp, currurl);
//SHA1签名千万不要弄错
sign = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sb.ToString(), "SHA1");
}
生成签名的这个规则不要弄错,另外拼接的stringbuilder参数
1.access_token,这里需要注意,微信有两个token,一个是access_token,一个是token,我们这里需要的是access_token
2.ticket,这个是根据上面的access_token来获取的,所以如果accesstoken获取有问题的话这个就绝对有问题。
3.currurl,当前页面的链接地址,注意一