精华内容
下载资源
问答
  • 在要调用的Activity中的方法写上 startActivityForResult(new Intent(Shang2Activity.this, CaptureActivity.class), 100);就可以使用
  • 二维码扫码支付原理

    千次阅读 2019-09-26 18:28:29
    平常我们在购物付款时,使用手机中的微信或支付宝扫一扫即可完成支付,无需像以前携带现金等...线下所有的扫码支付都是以扫二维码开始,通过扫描二维码,我们可以看到付款页面商家的名称,所以二维码在这里承担的角...

    平常我们在购物付款时,使用手机中的微信或支付宝扫一扫即可完成支付,无需像以前携带现金等着商户找零钱。线下扫码支付大大的提高了我们付款的效率,今天就主要谈一谈扫码支付的实现流程,让我们享受快捷的同时,也了解其中的原理。

    二维码——信息的载体

    说起扫码支付,就不得不提二维码。线下所有的扫码支付都是以扫二维码开始,通过扫描二维码,我们可以看到付款页面商家的名称,所以二维码在这里承担的角色是——信息的载体,它通过黑白相间的排列组合记录信息。不止是支付,我们看到很多APP的下载链接,也是用二维码的形式记录链接地址。现在网上有很多现成的工具,输入一段内容后,即可把内容生成二维码,所以生成二维码这一步的实现流程不存在技术难题。

    选择二维码作为付款信息的载体,一方面是受收银台扫描商品一维码来识别商品,这一场景的启发,另一方面是二维码本身可存储足够大的数据信息,而且支持不同的数据格式,同时二维码有一定的容错性,部分损坏后仍可正常读取。这一切,使得二维码成为了被大众广泛使用的信息载体。

    二维码识别——APP校验及后台解析

    二维码携带的信息,我们无法通过肉眼识别,不同的支付机构在二维码中注入的信息规则不一致,需要对应的服务器根据其编码规则解析。我们每次使用扫一扫识别二维码后,都会提示“正在处理中”,意味着后台服务器正在解析这个二维码的内容,比如核对二维码携带的链接地址是否合法(像微信解析出是支付宝的链接会屏蔽)、是属于支付链接还是属于外链网址等。

    校验的规则很多,就支付链接来说,服务器校验属于自己公司的支付链接后,会获取支付链接中包含的商户信息,进而判断该商户是否存在、商户状态是否正常等,所有校验通过后,后台服务器会把商户名称返回到发起用户的手机APP上,同时告诉APP,服务器校验通过了,APP你可以调起收银台了。

    于是我们确定支付,输入支付密码,后台继续校验支付密码的正确性,正确的话支付就此完成。

    扫码支付流程的关键步骤

    从这个过程来看,要实现扫码支付的流程,最关键的是要定义允许识别哪些类型的二维码以及后台的校验逻辑。

    定义允许识别哪些类型的二维码。也就是说,当APP扫一扫,如果产品经理定义,发现二维码携带的信息是别家的网址“https://www.tina.com”,就在我们APP这边进行过滤,比如只要不是以“https://www.wx.com”开头的,不去请求服务器。所以,有些时候,明明是网址,但是解析后你看到的是一串纯文本。

    比如定义支付链接的格式为“https//qr.wx.com……”,每次检测到该链接开头的,就请求服务器去校验该支付链接的有效性。

    此外,还需要定义平台自有的解析规则,如微信识别为付款码是以13开头,微信检测到数字内容是以13开头的,会先去匹配其是否符合付款码的规则,符合的话才会进行后续的解析,如下图所示:

     

    以上说的是主扫,也就是用户扫商家;对于商家扫用户,原理是一样的,只不过用户的付款码中包含的是识别该用户的专属ID,商家通过收银系统向微信或支付宝提交订单时,把扫码枪识别出来的信息传递给微信或支付宝,他们根据这个专属ID找到对应的用户,通过代扣直接就扣款了。

    转载于:https://www.cnblogs.com/yaphetsfang/p/9253102.html

    展开全文
  • 近期遇到需求是通过微信的,扫描小程序特定的场景二维码进入核销页面,大概就是下面三个步骤(1. ;2.扫描对应的二维码;3.进入核销页面) 这种方式在真机上测试一般需要小程序发布到正式版才可以,在...

    近期遇到需求是通过微信的扫一扫,扫描小程序特定的场景二维码进入核销页面,大概就是下面三个步骤(1.扫一扫 ;2.扫描对应的二维码;3.进入核销页面)

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    这种方式在真机上测试一般需要小程序发布到正式版才可以,在开发工具中实现步骤

    1.添加编译模式,启动参数就是对应的场景二维码里的参数
    在这里插入图片描述
    2.在首页的onload中的options参数中获取对应的场景参数,拿到之后就可以进行自己的逻辑了

    展开全文
  • 二维码扫码登录是什么原理 在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更...

    二维码扫码登录是什么原理

    在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码,防止上当受骗。

    二维码,大家再熟悉不过了

    购物扫个码,吃饭扫个码,坐公交也扫个码

     

     

    在扫码的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢?

    这时候就需要了解一下二维码背后的技术和逻辑了!

    二维码最常用的场景之一就是通过手机端应用扫描PC或者WEB端的二维码,来登录同一个系统。 比如手机微信扫码登录PC端微信,手机淘宝扫码登录PC端淘宝。 那么就让我们来看一下,二维码登录是怎么操作的!

    二维码登录的本质

    二维码登录本质上也是一种登录认证方式。既然是登录认证,要做的也就两件事情!

    1. 告诉系统我是谁
    2. 向系统证明我是谁

    比如账号密码登录,账号就是告诉系统我是谁, 密码就是向系统证明我是谁; 比如手机验证码登录,手机号就是告诉系统我是谁,验证码就是向系统证明我是谁;

    那么扫码登录是怎么做到这两件事情的呢?我们一起来考虑一下

    手机端应用扫PC端二维码,手机端确认后,账号就在PC端登录成功了!这里,PC端登录的账号肯定与手机端是同一个账号。不可能手机端登录的是账号A,而扫码登录以后,PC端登录的是账号B。

    所以,第一件事情,告诉系统我是谁,是比较清楚的!

    通过扫描二维码,把手机端的账号信息传递到PC端,至于是怎么传的,我们后面再说

    第二件事情,向系统证明我是谁。扫码登录过程中,用户并没有去输入密码,也没有输入验证码,或者其他什么码。那是怎么证明的呢?

    有些同学会想到,是不是扫码过程中,把密码传到了PC端呢? 但这是不可能的。因为那样太不安全的,客户端也根本不会去存储密码。我们仔细想一下,其实手机端APP它是已经登录过的,就是说手机端是已经通过登录认证。所说只要扫码确认是这个手机且是这个账号操作的,其实就能间接证明我谁。

    认识二维码

    那么如何做确认呢?我们后面会详细说明,在这之前我们需要先认识一下二维码! 在认识二维码之前我们先看一下一维码!

     

    所谓一维码,也就是条形码,超市里的条形码--这个相信大家都非常熟悉,条形码实际上就是一串数字,它上面存储了商品的序列号。

    二维码其实与条形码类似,只不过它存储的不一定是数字,还可以是任何的字符串,你可以认为,它就是字符串的另外一种表现形式,

    在搜索引擎中搜索二维码,你可以找到很多在线生成二维码的工具网站,这些网站可以提供字符串与二维码之间相互转换的功能,比如 草料二维码网站

     

    在左边的输入框就可以输入你的内容,它可以是文本、网址,文件........。然后就可以生成代表它们的二维码

    你也可以把二维码上传,进行”解码“,然后就可以解析出二维码代表的含义

    系统认证机制

    认识了二维码,我们了解一下移动互联网下的系统认证机制。

    前面我们说过,为了安全,手机端它是不会存储你的登录密码的。 但是在日常使用过程中,我们应该会注意到,只有在你的应用下载下来后,第一次登录的时候,才需要进行一个账号密码的登录, 那之后呢 即使这个应用进程被杀掉,或者手机重启,都是不需要再次输入账号密码的,它可以自动登录。

    其实这背后就是一套基于token的认证机制,我们来看一下这套机制是怎么运行的,

     

    1. 账号密码登录时,客户端会将设备信息一起传递给服务端,
    2. 如果账号密码校验通过,服务端会把账号与设备进行一个绑定,存在一个数据结构中,这个数据结构中包含了账号ID,设备ID,设备类型等等
    const token = {
      acountid:'账号ID',
      deviceid:'登录的设备ID',
      deviceType:'设备类型,如 iso,android,pc......',
    }
    复制代码

    然后服务端会生成一个token,用它来映射数据结构,这个token其实就是一串有着特殊意义的字符串,它的意义就在于,通过它可以找到对应的账号与设备信息,

    1. 客户端得到这个token后,需要进行一个本地保存,每次访问系统API都携带上token与设备信息。
    2. 服务端就可以通过token找到与它绑定的账号与设备信息,然后把绑定的设备信息与客户端每次传来的设备信息进行比较, 如果相同,那么校验通过,返回AP接口响应数据, 如果不同,那就是校验不通过拒绝访问

    从前面这个流程,我们可以看到,客户端不会也没必要保存你的密码,相反,它是保存了token。可能有些同学会想,这个token这么重要,万一被别人知道了怎么办。实际上,知道了也没有影响, 因为设备信息是唯一的,只要你的设备信息别人不知道, 别人拿其他设备来访问,验证也是不通过的。

    可以说,客户端登录的目的,就是获得属于自己的token。

    那么在扫码登录过程中,PC端是怎么获得属于自己的token呢?不可能手机端直接把自己的token给PC端用!token只能属于某个客户端私有,其他人或者是其他客户端是用不了的。在分析这个问题之前,我们有必要先梳理一下,扫描二维码登录的一般步骤是什么样的。这可以帮助我们梳理清楚整个过程,

    扫描二维码登录的一般步骤

    大概流程

    1. 扫码前,手机端应用是已登录状态,PC端显示一个二维码,等待扫描
    2. 手机端打开应用,扫描PC端的二维码,扫描后,会提示"已扫描,请在手机端点击确认"
    3. 用户在手机端点击确认,确认后PC端登录就成功了

    可以看到,二维码在中间有三个状态, 待扫描,已扫描待确认,已确认。 那么可以想象

     

    1. 二维码的背后它一定存在一个唯一性的ID,当二维码生成时,这个ID也一起生成,并且绑定了PC端的设备信息
    2. 手机去扫描这个二维码
    3. 二维码切换为 已扫描待确认状态, 此时就会将账号信息与这个ID绑定
    4. 当手机端确认登录时,它就会生成PC端用于登录的token,并返回给PC端

    好了,到这里,基本思路就已经清晰了,接下来我们把整个过程再具体化一下

    二维码准备

    按二维码不同状态来看, 首先是等待扫描状态,用户打开PC端,切换到二维码登录界面时。

     

    1. PC端向服务端发起请求,告诉服务端,我要生成用户登录的二维码,并且把PC端设备信息也传递给服务端
    2. 服务端收到请求后,它生成二维码ID,并将二维码ID与PC端设备信息进行绑定
    3. 然后把二维码ID返回给PC端
    4. PC端收到二维码ID后,生成二维码(二维码中肯定包含了ID)
    5. 为了及时知道二维码的状态,客户端在展现二维码后,PC端不断的轮询服务端,比如每隔一秒就轮询一次,请求服务端告诉当前二维码的状态及相关信息

    二维码已经准好了,接下来就是扫描状态

    扫描状态切换

     

    1. 用户用手机去扫描PC端的二维码,通过二维码内容取到其中的二维码ID
    2. 再调用服务端API将移动端的身份信息与二维码ID一起发送给服务端
    3. 服务端接收到后,它可以将身份信息与二维码ID进行绑定,生成临时token。然后返回给手机端
    4. 因为PC端一直在轮询二维码状态,所以这时候二维码状态发生了改变,它就可以在界面上把二维码状态更新为已扫描

    那么为什么需要返回给手机端一个临时token呢?临时token与token一样,它也是一种身份凭证,不同的地方在于它只能用一次,用过就失效。

    在第三步骤中返回临时token,为的就是手机端在下一步操作时,可以用它作为凭证。以此确保扫码,登录两步操作是同一部手机端发出的,

    状态确认

    最后就是状态的确认了。

     

    1. 手机端在接收到临时token后会弹出确认登录界面,用户点击确认时,手机端携带临时token用来调用服务端的接口,告诉服务端,我已经确认
    2. 服务端收到确认后,根据二维码ID绑定的设备信息与账号信息,生成用户PC端登录的token
    3. 这时候PC端的轮询接口,它就可以得知二维码的状态已经变成了"已确认"。并且从服务端可以获取到用户登录的token
    4. 到这里,登录就成功了,后端PC端就可以用token去访问服务端的资源了

    扫码动作的基础流程都讲完了,有些细节还没有深入介绍,

    比如二维码的内容是什么?

    • 可以是二维码ID
    • 可以是包含二维码ID的一个url地址

    在扫码确认这一步,用户取消了怎么处理? 这些细节都留给大家思考

    总结

     

    我们从登陆的本质触发,探索二维码扫码登录是如何做到的

    1. 告诉系统我是谁
    2. 向系统证明我谁

    在这个过程中,我们先简单讲了两个前提知识,

    • 一个是二维码原理,
    • 一个是基于token的认证机制。

    然后我们以二维码状态为轴,分析了这背后的逻辑: 通过token认证机制与二维码状态变化来实现扫码登录.

    需要指出的是,前面的讲的登录流程,它适用于同一个系统的PC端,WEB端,移动端。

    平时我们还有另外一种场景也比较常见,那就是通过第三方应用来扫码登录,比如极客时间/掘金 都可以选择微信/QQ等扫码登录,那么这种通过第三方应用扫码登录又是什么原理呢?

    感兴趣的同学可以思考研究一下,欢迎在评论区留下你的见解。

    展开全文
  • 二维码扫码登录

    2016-10-23 15:17:00
     这几天在研究二维码扫码登录。初来乍到,还有好多东西不懂。在网上看到有人写了一些通过QRCode或者Zxing实现二维码的生成和解码。一时兴起,决定自己亲手试一试。本人是通过QRCode实现的,下面具体的说一下。 ...

    一、前言

      这几天在研究二维码的扫码登录。初来乍到,还有好多东西不懂。在网上看到有人写了一些通过QRCode或者Zxing实现二维码的生成和解码。一时兴起,决定自己亲手试一试。本人是通过QRCode实现的,下面具体的说一下。

    二、二维码原理

      基础知识参考:http://news.cnblogs.com/n/191671/

       很重要的一部分知识:二维码一共有 40 个尺寸。官方叫版本 Version。Version 1 是 21 x 21 的矩阵,Version 2 是 25 x 25 的矩阵,Version 3 是 29 的尺寸,每增加一个 version,就会增加 4 的尺寸,公式是:(V-1)*4 + 21(V是版本号) 最高 Version 40,(40-1)*4+21 = 177,所以最高是 177 x 177 的正方形。

      

    三、二维码生成和解码工具

    1.效果如下图所示。

      

    生成二维码(不含有logo)                                                   生成二维码(带有logo)

      

    对应的解码

      工具很简单,但是很实用。界面还可以美化,功能还可以加强,初心只是为了练习一下二维码的生成和解析。

    2.二维码生成和解析的核心类

    View Code

    3.具体注意的地方

    //二维码 SIZE
    private static final int CODE_IMG_SIZE = 235;
    // LOGO SIZE (为了插入图片的完整性,我们选择在最中间插入,而且长宽建议为整个二维码的1/7至1/4)
    private static final int INSERT_IMG_SIZE = CODE_IMG_SIZE/5;

       对于二维码图片大小还是不会计算,如果有人看到这里,方便的话可以告诉小弟一声。我这里的这个值(235)是通过设定好QrcodeVersion(版 本15),以及绘制图像时偏移量pixoff=2和black区域的size=3,最终生成图片后,将图片通过ps打开,然后确定图片的尺寸信息。

      还有就是中间的logo不要过大,否则会导致QRCode解析出错,但是手机扫码不一定会出错。感觉手机扫码解析比QRCode解析能力强。

    Qrcode qrcodeHandler = new Qrcode();  
    // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小  
    qrcodeHandler.setQrcodeErrorCorrect('M');  
    qrcodeHandler.setQrcodeEncodeMode('B');  
    // 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大  
    qrcodeHandler.setQrcodeVersion(15);  

      一般设置version就好了,网上好多都是7或者8,我尝试下更大的值,15的话二维码看起来很密集。

    // 设置偏移量,不设置可能导致解析出错  
    final int pixoff = 2;
    final int sz = 3;
    // 输出内容> 二维码  
    if (contentBytes.length > 0 && contentBytes.length < 800) {  
      boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);  
      for (int i = 0; i < codeOut.length; i++) {  
            for (int j = 0; j < codeOut.length; j++) {  
                  if (codeOut[j][i]) {  
                       gs.fillRect(j * sz + pixoff, i * sz + pixoff, sz, sz);  
                  }  
             }  
       }  
    }

      绘制black区域的时候要设置偏移量,要不然可能导致二维码识别出错。 black区域的大小根据实际情况来就好。

    四、二维码登录原理

    1.原理图

       按照自己的理解画的,结合上图,看一下代码吧。

    2.GetQrCodeController.java

    /**
     * @author hjzgg
     * 获取二维码图片
     */
    @Controller
    public class GetQrCodeController {
        @RequestMapping(value="/getTwoDemensionCode")
        @ResponseBody
        public String getTwoDemensionCode(HttpServletRequest request){
            String uuid = UUID.randomUUID().toString().substring(0, 8);
            String ip = "localhost";
            try {
                ip = InetAddress.getLocalHost().getHostAddress();
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
            //二维码内容
            String content = "http://" + ip + ":8080/yycc-portal/loginPage?uuid=" + uuid;
            //生成二维码
            String imgName =  uuid + "_" + (int) (new Date().getTime() / 1000) + ".png";
            String imgPath = request.getServletContext().getRealPath("/") + imgName;
            //String insertImgPath = request.getServletContext().getRealPath("/")+"img/hjz.jpg";
            TwoDimensionCode handler = new TwoDimensionCode();
            handler.encoderQRCode(content, imgPath, "png", null);
            
            //生成的图片访问地址
            String qrCodeImg = "http://" + ip + ":8080/yycc-portal/" + imgName;
            JSONObject json = new JSONObject();
            json.put("uuid", uuid);
            json.put("qrCodeImg", qrCodeImg);
            return json.toString();
        }
    }

      用户请求扫码方式登录,后台生成二维码,将uuid和二维码访问地址传给用户。

    3.LongConnectionCheckController.java

    @Controller
    public class LongConnectionCheckController {
        private static final int LONG_TIME_WAIT = 30000;//30s
        @Autowired
        private RedisTemplate<String, Object> redisTemplate;
        
        @RequestMapping(value="/longUserCheck")
        public String longUserCheck(String uuid){
            long inTime = new Date().getTime();
            Boolean bool = true;
            while (bool) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                //检测登录
                UserVo userVo = (UserVo) redisTemplate.opsForValue().get(uuid);
                System.out.println("LongConnectionCheckAction:" + userVo);
                if(userVo != null){
                    redisTemplate.delete(uuid);
                    return "forward:/loginTest?username=" + userVo.getUsername() + "&password=" + userVo.getPassword();
                }else{
                    if(new Date().getTime() - inTime > LONG_TIME_WAIT){
                        bool = false;
                        redisTemplate.delete(uuid);
                    }
                }
            }
            return "forward:/longConnectionFail";
        }
        
        @RequestMapping(value="/longConnectionFail")
        @ResponseBody
        public String longConnectionFail(){
            JSONObject json = new JSONObject();
            json.put("success", false);
            json.put("message", "长连接已断开!");
            return json.toString();
        }
    }

      用户获得uuid和二维码之后,请求后台的长连接(携带uuid),不断检测uuid是否有对应的用户信息,如果有则转到登录模块(携带登录信息)。

    4.PhoneLoginController.java

    /**
     * @author hjzgg
     *    手机登录验证
     */
    @Controller
    public class PhoneLoginController {
        
        @Autowired
        private RedisTemplate<String, Object> redisTemplate;
        
        @RequestMapping(value="/phoneLogin")
        public void phoneLogin(String uuid, String username, String password){
            UserVo user = (UserVo) redisTemplate.opsForValue().get(uuid);
            if(user == null) {
                user = new UserVo(username, password);
            }
            System.out.println(user);
            redisTemplate.opsForValue().set(uuid, user);
        }
        
        @RequestMapping(value="/loginPage")
        public String loginPage(HttpServletRequest request, String uuid){
            request.setAttribute("uuid", uuid);
            return "phone_login";
        }
    }

      用户通过手机扫码之后,在手机端输入用户信息,然后进行验证(携带uuid),后台更新uuid对应的用户信息,以便长连接可以检测到用户登录信息。

    五、源码下载

      二维码登录例子以及二维码生成解析工具源码下载:https://github.com/hjzgg/QRCodeLoginDemo

    转载于:https://www.cnblogs.com/xiaoqi5/p/5990089.html

    展开全文
  • NULL 博文链接:https://topmanopensource.iteye.com/blog/1520234
  • Android二维码扫码集成:GitHub地址 1.GitHub上面下载会很慢,可以点我上传的zxing模块来来下载,需要1点积分。 2.下载下来之后解压,在你的项目中file → new → import module 将该文件夹导入项目,并将app依赖于...
  • 以前写过一篇设置微信二维码失效时间的博客,最近又要新增微信退款的功能,于是又重新整理了一下前面的微信二维码扫码支付功能,感觉整体的实现方式都能够掌控了,于是将具体的源码拿出来分享一下。 开发之前,一定...
  • Android二维码扫码ZXing,barcodescanner和BGAQRCode-Android技术比较Android二维码扫描是一种常见的功能开发,但是技术选型不当会造成初期开发难度大、后期维护成本高。常见的Android二维码扫码解决方案很多,...
  • 作者:大古同学链接:https://juejin.cn/post/6940976355097985032二维码扫码登录是什么原理前几天看了极客时间一个二维码的视频,写的不错,这里总结下在日...
  • 基于微信网页版二维码扫码支付

    千次阅读 2017-09-25 14:58:51
    一、创建支付二维码 开发思路:使用Google的zxing来生成二维码,将图片生成base64,输出到前台显示! 1.1、用到的jar包 <!-- 生成微信二维码 --> <dependency> <groupId>jdom</...
  • 记录一下微信扫码支付。仅仅是支付 <!-- 微信sdk支付 --> <dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> ...
  • 前几天看了极客时间一个二维码的视频[1],写的不错,这里...在扫码的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢? 这时
  • 前言 最近因为工作原因对接工商银行微信聚合支付...附:聚合支付接口,二维码扫码支付接口 2、准备相关的参数,通用参数为: appid:工商银行appid mer_id:工商银行商户账号,商户线下档案编号,特约商户12位,...
  • 微信二维码扫码开发(java)

    千次阅读 2017-12-29 12:14:08
    微信扫码开发,只要你在官网上对应它文档一步一步的来,你最终会找到突破口。此链接为微信官方提供的API链接:点击打开链接  如图所示楼主选择的是扫码支付,点进去,你就会看到它的要求,有模式一和模式二两...
  • 扫码的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢? 这时候就需要了解一下二维码背后的技术和逻辑了! 二维码最常用的...
  • 功能主要应用于线下推广统计、地推人员考核下载数量、二维码统计关注度、广告水牌扫码统计、公交站台关注统计、地铁站台扫码统计、实物产品贴纸关注统计、Xinstall推广二维码、Xinstall扫码统计等场景;使用Xinstall...
  • 本文授权转载自:大古同学,https://juejin.cn/post/6940976355097985032在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解...
  • 以微信网页版为例,学习一下二维码登陆的原理。
  • 扫码的过程中,大家可能会有疑问:这二维码安全吗?会不会泄漏我的个人信息?更深度的用户还会考虑:我的系统是不是也可以搞一个二维码来推广呢? 这时候就需要了解一下二维码背后的技术和逻辑了!
  • 作者 |ask_the_sky来源 |https://juejin.cn/post/6940976355097985032前几天看了一个二维码的视频,写的不错,这里总结下。在日常生活中...
  • 前几天看了极客时间一个二维码的视频,写的不错,这里总结下在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。...
  • HttpClient工具类的简单使用 生成二维码服务 spring mvc控制层 页面控制层 前言 此篇仅供自己参考,你们看不懂的,不要浪费时间 此篇会讲解,微信二维码的生成,以及检测支付状态,支付日志 二维码介绍 ...
  • TCPIP远程网络电子健康码扫码设备|二维码扫码门禁机HX-QR86L-IP是一款铝合金材质、带液晶显示屏,一机两用,即可做门禁读头使用,也可以做电子健康码数据采集使用。可支持静态、手机动态二维码识别、支持电子健康码...
  • 支付宝PC(二维码扫码)支付(Java开发)完整版

    万次阅读 多人点赞 2019-04-17 16:38:41
    3:生成支付宝密钥、公钥,需要用到支付宝密钥生成工具密钥生成工具下载链接,密钥用于签名使用 4:电脑网站支付结果异步通知(关于支付结果异步通知后续会专门写一个博客,需要重点注意) 注意:请先详细查看官方...
  • 干货 | 史上最全的支付宝二维码扫码优化技术方案兔子酱 2018-06-04 22:23:24 浏览1537 评论1算法 配置 测试摘要: ​​小蚂蚁说: 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,401
精华内容 6,560
关键字:

二维码扫码工具