Asia小程

导航

微信分享自定义标题、图片、描述

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 + "&timestamp=" + 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>
JavaScript Code

 最后别忘记在微信公众号中把 JS接口安全域名 给配置上

页面引入 <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

posted on 2016-11-25 10:17  Asia小程  阅读(270)  评论(0编辑  收藏  举报