频道栏目
首页 > 微信学院 > 微信公众平台开发 > 正文

微信公众平台使用JSSDK网页调起扫码并获取扫码数据(PHP实现)

2017-12-06 10:58:11      个评论    来源:slm311的专栏  
收藏   我要投稿

微信公众平台使用JSSDK网页调起扫码并获取扫码数据

初学者,部分css样式在网上扒下来的,功能实现了,代码很糙,非常糙,望海涵,也希望大神多指导

得到你的APPID与AppSecret 获取到access_token与ticket 配置wx.config 调用扫码 二维码与条形码处理 获取返回值 关于苹果端网页扫码调起的问题处理 最后


废话不多说直接上代码:

<!--?php
require_once "jssdk.php";
$jssdk = new JSSDK("你的ADPPID", "你的AppSecret");
$signPackage = $jssdk--->GetSignPackage();
//sample.php,获取你的APPID与AppSecret传递到JSSDK处理
?>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><!-- 适应屏幕缩放等乱七八糟的-->
<meta name="format-detection" content="telephone=no, email=no">
<title>这是标题啊</title>
<script src="vp.js" charset="utf-8"></script>
<link rel="stylesheet" href="swiper.min.css" media="screen" charset="utf-8">
<link rel="stylesheet" href="queryExp.css" media="screen" charset="utf-8">
 
 
        <header class="page-title">
         
        <h1 class="title">这是名字啊</h1>
    </header>
    <section class="form-main">
        <!--<input id="waybillNoId" type="button" value="请输入要查询的单号" onclick="window.location.href='history.html?from=query'">-->
        <input id="waybillNoId" type="button" value="请输入要查询的单号" onclick="">
        <i id="query" class="scan"></i>  <!-- 这里是点击那个扫码的图片-->
    </section>
       <script src="jweixin-1.0.0.js"></script>
        <script type="text/javascript" src="jquery.js"></script> 
        <script type="text/javascript">
<!-- 这里写wx.config和wx.scanQRCode-->
      wx.config({//配置wx.config
     //debug: true,//调试输出需要的话就拿出来
      appId: '<!--?php echo $signPackage["appId"];?-->',
      timestamp: <!--?php echo $signPackage["timestamp"];?-->,
      nonceStr: '<!--?php echo $signPackage["nonceStr"];?-->',
      signature: '<!--?php echo $signPackage["signature"];?-->',
      jsApiList: [
      //要调用的接口全部写在这
        'checkJsApi',
        'onMenuShareTimeline',
        'onMenuShareAppMessage',
        'onMenuShareQQ',
        'onMenuShareWeibo',
        'hideMenuItems',
        'showMenuItems',
        'hideAllNonBaseMenuItem',
        'showAllNonBaseMenuItem',
        'translateVoice',
        'startRecord',
        'stopRecord',
        'onRecordEnd',
        'playVoice',
        'pauseVoice',
        'stopVoice',
        'uploadVoice',
        'downloadVoice',
        'chooseImage',
        'previewImage',
        'uploadImage',
        'downloadImage',
        'getNetworkType',
        'openLocation',
        'getLocation',
        'hideOptionMenu',
        'showOptionMenu',
        'closeWindow',
        'scanQRCode',
        'chooseWXPay',
        'openProductSpecificView',
        'addCard',
        'chooseCard',
        'openCard'
      ]
 
  });
 wx.ready(function () {
    document.querySelector('#query').onclick = function () {//调用扫码事件返回扫码值
    wx.scanQRCode({
      needResult: 1,
      desc: 'scanQRCode desc',
      success: function (res) {
      alert(res.resultStr)//扫码数据在这看
        }         
      }
    });
  };   
});
 
       </script>

实际操作发现当扫描二维码的时候没有什么问题,但是扫码扫到条码时会出现问题,下面贴上处理方法:

if(res.resultStr.indexOf(',') > 0){
 //条形码时返回的格式类似为【code128,123456789】      
     var dealserialNumber=res.resultStr.split(',')[1];          
     dealserialNumber = dealserialNumber.replace(/[^a-z\d]/ig, "");//处理条形码扫描的字符
     location.href='接收结果页面='+dealserialNumber;//扫描结果传递到的处理页面
else{
//二维码时
location.href='接收结果页面='+res.resultStr;//扫描结果传递到的处理页面
}

关于苹果端扫码,查了下往上,说什么网络请求之类的话,要怎么怎么处理,我处理起来比较粗暴,所有的js文件本地化,不知道是不是可行的,但是测试没发现什么大的问题,不知道这样处理是不是正确。

上一篇:微信公众号开发步骤(缩减版)
下一篇:微信公众号创建二维码ticket的2种方式讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站