微信公众号扫一扫功能实现

前阵做微信公众号开发扫一扫功能,碰到一些坑记录下,废话少说直接上代码。

/*
请求后台接口获取微信配置responseData,入参含appId、applicationId、url
url 为当前页面url 注意必须如:https://gzh.yunfuw.cn/account/add?     code=061wrY680jrpQE1o2y980E03780wrY6l&state=cloud_payment
*/

wx.config({
  debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId:‘‘, // 必填,公众号的唯一标识
  timestamp: responseData.timestamp, // 必填,生成签名的时间戳
  nonceStr: responseData.noncestr, // 必填,生成签名的随机串
  signature: responseData.sign, // 必填,签名,见附录1
  jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

wx.ready(function () {
  wx.scanQRCode({
    needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
    scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
    success: function (res) {
      setTimeout(() => {
        // do something
        var result = res.resultStr.indexOf(",") > -1 ?
                             res.resultStr.split(",")[1] :
                                 res.resultStr;
      }, 2000);
    }
  });
});

遇到的坑

  1. 要把服务器IP,从微信公众号后台,添加到IP白名单中。否则微信授权失败,无法调用微信扫一扫功能
  2. 在SPA(单页面应用)中,跳转到含有扫一扫功能的页面时,不能用push 方法去跳转,要用window.location.href去跳转页面。否则跳转到的页面url不会含code,导致微信授权失败,无法调用微信扫一扫功能。
  3. 扫一扫成功回调success里面要添加setTimeout ,否无法获取到返回结果
  4. 扫一扫成功回调success中的响应结果res ,在不用手机里面返回结果可能不同,需要做处理下返回结果

    res.resultStr.indexOf(",") > -1 ? res.resultStr.split(",")[1] : res.resultStr;

原文地址:https://www.cnblogs.com/wbbyouzi/p/12294776.html

时间: 2024-10-10 12:29:24

微信公众号扫一扫功能实现的相关文章

微信公众号文章增加评论功能

开通微信认证的公众号可进入微信发布后台,进行评论申请,在微信后台出现评论管理市即可进行评论.默认发布文章是没有评论功能的.另外公众号运营者可以选择精选评论,公众帐号文章只显示被运营者放入精选的评论. 目前公众号的开通评论功能还在内测阶段,只开放给以媒体类型申请的公众号,个人或企业暂时还没有.

豆约翰博客备份专家新增微信公众号文章批量下载功能

目前微信火得一塌糊涂,豆约翰博客备份专家也来凑凑热闹. 自媒体的兴起,使得一些各个领域的专家在微信中开通了公众号,我们大家可以选择自己感兴趣的进行订阅. 微信公众号会定期的向订阅者推送一些高质量的文章(当然也包括一些广告). 下面我们就来看一下如何利用豆约翰博客备份专家来批量下载微信公众号文章. 要批量下载微信公众号文章,首先我们必须要知道公众号ID. 首先打开搜狗微信搜索:http://weixin.sogou.com/ 在搜索框中录入微信公众号名称,比如豆约翰关注的一个公众号[哥伦布没来过]

微信公众号多客服功能的实现--向指定客服发送信息

微信本身的文档有点(hen)坑,看半天看不明白,所以多客服这块我们用飞哥的easyWechat的三方来做. 1. 下载安装easyWechat,或者拷贝一份vendor文件也行. 2. 新建一个文件夹, 引入 composer 入口文件: include __DIR__ . '/vendor/autoload.php';3.加载要用的文件: use EasyWeChat\Foundation\Application;use EasyWeChat\Message\Text; 4.配置参数: $op

【JavaWeb】(10)微信公众号开发进阶

因为普通开发会有很多的权限限制,所以我们能够申请一个測试账号来开发体验一下微信公众号的其它接口功能. 申请測试号我就不介绍了.非常easy.申请成功后,还须要配置Url地址和token,和我们普通公众账号填写的一致就能够了. 1. 图文消息 这里因为我们图文消息用到很多上一篇TextMessage中的一些属性.所以我们须要重构一下我们的代码,创建基类BaseMessage: public class BaseMessage { private String ToUserName; private

微信公众号开发之js-sdk开发

公司最近项目需要使用微信进行分享,对微信的jssdk研究了下,由于研究过程并不顺利,遇到的坑比较多,所以特意将研究结果记录下来,供大家批评和参考! 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 微信的jssdk是面向网页开发者提供的基于微信内的网页开发工具包,提供了诸如分享朋友圈,分享微信好友,分享QQ好友 and so on,具体支持的文档参考上述官方文档; 在进行微信jssdk开发之前,首先你得拥

用java开发微信公众号:接收和被动回复普通消息(三)

上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复.说到普通消息,那么什么是微信公众号所定义的普通消息呢,微信开发者文档中提到的接收的普通消息包括如下几类: 1.文本消息2.图片消息3.语音消息4.视频消息5.小视频消息6.地理位置消息7.链接消息(被动回复的消息) 被动回复的普通消息包括: 1.回复文本消息2.回复图片消息3.回复语音消息4.回复视频消息5.回复音乐消息6.回复图文消息 其实接收消息和被动回复消息这两个动作是不分家的,这本来就是一个交互场景,一

利用微信公众号实现zabbix告警

之前觉得没必要写这个,这两天有同学问到zabbix关于微信告警的相关问题,于是昨天就注册了一个微信公众号,当做学习交流一下: 首先:我们要明白我们创建微信公众号发送消息到底需要哪些参数,这样我们再创建时候注意生成就可以了,需要的有如下几个参数: 1.通讯用户:touser 2.用于生成token的:corpid,secret 3.用于ID 开始操作:企业号注册连接:https://qy.weixin.qq.com/cgi-bin/loginpage 1.点击注册,然后选择团队主从即可: 2.创建

微信公众号开发教程详细完整第1篇

| 版权声明:本文为博主原创文章,未经博主允许不得转载. 从2014.12月份左右接触微信公众号开发,短短续续也有了一年多在这期间做了不知道多少个公众号,各种奇葩的功能都有涉猎.从一无所知的小白,到对整个微信公众号生态的理解,不知道经历了多少个日日夜夜,鬼知道我经历了什么.此次教程不谈什么微信公众号O2O(基本死光了)也不谈什么分答,大字(基本被微信封的差不多了),这次我们只是对微信公众号的二次开发者们,希望对你们有所帮助,也希望有更多的朋友一起探讨,讨论. 下面说一下这个教程的前言:首先此次教

兴趣部落打通微信公众号,两大平台联手优化兴趣社交体验

手Q兴趣部落推出有一段时间了,这项被视为手Q提升用户粘度,强化移动社交属性的策略被证明是明智之举,如今,在手Q 5.42亿月活跃用户的支持下,兴趣部落的人气也扶摇直上,上线短短一年时间来便涌现出许多百万.千万级部落,不仅为手Q的用户提供了海量的优质内容,更重要的是,它标志着基于手Q平台推进泛社交战略的成功. 兴趣部落的成功也让业界开始将其与微信公众号进行对比,因为兴趣部落中的兴趣号与微信公众号有异曲同工之妙,最初业界认为这是手Q和微信在进行暗战.不过,最近手Q兴趣部落已经开始和微信公众号打通,说

总想自己动动手系列·3·如何让微信公众号和外网服务交互之通过TOKEN验证(准备篇·1)

一.准备工作 (1)准备一个微信公众号(对私的订阅号或者对公的服务号). (2)准备一台部署了web应用,并且已经发布出去的Linux服务器(需要说明的是:微信公众号强烈建议使用80端口,使用其他自定义端口貌似根本不通,后面会有说明). 先科普说明一下: 1.微信公众号的注册分为2种类型,这个很简单,按照官方注册流程按部就班地填写基本不会出现问题. 2.刚注册的订阅号和公众号是"非认证"状态的(本人注册的是对私的订阅号,目前处于非认证状态). 3.微信官方将认证审核流程托管到了第三方机