关闭

基于SAE服务器的微信JsSDK测试

标签: 微信JssdkSAE
782人阅读 评论(0) 收藏 举报
分类:

基于SAE服务器的微信JsSDK测试

申请微信测试号

此处使用微信测试号作为测试载体, 因为微信订阅号在未认证之前有很多微信接口都没有权限, 测试号的接口权限相对较多, 可以用于测试, 可以在如下网址注册微信测试号。微信测试号网址

申请SAE(新浪服务器)账号

新浪云申请地址, 新浪项目可以使用gitsvn 做版本控制, 根据个人喜好选择。对于SAE做微信公众号开发教程, 可以参考方倍工作室教程, 不做累述。

下载官方JsSDK文档

JsSDK官方文档, 官方示例代码, 下载的示例代码中有php, node, java各种版本, 可以选择自己喜欢的语言, 我这里使用php为例。

JsSDK使用步骤

  1. 绑定域名
    在测试号的 JS接口安全域名 下绑定域名,如下图所示:
    这里写图片描述
    注意:这里的域名是一级域名, 而非你的项目访问地址, 比如我的项目地址为http://judithhuang.sinaapp.com, 那么我此处的域名配置应该为 sinaapp.com , 可以参考百度经验里面的这个说明

  2. 引入js
    可以直接使用这个网上的资源 http://res.wx.qq.com/open/js/jweixin-1.0.0.js, 也可以下载到本地使用。

  3. 通过config接口注入权限验证配置
    下面的php代码加入到index.php即html页面文件的头部

    <?php
    //这里的jssdk.php是官方网站示例代码的源码, import进来就好
    require_once "jssdk.php";
    // 这里的配置好自己微信测试号的appId和appsecret
    $jssdk = new JSSDK("你自己的appID", "你自己的appsecret");
    $signPackage = $jssdk->GetSignPackage();
    ?>

    下面的 js 加入到index.php页面的js片段

    /*
    * 注意:
    * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
    * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
    * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
    *
    * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
    * 邮箱地址:weixin-open@qq.com
    * 邮件主题:【微信JS-SDK反馈】具体问题
    * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
    */
    wx.config({
    debug: true,
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: '<?php echo $signPackage["timestamp"];?>',
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    url: '<?php echo $signPackage["url"];?>',
    jsApiList: [
      'hideOptionMenu'// 所有要调用的 API 都要加到这个列表中
    ]
    });
    
    wx.ready(function () {
      //wx.hideOptionMenu();// 在这里调用 API
    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; // 位置精度
            // 这里是拿到用户的当前位置, 也可以调用其他接口, 具体参考官方文档
        }
    });
    });

结束语
1. 在这个测试的过程中, 踩到的坑就是 js安全接口域名 的配置, 一直报config: invalid url 的错误。
2. 下面的参数一定要在后台获取, 切记不可使用前台请求去获取这些参数。
这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13407次
    • 积分:227
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类