微信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的返回值会在clientalert出来,若要查看传入的參数,能够在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-12-06 13:12:48

微信JS-SDK怎样使用的相关文章

实战微信JS SDK开发:贺卡制作与播放(1)

前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细说吧. 最近同事用CanTK开发了一个基于微信的贺卡制作APP,我虽然没有参与开发,但是提供CanTK和GameBuilder的技术支持,觉得有些东西比较有意思,写几篇博客和大家分享吧.这个贺卡APP完全开源,有需要的朋友可以随意修改和发布. CanTK(Canvas ToolKit)是一个开源的游

微信js sdk上传多张图片

微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="11111111111111111111"; $secret="11111111111111111111"; $token = S('access_token'); if (!$token) { $res = file_get_contents("https://api.weixin.qq.c

微信JS SDK开发 共享问题小结

首先,我要吐槽一下这个SDK,看了第一遍,完全不知所云,一会获取这个,一会获取那个,也没确切的告诉怎么获取. 和腾讯客服(拿钱不干事的好工作)讨教,人家不懂技术,不知道怎么解决,也没有相关技术人员对应这一块.总共费时 将近一周的时间才把这块弄懂.期间遇到的部分问题以及如何解决分享给大家,欢迎大家一起讨论并指正. 问题1:JS接口安全域名,你所有想要使用的微信接口,要在这个域名内部进行,不能在本地进行相关调试. 问题2:公众账号要求:必须是已经认证的. 问题3:配置config(PS:开启debu

微信js sdk分享开发摘记java版

绑定域名和引入js的就不说了 废话不说直接上代码 1 public void share(HttpServletRequest request) throws Exception { 2 3 StringBuffer homeUrl = request.getRequestURL(); 4 String queryString =request.getQueryString(); 5 if(StringUtils.isNotBlank(queryString)){ 6 homeUrl.appen

微信JS SDK配置授权,实现分享接口

微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑,后面看到"config:ok"的时候真的算是石头落地,瞬间感觉世界很美好.. 这篇文章是微信开发的很多前置条件,包括了服务端基于JAVA的获取和缓存全局的access_token,获取和缓存全局的jsapi_ticket,以及前端配置授权组件封装,调用分享组件封装. 配置授权思路:首先根据

微信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 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 = function () { wx.

微信JS SDK PHP Demo

一.JSSDK类定义 <?php class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicke

微信 js sdk C# 版 invalid signature 问题解决

采用Senparc.Weixin SDK 服务器端代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Senparc.Weixin.MP.CommonAPIs; using Senparc.Weixin.MP.Helpers; using Senparc

微信JS SDK Demo 官方案例

转自:http://my.oschina.net/superkangning/blog/367484 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项. 一:html代码部分 ? 1 2 3 4 5 6 7 8 9