微信的 JSSDK

闲来无事,花了几个小时研究了下 微信的 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>

  

更多的详情 在 详情

原文地址:https://www.cnblogs.com/linjilei/p/5169382.html