微信JS-SDK如何使用

         前两天要用到微信JS库的的一句话——wx.closeWindow();但是整个调用过程有点儿泪奔了。。。。

     

     虽然开发者平台上说的清清楚楚,但是使用起来就是not ok!

     一,绑定域名

           登录到微信公众平台:

            在公众号设置里面:

          

             找到功能设置,填入JS接口安全域名:

       

     二,引入JS

     

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

   

    三,通过config接口注入权限验证配置

      感觉这里的调用还是相当繁琐的,希望微信能做个安全方便的接口来调用。

 //         wx.config({
        //                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        //                appId: '<%=appId%>', // 必填,公众号的唯一标识
        //                timestamp: <%=timestamp%>, // 必填,生成签名的时间戳
        //                nonceStr: '<%=nonceStr%>', // 必填,生成签名的随机串
        //                signature: '<%=Signature%>',// 必填,签名,见附录1
        //                jsApiList: ['closeWindow'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
        //            });

    wx对象提供了很多方法调用,而这些方法的返回值可以在config里面设置,方便调试的时候观察报错信息。

   appid,timestamp,noncestr,jsApiList都是比较好填写的参数,唯一比较麻烦的是签名。

   签名步骤比较小复杂:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

    

 /// <summary>
        /// 生成签名
        /// </summary>
        /// <param name="jsapi_ticket">The jsapi_ticket.</param>
        /// <param name="noncestr">The noncestr.</param>
        /// <param name="timestamp">The timestamp.</param>
        /// <param name="url">The URL.</param>
        /// <returns>System.String.</returns>
        /// <remarks>Editor:v-liuhch CreateTime:2015/6/1 18:20:43</remarks>
        private string GetSignature()
        {

            WxAccount wa = WxAccountAdapter.Instance.LoadByCode(PubAccCode);//获取当前公众号
            WebClientBase wcb = new WebClientBase();

            //获取Access_token信息
            string strAccess_token = wcb.RequestMyWebClient(EnumSubmitMethod.Get, "", "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wa.AppID + "&secret=" + wa.AppSecret);
            access_tokenEntity at = WxAPITools.JSONUtil<access_tokenEntity>.FromJsonToObject<access_tokenEntity>(strAccess_token);

            string strJson = wcb.RequestMyWebClient(EnumSubmitMethod.Get, "", "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + at.access_token + "&type=jsapi");

            jsapi_ticket jt = WxAPITools.JSONUtil<jsapi_ticket>.FromJsonToObject<jsapi_ticket>(strJson);//转化为对象
            string url = HttpContext.Current.Request.Url.ToString();
            url = url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url;
            string tmpStr = "jsapi_ticket=" + jt.ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + url;
            return FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");

        }

        /// <summary>
        /// jsapi_ticket是公众号用于调用微信JS接口的临时票据
        /// </summary>
        /// <remarks>Editor:v-liuhch CreateTime:2015/6/1 18:25:27</remarks>
        public class jsapi_ticket
        {

            public string errcode { get; set; }
            public string errmsg { get; set; }
            public string ticket { get; set; }
            public string expires_in { get; set; }

        }

        /// <summary>
        /// Class access_tokenEntity
        /// </summary>
        /// <remarks>Editor:v-liuhch CreateTime:2015/6/1 21:08:07</remarks>
        public class access_tokenEntity
        {
            public string access_token { get; set; }
            public string expires_in { get; set; }

        }

     需要注意的是URL地址到底取的是哪一部分;获取数据的方式都是get;对所有待签名参数按照字段名的ASCII 码从小到大排序;

       如果开启debug后,返回一个config:ok就说明成功了。

            PS:确认接口签名的时候,可以使用微信提供的这个网页调试工具:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign

时间: 2024-10-06 04:07:11

微信JS-SDK如何使用的相关文章

微信 测试号 jssdk-微信测试账号如何使用微信js sdk?

问题描述 微信测试账号如何使用微信js sdk? 最近在做微信微网站开发,其中有个图片上传功能.之前用测试账号在做,没有使用js sdk,但是安卓的兼容性很不好.现在想用新的aip,js sdk来进行开发.但是测试号好像不支持jssdk 啊,公司的订阅号又没有进行认证,很多功能都无法在订阅号上实现.请问想要使用js sdk 又希望使用测试号应该如何操作. 解决方案 其实只要是支持http协议的库都可以用,道理是相同的.

微信JS SDK发布,惊爆众人

摘要: 2015年刚刚开始,微信JS SDK发布,惊爆众人,HTML5产业好事连连. JS SDK这个概念,其实微博和淘宝的开放平台很早前就有,包括手机QQ前段时间也推出了几个增强API,但都未产生很大的影 2015年刚刚开始,微信JS SDK发布,惊爆众人,HTML5产业好事连连. JS SDK这个概念,其实微博和淘宝的开放平台很早前就有,包括手机QQ前段时间也推出了几个增强API,但都未产生很大的影响.小巫之后终见大巫,这次微信开放的SDK,站在了另一个高度,web到底能有多强? HTML5

微信JS SDK Demo

原文:微信JS SDK Demo 微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-demo.html    一.JS部分 wx.ready(function () { // 1 判断当前版本是否支持指定 JS 接口,支持批量判断 document.querySelector('#checkJsApi').onclick

微信JS SDK使用权限签名算法

jsapi_ticket 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据.正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取.由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket . 参考以下文档获取access_token(有效期7200秒,开发者必须在自己的

微信JS SDK PHP Demo

微信JS-SDK PHP Demo JS接口安全域名 自定义分享接口 jsapi_ticket 分享到朋友圈 分享给朋友 分享到QQ 原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html   一.JSSDK类定义 <?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appSecret) {

微信sdk-微信js sdk获取地理位置,求大神帮忙!!!!!!!!!!!!!!

问题描述 微信js sdk获取地理位置,求大神帮忙!!!!!!!!!!!!!! 最好用web页面,js结合做出来的,求各位大神帮帮忙,都做了好几天了,卡住了没法往下做了 解决方案 解决方案二: LocationManager类与Android系统中的其他服务类类似,所有GPS定位有关的服务,对象都由该对象产生: 获取该对象通过Context的getSystemService()方法获得: LocationProvider类是GPS定位组件的表示,Android中定位信息由他提供: Locatio

微信开放JS SDK,再次给浏览器们上了一课

摘要: 2015年刚刚开始,微信JS SDK发布,惊爆众人,HTML5产业好事连连. JS SDK这个概念,其实微博和淘宝的开放平台很早前就有,包括手机QQ前段时间也推出了几个增强API,但都未产生很大的影 2015年刚刚开始,微信JS SDK发布,惊爆众人,HTML5产业好事连连. JS SDK这个概念,其实微博和淘宝的开放平台很早前就有,包括手机QQ前段时间也推出了几个增强API,但都未产生很大的影响.小巫之后终见大巫,这次微信开放的SDK,站在了另一个高度,web到底能有多强? HTML5

invalid media id-微信企业号js sdk问题

问题描述 微信企业号js sdk问题 通过微信js sdk上传图片得到的media_id用于发送消息时提示{"errcode":40007,"errmsg":"invalid media_id"},但是这个这个media_id可以通过多媒体接口下载,请问这个问题有办法解决么

HTML5的逆袭,微信开放SDK告诉你WEB能有多强

2015 年刚刚开始,微信 JS SDK 发布,惊爆众人,HTML5 产业好事连连. JS SDK 这个概念,其实微博和淘宝的开放平台很早前就有,包括手机 QQ 前段时间也推出了几个增强 API,但都未产生很大的影响.小巫之后终见大巫,这次微信开放的 SDK,站在了另一个高度,web 到底能有多强? HTML5的逆袭 其实之前微信也是有一些 JS API 的,比如分享.但这次一股脑开放了拍摄.录音.语音识别.二维码.地图.支付.分享.卡券等几十个 API,这条消息不需宣传,瞬间就占满了 HTML

微信-代公众号使用JS SDK,wx.config报invalid signature

问题描述 代公众号使用JS SDK,wx.config报invalid signature 我按照微信官方的方法,1.确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验.2.确认config中nonceStr(js中驼峰标准大写S) timestamp与用以签名中的对应noncestr timestamp一致.3.确认url是页面完整的url(请在当前页面alert(location.hre