精华内容
下载资源
问答
  • 二维码扫码自动填写
    千次阅读
    2021-07-29 20:40:48

    首先,二维码实际是一个url地址,手机扫码后,会根据二维码上的黑和白(黑色色块代表1,白色色块代表0)解析url地址。

    业务流程

    收款方出示二维码—付款方扫码—支付成功

    功能测试

    二维码
    1. 二维码可以正确识别
    2. 扫码后进入支付阶段
    支付
    1. 输入金额还是固定金额(个人收款支付金额可以自己填写,商户生成的订单扫码金额固定)
      用到等价类划分法和边界值分析法
      1)正常金额
      最小:0
      最大:单笔最大、单日最大金额
      2)异常
      非数字、负数、0、小数点超过2位、单笔最大、单日最大
    2. 选择支付方式
      1)正常支付
      可以支持信用卡、储蓄卡、余额、第三方支付、好友代付
      2)异常
      未绑定支付方式,给出提示
      3)功能交互
      叠加优惠券、折扣等,金额正确
    3. 支付密码
      若设置了免密支付,付款成功;若未设免密支付
      1)正常
      可以支持的方式:账号密码、指纹识别、人脸识别、动态获取验证码、小额免密等
      2)异常
      输入多次密码超过次数上限,进行冻结;多次识别不成功多次,进行冻结;验证码不正确
    4. 支付状态
      1)支付成功,显示已成功支付,并有语音提示
      2)支付失败,进行提示

    性能测试

    1. 用户操作的响应时间
    2. 多个用户同时在使用扫码操作,系统性能

    安全性测试

    1. 二维码是否有时间和次数的限制
    2. 如果使用了安全套接层,测试加密是否正确,加密前后信息是否完整

    兼容性测试

    1. 不同手机型号、系统

    界面测试

    1. 界面是否清晰
    2. 没有错别字
    3. 出示二维码时自动调整屏幕亮度
    更多相关内容
  • 绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 设置与开发->公众号设置->功能设置->js安全域名

     

     一、准备工作

    1. 绑定域名

    先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

    设置与开发->公众号设置->功能设置->js安全域名

    2.引入js文件

    在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:http://res2.wx.qq.com/open/js/jweixin-1.6.0.js (支持https)。

    3.通过config接口注入权限验证配置

    所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用

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

    4.通过ready接口处理成功验证

    wx.ready(function(){
      // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    });

    5.通过error接口处理失败验证

    wx.error(function(res){
      // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
    });

    6.公众号基本配置

    配置服务器地址和令牌(Token),获取APPID和AppSecret

    二、完整DEMO

    sample.php

    <?php
    require_once("functions.php");
    $jssdk=new JSSDK('YOURAPPID','YOURAPPpSECRET)');
    $signPackage = $jssdk->GetSignPackage();
    ?>
    <!DOCTYPE html>
    <html lang="en">     
    <meta  charset="utf-8" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
    <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
    	  *{
    		  margin: 0;
    		  padding:0;
    	  }
    	.btn{
    		    background-color: #4CAF50; /* Green */
    		    border: none;
    		    color: white;
    		    /* padding: 15px 32px; */
    		    text-align: center;
    		    text-decoration: none;
    		    display: inline-block;
    		    font-size: 16px;
    			border-radius: 12px;
    			position: relative;
    			top:  0%;
    			width: 200px;
    			height: 50px;
    			font-size: 20px;
    
    			
    	}
    	.div1{
    		             width:100%;
    		             height: 100%;
    		             background: #ededed;
    		             position: absolute;
    					 text-align:center;
    	}
    	.div-form{
    		width: 100%;
    		height: 50%;
    		align: center;
    	}
      </style>
      <link rel="stylesheet" href="https://unpkg.com/layui@2.6.8/dist/css/layui.css">
    </head>
    <body>
    <div class="div1">
     <div class="div-form">
      <div class="layui-form-item" style="padding-top: 50px;">
        <label class="layui-form-label">姓名</label>
        <div class="layui-input-block" style="width: 200px;">
          <input id="input1" type="text" name="title" required  lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
        </div>
      </div>
      <div class="layui-form-item" style="padding-top: 50px;">
        <label class="layui-form-label">工号</label>
        <div class="layui-input-block" style="width: 200px;">
          <input id="input2" type="text" name="title" required  lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
        </div>
      </div>
      </div>
    <button onclick="btn()" class="btn" id="btn1">点击扫一扫</button>
    </div>
    </body>
    <script src="jquery.min.js"></script>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    
    <script>
    	
      /*
       * 注意:
       * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
       * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
       * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
       *
       * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
       * 邮箱地址:weixin-open@qq.com
       * 邮件主题:【微信JS-SDK反馈】具体问题
       * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
       */
      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: [ 'scanQRCode']
      });
      function btn(){
    document.getElementById("btn1").innerHtml='重新扫描';
      wx.ready(function () {
       
                wx.scanQRCode({
                    needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
                    scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
                    success: function (res) {
    				var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
                    var obj = JSON.parse(result);
    					document.getElementById("input1").value=obj.name;
    					document.getElementById("input2").value=obj.id;
                    }
      })
    })
    };
    </script>
    </html>
    

    functions.php

    <?php
    define("appID", "YOURAPPID");
    define("appsecret", "YOURAPPSECRET");
    
    class JSSDK {
        private $appId;
        private $appSecret;
    
        public function __construct($appId, $appSecret) {
            $this->appId = $appId;
            $this->appSecret = $appSecret;
        }
    
        public function getSignPackage() {
            $jsapiTicket =$this->getJsApiTicket();
            $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
            $timestamp = time();
            $nonceStr = $this->createNonceStr();
    
            $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
    
            $signature = sha1($string);
    
            $signPackage = array(
                "appId"     => $this->appId,
                "nonceStr"  => $nonceStr,
                "timestamp" => $timestamp,
                "url"       => $url,
                "signature" => $signature,
                "rawString" => $string
            );
            return $signPackage;
        }
    
        private function createNonceStr($length = 16) {
            $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            $str = "";
            for ($i = 0; $i < $length; $i++) {
                $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
            }
            return $str;
        }
    
        private function getJsApiTicket() {
            $data = json_decode(file_get_contents("wp-token/jsapi_ticket.json"));
            if ($data->expire_time < time()) {
                $accessToken = $this->getAccessToken();
                $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
                $res = json_decode($this->httpGet($url));
                $ticket = $res->ticket;
                if ($ticket) {
                    $data->expire_time = time() + 7000;
                    $data->jsapi_ticket = $ticket;
                    $fp = fopen("wp-token/jsapi_ticket.json", "w");
                    fwrite($fp, json_encode($data));
                    fclose($fp);
                }
            } else {
                $ticket = $data->jsapi_ticket;
            }
    
            return $ticket;
        }
    
        public function getAccessToken() {
            $data = json_decode(file_get_contents("wp-token/access_token.json"));
            if ($data->expire_time < time()) {
                $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
                $res = json_decode($this->httpGet($url));
                $access_token = $res->access_token;
                if ($access_token) {
                    $data->expire_time = time() + 7000;
                    $data->access_token = $access_token;
                    $fp = fopen("wp-token/access_token.json", "w");
                    fwrite($fp, json_encode($data));
                    fclose($fp);
                }
            } else {
                $access_token = $data->access_token;
            }
            return $access_token;
        }
    
        public function httpGet($url) {
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_TIMEOUT, 500);
            curl_setopt($curl, CURLOPT_URL, $url);
    
            $res = curl_exec($curl);
            curl_close($curl);
    
            return $res;
        }
    }
    ?>

    三、结果演示

    1.示例二维码

     2.在微信浏览器访问你的地址+sample.php点击扫一扫,扫描上方示例二维码,效果如下:

    四、注意事项

    TIPS:第一次打开可能会提示无法找到json文件,在根目录下建立wp-token文件夹用于存储access_token.json和jsapi_ticket.json文件。

    1.官方文档地址:JS-SDK说明文档

    2.官方DEMO体验及下载地址:DEMO页面和示例代码

    3.常见错误及解决办法:常见错误及解决方法

     

     

    展开全文
  • 在小程序后台进入开发管理 进入开发设置 往下拉,有个扫码,点详情 填写小程序的链接 测试链接,加上参数 设置测试链接打开那个环境的小程序 随便找个生二维码网页,生成二维码,用微信扫一扫......

    在小程序后台进入开发管理
    在这里插入图片描述
    进入开发设置
    在这里插入图片描述
    往下拉,有个扫码,点详情
    在这里插入图片描述

    填写小程序的链接
    在这里插入图片描述
    测试链接,加上参数
    在这里插入图片描述
    设置测试链接打开那个环境的小程序
    在这里插入图片描述

    随便找个生二维码网页,生成二维码,用微信扫一扫
    在这里插入图片描述
    小程序页面

    onLoad() {
    	// 获取链接生成二维码上的参数,完美。
    	let curPage = getCurrentPages();
    	let route = curPage[curPage.length - 1].route; //获取当前页面的路由
    	let params = curPage[curPage.length - 1].options; //获取当前页面参数,
    	
    	console.log('路由----------',route) // 路由--- pages/index/index
    	console.log('参数--------',params) // 参数---{q:"https%3A%2F%2F{{线上地址}}%2Fdevice%2F%3Fsession_id%3D1gah94vl2ouvj87h49o6bb1mju"}
    	console.log(params.session_id) // undefined
    	// ??? 什么鬼 这个q哪里来的还有怎么有点编码问题
    
    	// 这下能拿到了吧
    	console.log(params.q.split('session_id=')[1]); // undefined
    	// ??? 还不行, 不会吧 不会吧。
    	console.log(params.q.split('session_id%')[1]); // 3D1gah94vl2ouvj87h49o6bb1mju
    	// 啊这,真的要用%号去切割
    	// 但是,即使如此还是用不了,不管参数怎么变,拿到都是3D1gah94vl2ouvj87h49o6bb1mju,不明白为什么会出现这个问题。
    }
    

    最后,我发现了这个
    在这里插入图片描述
    官方文档,点击跳转
    在这里插入图片描述
    啊这,果然文档还是要看的

    	// 终于能用了,解决问题
    	const id = decodeURIComponent(query.q).split('session_id=')[1];
        $store.dispatch('setSessionId', id);
    

    还有,小程序开发者工具是能模拟扫码打开的
    在这里插入图片描述
    添加方式选择解析二维码
    在这里插入图片描述
    上传二维码图片,就可以模拟扫码二维码进入小程序
    在这里插入图片描述
    还会自动添加上二维码带的启动参数
    在这里插入图片描述

    展开全文
  • 目前小程序推出了自己的识别,小程序,这个圆形的看起来比二维码好看。本文总结微信小程序的获取小程序二维码并生成二维码图片的接口开发。主要内容摘抄自微信小程序的API文档,java接口开发是自己总结...

    目前小程序推出了自己的识别码,小程序码,这个圆形的码看起来比二维码好看。本文总结微信小程序的获取小程序码和二维码并生成二维码图片的接口开发。主要内容摘抄自微信小程序的API文档,java接口开发是自己总结开发。

    微信小程序API文档获取二维码

    一、简介

    通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面。目前微信支持两种二维码,小程序码(左),小程序二维码(右),如下所示:
    这里写图片描述
    二、获取小程序码

    目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口。
    1 不带参数有限个数小程序码接口

    适用于需要的码数量较少的业务场景

    接口地址:

    https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

       

    注:获取accesstoken的方法跟微信公众获取accesstoken方法一致,不过小程序获取accesstoken需要小程序的appid和appsercet。登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID 。
    这里写图片描述
    获取微信小程序的 AppID文章地址:小程序简易教程
    (1)POST 参数说明
    参数     类型     默认值     说明
    path     String         不能为空,最大长度 128 字节
    width     Int     430     二维码的宽度
    auto_color     Bool     false     自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
    line_color     Object     {“r”:”0”,”g”:”0”,”b”:”0”}     auth_color 为 false 时生效,使用 rgb 设置颜色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}

    注意:通过该接口生成的小程序码,永久有效,但数量有效,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。
    (2)请求接口测试

    使用http请求插件postman或者RESTClient请求测试。
    这里写图片描述
    请求测试结果返回一个小程序码图片,与微信公众平台生成二维码不同,小程序码直接返回文件流,不是微信公众平台的url和ticket。
    (3)java接口开发

    注:此接口是基于Spring RestTemplate进行http请求,进行http请求有很多方法和工具类,可自行百度或参考下面的参考文章。接口只是提供一个解决方法的思路。

        public Map getminiqrQr(String accessToken) {
            RestTemplate rest = new RestTemplate();
            InputStream inputStream = null;
            OutputStream outputStream = null;
            try {
                String url = "https://api.weixin.qq.com/wxa/getwxacode?access_token="+accessToken;
                Map<String,Object> param = new HashMap<>();
                param.put("page", "pages/index/index");
                param.put("width", 430);
                param.put("auto_color", false);
                Map<String,Object> line_color = new HashMap<>();
                line_color.put("r", 0);
                line_color.put("g", 0);
                line_color.put("b", 0);
                param.put("line_color", line_color);
                LOG.info("调用生成微信URL接口传参:" + param);
                MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
                HttpEntity requestEntity = new HttpEntity(param, headers);
                ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
                LOG.info("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody());
                byte[] result = entity.getBody();
                LOG.info(Base64.encodeBase64String(result));
                inputStream = new ByteArrayInputStream(result);

                File file = new File("C:/Users/wangqiulin/Desktop/1.png");
                if (!file.exists()){
                    file.createNewFile();
                }
                outputStream = new FileOutputStream(file);
                int len = 0;
                byte[] buf = new byte[1024];
                while ((len = inputStream.read(buf, 0, 1024)) != -1) {
                    outputStream.write(buf, 0, len);
                }
                outputStream.flush();
            } catch (Exception e) {
                LOG.error("调用小程序生成微信永久小程序码URL接口异常",e);
            } finally {
                if(inputStream != null){
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(outputStream != null){
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return null;    
        }

       

    说明:accessToken的获取方法就不多说,因为小程序二维码很坑爹的返回文件流,导致我们必须对流进行处理转换成图片保存到本地,这样还有一个严重的后果就是无法将二维码保存到数据库中,每次想获取二维码必须请求接口,此接口最多生成不超过100000个,请大家谨慎使用。
    2 带参数无限个数小程序码接口

    适用于需要的码数量极多,或仅临时使用的业务场景

    接口地址:

    https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

       

    获取accessToken的方法跟接口1一致。
    (1)POST 参数说明
    参数     类型     默认值     说明
    scene     String         最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&’()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
    page     String         必须是已经发布的小程序页面,例如 “pages/index/index” ,如果不填写这个字段,默认跳主页面
    width     Int     430     二维码的宽度
    auto_color     Bool     false     自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
    line_color     Object     {“r”:”0”,”g”:”0”,”b”:”0”}     auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {“r”:”xxx”,”g”:”xxx”,”b”:”xxx”}


    注意:通过该接口生成的小程序码,永久有效,数量暂无限制。用户扫描该码进入小程序后,开发者需在对应页面获取的码中 scene 字段的值,再做处理逻辑。使用如下代码可以获取到二维码中的 scene 字段的值。调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 urlencode。同时需要注意,此接口的page参数中不能带任何参数,参数都在scene 参数中处理,切记!!!

    // 这是首页的 js
    Page({
      onLoad: function(options) {
        // options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
        var scene = decodeURIComponent(options.scene)
      }
    })

     

    (2)请求接口测试

    这里写图片描述
    (3)java接口开发

        public Map getminiqrQr(String sceneStr, String accessToken) {
            RestTemplate rest = new RestTemplate();
            InputStream inputStream = null;
            OutputStream outputStream = null;
            try {
                String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken;
                Map<String,Object> param = new HashMap<>();
                param.put("scene", sceneStr);
                param.put("page", "pages/index/index");
                param.put("width", 430);
                param.put("auto_color", false);
                Map<String,Object> line_color = new HashMap<>();
                line_color.put("r", 0);
                line_color.put("g", 0);
                line_color.put("b", 0);
                param.put("line_color", line_color);
                LOG.info("调用生成微信URL接口传参:" + param);
                MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
                HttpEntity requestEntity = new HttpEntity(param, headers);
                ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
                LOG.info("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody());
                byte[] result = entity.getBody();
                LOG.info(Base64.encodeBase64String(result));
                inputStream = new ByteArrayInputStream(result);

                File file = new File("C:/Users/wangqiulin/Desktop/1.png");
                if (!file.exists()){
                    file.createNewFile();
                }
                outputStream = new FileOutputStream(file);
                int len = 0;
                byte[] buf = new byte[1024];
                while ((len = inputStream.read(buf, 0, 1024)) != -1) {
                    outputStream.write(buf, 0, len);
                }
                outputStream.flush();
            } catch (Exception e) {
                LOG.error("调用小程序生成微信永久小程序码URL接口异常",e);
            } finally {
                if(inputStream != null){
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(outputStream != null){
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return null;    
        }

     

    3 获取小程序二维码

    适用于需要的码数量较少的业务场景

    接口地址:

    https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

       

    (1)POST 参数说明
    参数     类型     默认值     说明
    path     String         不能为空,最大长度 128 字节
    width     Int     430     二维码的宽度


    注意:通过该接口生成的小程序二维码,永久有效,数量限制见文末说明,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。

    示例:

    {"path": "pages/index?query=1", "width": 430}

       

    注:pages/index 需要在 app.json 的 pages 中定义
    (2)请求接口测试

    这里写图片描述
    (3)java接口开发

        public Map getminiqrQr(String accessToken) {
            RestTemplate rest = new RestTemplate();
            InputStream inputStream = null;
            OutputStream outputStream = null;
            try {
                String url = "https://api.weixin.qq.com/wxaapp/createwxaqrcode?access_token="+accessToken;
                Map<String,Object> param = new HashMap<>();
                param.put("page", "pages/index/index");
                param.put("width", 430);
                LOG.info("调用生成微信URL接口传参:" + param);
                MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
                HttpEntity requestEntity = new HttpEntity(param, headers);
                ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
                LOG.info("调用小程序生成微信永久二维码URL接口返回结果:" + entity.getBody());
                byte[] result = entity.getBody();
                LOG.info(Base64.encodeBase64String(result));
                inputStream = new ByteArrayInputStream(result);

                File file = new File("C:/Users/wangqiulin/Desktop/1.png");
                if (!file.exists()){
                    file.createNewFile();
                }
                outputStream = new FileOutputStream(file);
                int len = 0;
                byte[] buf = new byte[1024];
                while ((len = inputStream.read(buf, 0, 1024)) != -1) {
                    outputStream.write(buf, 0, len);
                }
                outputStream.flush();
            } catch (Exception e) {
                LOG.error("调用小程序生成微信永久二维码URL接口异常",e);
            } finally {
                if(inputStream != null){
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(outputStream != null){
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return null;    
        }

     

    三、说明

    1:通过该接口,仅能生成已发布的小程序的二维码。
    2:可以在开发者工具预览时生成开发版的带参二维码。
    3:接口1加上接口2,总共生成的码数量限制为100,000,请谨慎调用。
    4 : POST 参数需要转成 json 字符串,不支持 form 表单提交。
    5 : auto_color line_color 参数仅对小程序码生效。
     

    展开全文
  • 扫描二维码后可以自动跳转到网页

    万次阅读 2021-12-09 16:36:27
    现在我们的生活中随处可见二维码的身影,扫码付款,扫描进入小程序,扫码关注等等。二维码可以存储各种信息,主要包括网址、名片、文本信息、特定代码等。
  • 扫码过程中我们需要打开摄像头,如何由手机或者电脑识别二维码。所以我们要实现两个关键的步骤:调用摄像头、识别二维码。 这两个操作分别对应了两个模块,它们就是opencv和pyzbar,其中opencv是英特尔的计算机...
  • 提供两个发卡平台(可以修改成其他的) 先zc自己的发卡平台,填写地址,软件自动获取分类,商品,获取微信二维码扫码付款,返回购买的卡密
  • 目录条形的生成解决方案生成结果如下工具包下载代码如下二维码码的生成解决方案生成结果如下工具包下载代码如下订单自动生成的制作效果如下源代码下载 条形的生成 解决方案 使用jbarcode-0.2.8.jar工具类,在...
  • 一款非常适合管理微信的活,可创建微信活,活管理,每日扫描统计及域名管理,将设置好的活图片下载下来,用于对外统一宣传 ... 是这个码扫到100后会根据活类型来显示。比如循环就是到100归零循环
  • 如何实现扫码填报信息

    千次阅读 2020-02-15 10:18:30
    本文介绍一种纯电子化的填报方案,可实现手机扫码填报、微信填报,不仅更方便高效,而且人员之间不接触,减少传染风险。 2、原理机制 一套完整的信息填报系统包含2个部分:前端信息填报、后端信息处理。本方...
  • 准备 使用微信公众号平台测试号测试 ...接口配置信息:填写url和token url作用1: url为你的接口地址,当你配置的...还是这个接口,当你扫码关注公众号后,它会重新回调该url接口,只是这一次它发的是 post请求 ,并携带xm
  • 2.微信群码有效期14天,过期必须将线下海报替换,否则群码失效,用户无法扫码加入微信群; 3.使用“草料二维码平台”的活码功能,把生成的活码加入海报,将微信群码作为活码的内容,用户扫描海报上的活码-打开实时的...
  • 扫码登录基本流程

    千次阅读 2022-06-22 19:41:49
    摘要:本篇笔记主要记录了扫码登录的基本流程,是学习扫码登录的基本知识
  • C#实现微信扫码支付

    千次阅读 2019-07-16 15:56:17
    第四步:获取微信扫码支付二维码 前台 <!-- payment 支付方式选择 --> <!-- 微信支付 --> 微信支付 ; top: -36px; left: 130px;"> ;height:298px;"/> ; top:0; left:130px; z-index:2;background:...
  • 哪位大佬知道怎么做的吗
  • 第四步:入驻成功 在填写完成并点击 确定加入 后,开发者即完成入驻,在入驻成功提醒页面的倒计时结束后,页面会自动跳转至 管理中心。 二、创建应用 1.创建应用 开发者使用支付宝账号登录 开放平台控制台(需实名...
  • 微信公众号开发(1)-实现关注公众号自动登录网站微信公众号初识一、[微信官方文档](https://developers.weixin.qq.com/doc/)**二、公众号申请流程三、公众号管理页面四、必备开发者工具的使用五、细读开发者文档六...
  • nodejs二维码扫描—可辨别是哪个用户扫描背景实现概述开发环境相关依赖微信网页授权第一步:用户同意授权,获取code第二步:通过code换取网页授权access_token第三步...该文章主要是为了实现在没有扫码器的情况下,...
  • 此时在通过浏览器访问,会得到一个JSON字符串,其中src就是拼接的URL,code是响应状态。安装并搭建Flask框架,然后制作二维码生成接口,详细代码如下所示,其中OSS使用阿里云相关值即可。将图片转换为二进制流,...
  • _name__ == '__main__': app_id= "填写自己的"notify_url= "填写自己的"return_url= "填写自己的"merchant_private_key_path= "app_private_2048.txt"alipay_public_key_path= "alipay_public_2048.txt"ali=...
  • 简单实现微信扫码支付开发

    万次阅读 2018-08-21 18:50:33
    2、修改扫码支付按钮跳转到二维码页面 3、创建NativeServlet 1、 在dopost方法中定义微信官方要求xml格式数据字符串 String xml = " < xml > " + " < appid > " + PayConfig.appid + " appid > " + ...
  • java集成微信扫码登录

    千次阅读 2021-09-06 14:47:11
    java集成微信扫码登录 具体流程可以看微信官网的扫码登录文档 地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&...
  • 扫码功能支持扫二维码、条形码两种,在图书管理、电商管理、物流派件等场景应用广泛。下面我们就通过实际的案例,来切身感受一下扫码功能在应用系统中的有效作用。 如何生成二维码和条形码 为了让用户更加...
  • 支付宝扫码支付实现

    千次阅读 2022-02-10 22:20:44
    前言:在一次项目开发中我的业务模块涉及微信扫码支付和支付宝扫码支付。在查阅现有技术性文章后发现,许多文章并不能走通,于是我便阅读了官方文档,形成了这篇总结性文章,希望对读者有所帮助。 ...
  • 发卡平台扫码-易语言

    2021-06-14 09:04:08
    调用了 精易模块 自己论坛下载,提供两个发卡平台(可以修改成其他的) 先zc自己的发卡平台,填写地址,软件自动获取分类,商品,获取微信二维码扫码付款,返回购买的卡密
  • java实现微信扫码登录功能

    千次阅读 2020-11-18 16:07:57
    java实现微信扫码登录功能java部分 此功能基于微信开放平台,实现此功能的前提是需要有微信开放平台帐号,并认证成功,需要300¥。 需要有公网可以访问的域名和IP。 认证流程: 百度百科. java部分 授权流程图 ...
  • 通过微信客户端扫码登录即可登录。  登录完即可获取到一个测试公众账号的信息。主要有appId和appsecret两个参数,这将唯一标示一个公众号,并且需要将他们作为参数获取用户的信息。 2)、关注公众号  ...
  • WEB端JQuery接入 扫码枪,填入表单内容 常用场景: 参加活动时 身份查询,活动资格查询;
  • ​ 这里微信扫码登录,没有采用轮询、没有采用WebSocket推送,而是由: 扫码后重定向 -> 微信服务器 -> 我方统一认证服务器 -> 指定业务服务器 -> 返回code前端处理结果执行登录。 ​ 因为微信PC网站...
  • 微信扫码登陆或注册设计流程

    千次阅读 2021-12-09 16:01:27
    一、整体流程 1、点击微信登录按钮,跳转微信扫码页面 2、用户扫描登录码,匹配用户信息 3、未匹配到用户信息,做注册操作 4、匹配到用户信息,做登录操作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,084
精华内容 1,233
热门标签
关键字:

二维码扫码自动填写