微信分享自定义标题、图片、描述
1、后台代码
public ActionResult Index() { if (Request.UserAgent.Contains("MicroMessenger")) { var timeStamp = WxPayApi.GenerateTimeStamp(); var nonceStr = WxPayApi.GenerateNonceStr(); // 时间戳 ViewBag.GenerateTimeStamp = timeStamp; //生成签名的随机串 ViewBag.NonceStr = nonceStr; WXApiHelper helper = new WXApiHelper(); var token = helper.GetToken(); if (token != null && !string.IsNullOrEmpty(token.access_token)) { var client = new System.Net.WebClient(); client.Encoding = System.Text.Encoding.UTF8; var url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + token.access_token + "&type=jsapi"; Log.Debug("请求地址", url); var result = client.DownloadString(url); var serializer = new JavaScriptSerializer(); var obj = serializer.Deserialize<Dictionary<string, string>>(result); var jsapiTicket = ""; if (obj.TryGetValue("ticket", out jsapiTicket)) { } var reqUrl = Request.Url.ToString(); string string1 = "jsapi_ticket=" + jsapiTicket + "&noncestr=" + nonceStr + "×tamp=" + timeStamp + "&url=" + reqUrl; var signature = Sha1(string1); // 签名 ViewBag.Signature = signature; } } return View(); } /// <summary> /// sha1 加密 /// </summary> /// <param name="code"></param> /// <returns></returns> private string Sha1(string code) { if (string.IsNullOrEmpty(code)) { return ""; } return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(code, "SHA1").ToLower(); }
2、前台代码
<script> var title = '标题'; var desc = '描述'; var link = window.location.href; var imgUrl = "图片地址"; wx.config({ debug: false, appId: 'wxxxxxxxxxxxxx', timestamp: '@ViewBag.GenerateTimeStamp', nonceStr: '@ViewBag.NonceStr', signature: '@ViewBag.Signature', jsApiList: ["onMenuShareAppMessage", "onMenuShareTimeline"] }); wx.ready(function () { // 在这里调用 API wx.onMenuShareAppMessage({ title: title, // 分享标题 desc: desc, // 分享描述 link: link, // 分享链接 imgUrl: imgUrl, // 分享图标 success: function () { }, cancel: function () { } }); wx.onMenuShareTimeline({ title: title, // 分享标题 link: link, // 分享链接 imgUrl: imgUrl, // 分享图标 success: function () { }, cancel: function () { } }); }); </script>
最后别忘记在微信公众号中把 JS接口安全域名 给配置上
页面引入 <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>