闲来无事,花了几个小时研究了下 微信的 JSSDK。

将学习中所用到的代码都复制到这儿,以后查看的时候方便点.


PHP

$AppID = "";    //APPID
$AppSecret = ""; //APPSECRET
$token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$AppID&secret=$AppSecret";
$token_content = file_get_contents( $token_url );
// token 次数有限 需要缓存
$token = "" ; //取得上面 获得的 token $jsapi_url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$tokenK&type=jsapi";
$jsapi_content = file_get_contents( $jsapi_url );
// 需要缓存
$url = ""; //调用 JSSDK 的 URL
$noncestr=""; //随机生成的 16位数,JS里也会用到
$jsapi_ticket = ""; //上面获得的ticket
$timestamp = time();
$string1 = "jsapi_ticket=$jsapi_ticket&noncestr=$noncestr&timestamp=$timestamp&url=$url";
//拼接字符串
$signature = sha1($string1); // JS的签名

  


JS

<html>
<head>
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript" src="/themes/default/wap/js/zepto.js"></script>
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<script>
var wxConfig = {
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '<{$AppID}>', // 必填,公众号的唯一标识
timestamp: <{$timestamp}>, // 必填,生成签名的时间戳
nonceStr: '<{$noncestr}>', // 必填,生成签名的随机串
signature: '<{$signature}>',// 必填,签名,见附录1
jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','chooseImage','startRecord','scanQRCode','getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
                //http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html#.E9.99.84.E5.BD.952-.E6.89.80.E6.9C.89JS.E6.8E.A5.E5.8F.A3.E5.88.97.E8.A1.A8
};
wx.config(wxConfig);
</script>
</head>
<body>
<button id="share">分享到朋友圈</button>
<button id="share2">分享给朋友</button>
<button id="choose">选择图片</button>
<button id="record">录音录音</button>
<button id="QRcode">扫一扫</button>
<button id="where">我在哪</button>
</body>
</html>
<script>
wx.ready(function(){
$("#share").tap(function(){
wx.onMenuShareTimeline({
title: '酱油酱油', // 分享标题
link: 'http://xxxx.com', // 分享链接
imgUrl: '', // 分享图标
success: function () {
alert("分享成功!");
},
cancel: function () {
alert("分享失败?");
}
});
});
$("#share2").tap(function(){
wx.onMenuShareAppMessage({
title: '酱油酱油', // 分享标题
link: 'http://xxxx.com', // 分享链接
imgUrl: '', // 分享图标
success: function () {
alert("分享成功!");
},
cancel: function () {
alert("分享失败?");
}
});
});
$("#reload").tap(function(){
location.reload();
});
$("#choose").tap(function(){
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
});
});
$("#record").tap(function(){
wx.startRecord({
cancel: function () {
alert('用户拒绝授权录音');
}
});
});
$("#QRcode").tap(function(){
alert("kaishi")
wx.scanQRCode({
needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果 }
});
});
$("#where").tap(function(){
alert("fff")
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; // 位置精度
var str = "纬度为"+latitude;
str += ";经度为"+longitude;
alert(str);
}
});
});
});
</script>

  

更多的详情 在 详情

微信的 JSSDK的更多相关文章

  1. 微信企业号 JS-SDK:上传图片

    微信的JS-SDK提供了微信客户端相关的功能,如:拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫等微信特有的能力,为微信用户提供更优质的网页体验.这里将会介绍如何通过调用JS ...

  2. Angularjs+ThinkPHP3.2.3集成微信分享JS-SDK实践

    先来看看微信分享效果: 在没有集成微信分享js-sdk前是这样的:没有摘要,缩略图任意抓取正文图片   在集成微信分享js-sdk后是这样的:标题,摘要,缩略图自定义   一.下载微信SDK开发包 下 ...

  3. 关于微信中JS-SDK的接口验证过程详细说明

    最近在做微信的企业服务号,刚开始通过个人的测试平台进行开发,使用了自定义菜单,自定义菜单包含两个功能:1.扫一扫,通过扫描我们账单的二维码,绑定账户和账单的关系:2.打开我们系统的账单查询页面,查询账 ...

  4. ThinkPHP3.2.3集成微信分享JS-SDK实践

    先来看看微信分享效果:在没有集成微信分享js-sdk前是这样的:没有摘要,缩略图任意抓取正文图片 在集成微信分享js-sdk后是这样的:标题,摘要,缩略图自定义 一.下载微信SDK开发包下载地址:ht ...

  5. 微信:JSSDK开发

    根据微信开发文档步骤如下: 1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. JS接口安全域名设置 mi.com(前面不用带www/http,域名必须备案过) 2.引 ...

  6. 微信企业号-JS-SDK图像接口

    使用JS-SDK需要进行四步  主要是步骤二和步骤三,步骤二需要配置,步骤三具体使用相关接口,这里以使用图像接口为例 php页面代码主要用来完成步骤二,也就是配置接口 public function ...

  7. 微信开发jssdk入门

    一个项目需要在微信里获得当前位置,于是就开始了我的微信开发之旅... 微信JSSDK说明文档http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9 ...

  8. 用c#开发微信 (10) JS-SDK 基本用法- 分享接口“发送到朋友”

    微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包.通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享. ...

  9. 微信企业号 jsSDK wx.config报invalid signature错误,导致api接口无法使用

    最近在做公司定制化的时候发现一个问题,使用微信的语音API的时候微信报错,错误信息为:the permission value is offline verifying 但是诡异的是:同样的代码在我们 ...

随机推荐

  1. Ubuntu Command-Line: Enable Unlimited Scrolling in the Terminal

    At times when using the terminal, the output from a command can be so long, you simply can’t scroll ...

  2. 关于设置border的小技巧

    可以在需要的时候,在某个元素下面放一个长或宽为1px,或者你需要的border宽度的 div ,再在这个div 上设置border.按需要调整这个div的位置.

  3. SqlServer性能优化(一)

    一:数据存储的方式: 1.数据文件:.mdf或.ndf 2.日志文件:.ldf 二:事务日志的工作步骤: 1.数据修改由应用程序发出(在缓冲区进行缓存) 2.数据页位于缓存区缓冲中,或者读入缓冲区缓存 ...

  4. iOS-Xcode7 网络连接

    Xcode7 网络无法连接问题 1.The resource could not be loaded because the App Transport Security policy require ...

  5. js动态添加onload、onresize、onscroll事件(另类方法)

    js动态添加onload.onresize.onscroll事件(另类方法)   window 的 onload.onresize.onscroll 事件,跟其他的事件不一样,它不能用 attachE ...

  6. UVa 二叉树重建(先序+中序求后序)

    题意是给出先序和中序,求出后序. 先序遍历先访问根结点,通过根结点可以在中序中把序列分为左子树部分和右子树部分,我建了一个栈,因为后序遍历最后访问根结点,所以把每次访问的根结点放入栈中.因为后序遍历先 ...

  7. hmt5初学小技巧

    图片替换技术: 1.利用行高 .hanggao{ width: 154px; height: 30px; background-image: url(../img/logo_db.png); over ...

  8. Oracle表空间不足

    Oracle临时表空间不足 -- 用户的缺省表空间.临时表空间 select t.username, t.default_tablespace, t.temporary_tablespace from ...

  9. [java] java解析txt文件

    /** * 读取txt文件内容封装为map返回 * @param filePath * @return */ public static String readTxt(String filePath) ...

  10. Install Qt creator

    download qt for linux yum install dialog move download qt file(qt-opensource-linux-x64-5.6.0.run) fr ...