第一步:首先配置加载官方JSSDK类,并绑定域名
<?php require_once "./js/jssdk.php"; require_once "./Application/Common/Conf/config.php"; $jssdk = new JSSDK(C('wx_appID'), C('wx_appsecret')); //改为自己的appid和appsecript,网络部重置appsecript后需要修改此配置 $jssdk = new JSSDK("appid", "appsecript"); //改为自己的appid和appsecript $signPackage = $jssdk->GetSignPackage(); ?>第二步:引进js文件
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>在需要调用JS接口的页面引入如下JS文件,(支持https):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 ,否则无法在iOS9.0以上系统中成功使用JSSDK
第三步:通过config接口注入权限验证配置
wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 });第四步:通过ready接口处理成功验证(php文件函数代码)
public function smshsave()//扫码审核签到 { $data['studentId']=input('xuehao'); $data['worktime']=input('worktime'); $data['admin']=session('username'); $sjs=input('num'); if(session('sjs')!=$sjs||session('sjs')==null){ session ('sjs', $sjs ); $data['date']=date("Y-m-d H:i:s"); $data['status']="审核通过"; $list=db("sign") ->insert($data); if($list){ $this->success('签到成功','index/gw/smsh'); }else{ $this->error("签到失败"); $this->redirect('index/gw/smsh'); } }else{ $this->error('签到失败','index/gw/smsh'); } } // config信息验证后会执行smshsave方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在smshsave函数中。html页面的代码如下:
<?php if(session('role')=='部门管理员'){ echo '<button type="button" class="btn btn-rr" style="color:#FFF; width:150px; height:45px;" onclick="scan()">扫码审核</button>';} ?> wx.scanQRCode({ needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果 window.location.href ="smshsave.html?"+result; } });水平有限,如有错误,多多指正