• 微信开发jssdk入门


    一个项目需要在微信里获得当前位置,于是就开始了我的微信开发之旅...

    微信JSSDK说明文档
    http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

    JSSDK使用步骤
    步骤一:绑定域名
    绑定域名要求是一级域名.但是使用的时候可以二级域名下的网页仍然可以使用该接口.

    步骤二:引入JS文件
    http://res.wx.qq.com/open/js/jweixin-1.0.0.js
    如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixin-1.0.0.js

    步骤三:通过config接口注入权限验证配置
    配置这个会比较麻烦,最后讲.
    wx.config({
      debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
      appId: '', // 必填,公众号的唯一标识
      timestamp: , // 必填,生成签名的时间戳
      nonceStr: '', // 必填,生成签名的随机串
      signature: '',// 必填,签名,见附录1
      jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });

    步骤四:通过ready接口处理成功验证
    wx.ready(function(){

      // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

    });

    步骤五:通过error接口处理失败验证

    wx.error(function(res){

      // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

    });

    例如:获取地理位置接口

    wx.ready(function(){

      wx.getLocation({
        type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
        success: function (res) {
        var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        var speed = res.speed; // 速度,以米/每秒计
        var accuracy = res.accuracy; // 位置精度
        }
      });

    });


    具体的还是看官方文档清楚些.

    关于步骤三的Config说明:
    var wxConfigJson = {
      debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
      appId: 'wx821bb7356e99a3a7', // 必填,公众号的唯一标识
      timestamp: 1446184841, // 必填,生成签名的时间戳
      nonceStr: '80262bec-7cd2-4b03-b366-97fab6e91cdd', // 必填,生成签名的随机串
      signature: 'fd017d631d63cef32d5f25ea276911bcb0a29782', // 必填,签名,见附录1
      jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    };
    @Html.Raw(new WeChatJS_SDK_Config().GetConfig()) 生成上面的wxConfigJson

    下面是我写的WeChatJS_SDK_Config类,见笑了.

     1 public class WeChatJS_SDK_Config
     2 {
     3     private string _appId;
     4     private int _timestamp ;// 必填,生成签名的时间戳
     5     private string _nonceStr ;// 必填,生成签名的随机串
     6     private string _url;
     7     private string _sign;
     8 
     9     public WeChatJS_SDK_Config()
    10     {
    11         _appId = AccountConfig._appID;
    12         _timestamp = Core.GetTimestamp();
    13         _nonceStr = Guid.NewGuid().ToString();
    14         _url = HttpContext.Current.Request.Url.ToString();
    15         _sign =
    16             String.Format("jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}", Jsapi_Ticket.GetJsapi_Ticket(),
    17                 _nonceStr, _timestamp, _url).Md5Entry("sha1").ToLower();
    18     }
    19 
    20     /* Url方法的区别
    21      *@Html.Raw("var originalString='"+HttpContext.Current.Request.Url.OriginalString+"';")
    22     @Html.Raw("var rawUrl='"+HttpContext.Current.Request.RawUrl+"';")
    23     @Html.Raw("var url='"+HttpContext.Current.Request.Url+"';")
    24    
    25     var originalString = 'http://xb.hnjdkj.cn:80/index/home';
    26     var rawUrl = '/index/home';
    27     var url = 'http://xb.hnjdkj.cn/index/home';*@
    28      */
    29     public string GetConfig()
    30     {
    31         var res = string.Format(
    32             "var wxConfigJson = {{debug: {0}, appId: '{1}', timestamp: {2},nonceStr: '{3}',signature: '{4}',jsApiList: ['getLocation'] }};", Kits.AppSettings("WeChatDebug"), _appId, _timestamp, _nonceStr, _sign);
    33         return res;
    34     }
    35 
    36 }
    欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果感觉对您有用,请点击推荐。您的支持,是我的动力!
  • 相关阅读:
    Error: unable to load xmlsec-openssl library
    count(1)、count(*)与count(列名)的执行区别
    Linux下的压缩zip,解压缩unzip命令详解及实例
    linux centos 如何查看操作系统版本信息
    These dependencies were not found: *!!vue-style-loader!css-loader?
    Git如何永久删除某个重要文件文件或文件夹 (包括历史记录) 强制
    LDAP的filter查询详解
    详谈mysqldump数据导出的问题
    GO -- 遍历删除 数组 slice
    mjml强大&&灵活的邮件模版引擎
  • 原文地址:https://www.cnblogs.com/ICE_Inspire/p/5001434.html
Copyright © 2020-2023  润新知