国产高清吃奶成免费视频网站_jizzzzxxxxx_欧美天天在线_最新色视频

0411-39943997
工作時間:周一至周日 8:30-17:30
技術文庫
Technical Library

關于微信 JSSDK 基本使用方法

標簽: C# JSSDK 微信   訪問: 17152017-09-08

直接上干貨了,

特別說明:我的項目中的有個母板頁(main.master),這樣所有的頁面引用一下,就行了。總之這里所有的代碼都在一個公共的頁面中實現就行了。

首先在你的項目中引用微信的JS庫:

main.master中的代碼:

<head runat="server">

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

<script type="text/javascript">

        $(function(){//JQ匿名函數,當前頁面加載完成后執行 。           

            wx.config({                 

                appId: '<%=appId%>',//在CodeBehind="main.master.cs" 頁面中設置。

                timestamp: <%=timestamp%>, 

                nonceStr: '<%=nonceStr%>', 

                signature: '<%=signature%>', 

                jsApiList: [

                  // 所有要調用的 API 都要加到這個列表中

                    'checkJsApi',

                    'onMenuShareTimeline',

                    'onMenuShareAppMessage',

                    'onMenuShareQQ'                    

                   //這里加上你要調用微信的功能 API ,這里只列舉幾個分享的功能

                ]

            }); 

        }); 

        //啟用微信監聽

        wx.ready(function () {

            //分享給朋友

            wx.onMenuShareAppMessage({

                title: '<%=wxTitle%>',//在CodeBehind="main.master.cs" 頁面中設置,根據不同頁面傳過來的信息進行設置。

                desc: '<%=wxDesc%>',

                link: '<%=wxLinkUrl%>',

                imgUrl: '<%=wxImgLinkUrl.Trim()==""?wxTempImgLinkUrl:wxImgLinkUrl%>'//這里用到了三目運算符,當引用的頁面沒有設置分享圖片時顯示系統默認圖片。

            });

            //分享到朋友圈

            wx.onMenuShareTimeline({

                title: '<%=wxTitle%>',

                link: '<%=wxLinkUrl%>',

                imgUrl: '<%=wxImgLinkUrl.Trim()==""?wxTempImgLinkUrl:wxImgLinkUrl%>'

            });

            //分享到QQ

            wx.onMenuShareQQ({

                title: '<%=wxTitle%>',

                desc: '<%=wxDesc%>',

                link: '<%=wxLinkUrl%>',

                imgUrl: '<%=wxImgLinkUrl.Trim()==""?wxTempImgLinkUrl:wxImgLinkUrl%>'

            });

        });

</script>

</head>


CodeBehind="***.master.cs" 中的代碼


//說明:MasterBasePage只是我自己封裝的一個基類,不用理會。

public partial class main : MasterBasePage

    {

        protected string appId = "";

        protected string nonceStr = "";

        protected string timestamp = "";

        protected string signature = "";

        protected string wxTitle = "";//根據不同文章設置分享的標題。

        protected string wxDesc = "";//根據不同文章設置分享的描述。

        protected string wxLinkUrl = "";//根據不同文章設置分享的連接。

        protected string wxImgLinkUrl = "";//根據不同文章的封面設置分享的圖片。

        protected string wxTempImgLinkUrl = "";//這是分享時默認顯示的圖片路徑。標準的應該是400*400,請參考微信。


        protected void Page_Load(object sender, EventArgs e)

        {

            if (!basePage.isMobile())//這里主是判斷是不是微信內置瀏覽器,如果不是,退出。

            {

                return;

            }


            wxTempImgLinkUrl = Request.Url.Scheme + "://" + Request.Url.Authority.ToLower() + "/temp/main/images/wxlogo.png";


            wxLinkUrl = Request.Url.Scheme + "://" + Request.Url.Authority.ToLower() + Request.RawUrl;


            string RawUrl = Request.RawUrl;


            appId = CacheHelper.Get<string>("appId" + RawUrl);//我會將一些常用的信息放到服務的Cache中,下次使用直接用就行。微信在提供接口的幫助文檔中也是這么說的。

            nonceStr = CacheHelper.Get<string>("nonceStr" + RawUrl);

            timestamp = CacheHelper.Get<string>("timestamp" + RawUrl);

            signature = CacheHelper.Get<string>("signature" + RawUrl);


            try

            {

                if ((string.IsNullOrEmpty(this.timestamp) || string.IsNullOrEmpty(this.nonceStr)) || string.IsNullOrEmpty(this.signature))

                {//檢查基本信息是否存在,不存在則重新獲取生成。


                    Model.weixin_account model = new BLL.weixin_account().GetModel(1); //獲取公眾賬戶信息,我這里設置了多個微信公眾賬號信息,所以根據ID從數據庫中讀取。當然您可以直接寫在下面的參數中。


                    appId = model.appid;

                    string url = Request.Url.Scheme + "://" + Request.Url.Authority.ToLower() + Request.RawUrl;//這里一定要用到當前頁面的連接。

                    string jmdata = "jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}";


                    TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);

                    timestamp = Convert.ToInt64(ts.TotalSeconds).ToString();

                    nonceStr = Utils.GetRamStr(15);


                    Senparc.Weixin.MP.CommonAPIs.JsApiTicketContainer.Register(model.appid, model.appsecret);

                    string ticket = Senparc.Weixin.MP.CommonAPIs.JsApiTicketContainer.GetTicket(model.appid);


                    jmdata = string.Format(jmdata, ticket, nonceStr, timestamp, url);


                    signature = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(jmdata, "SHA1");


                    CacheHelper.Insert("appId" + RawUrl, appId, 120);//將信息存在Cache中

                    CacheHelper.Insert("nonceStr" + RawUrl, nonceStr, 120);

                    CacheHelper.Insert("timestamp" + RawUrl, timestamp, 120);

                    CacheHelper.Insert("signature" + RawUrl, signature, 120);

                }

            }

            catch { }

        }


        //這個方法是當引用頁面調用時設置分享信息的

        public void bindShare(string title = "", string  description = "", string  img_ur = "")

        {           

            wxTitle = title;

            wxDesc = description;

            wxImgLinkUrl = img_ur;

        }



使用方法:

假如有一個新聞頁面:..../news/show-1.html


在這個頁面的cs頁中


根據ID獲取文章內容得到 model (這里只是個列子,不要在意我這里的model是什么)


((main)base.Master).bindShare(model.title,model.description,model.img_url);


完事,您可以在微信中試試分享了。


Copyright? 2020 仟億科技,All rights reserved.