c# jssdk 微信关于微信 jssdk 基本使用方法-欧洲杯买球app

0411-39943997
工作时间:周一至周日 8:30-16:30
技术文库
technical library
关于微信 jssdk 基本使用方法
标签: c# jssdk 微信  访问: 9912017-09-08

直接上干货了,

特别说明:我的项目中的有个母板页(main.master),这样所有的页面引用一下,就行了。总之这里所有的代码都在一个公共的页面中实现就行了。

首先在你的项目中引用微信的js库:

main.master中的代码:

" style="white-space: normal;">http://res.wx.qq.com/open/js/jweixin-1.2.0.js">


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("appid" rawurl);//我会将一些常用的信息放到服务的cache中,下次使用直接用就行。微信在提供接口的帮助文档中也是这么说的。

            noncestr = cachehelper.get("noncestr" rawurl);

            timestamp = cachehelper.get("timestamp" rawurl);

            signature = cachehelper.get("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}×tamp={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© 2015 仟亿科技,all rights reserved.
网站地图