精华内容
下载资源
问答
  • android中怎样实现二维码扫描获取客户的手机号?用的是4.0以上的版本,需要获得哪些用户扫描二维码,并把它传入数据库,有没有办法获得用户在线扫描的手机号码
  • 火车票二维码获取身份证

    千次阅读 2012-12-22 00:09:41
    直接用手机软件扫描火车票二维码,得到一串数字即可看到中间包含的身份证。虽然左下角隐去了四位数字,我们还是可以把它还原出来,哈哈!
    直接用手机软件扫描火车票二维码,得到一串数字即可看到中间包含的身份证号。虽然左下角隐去了四位数字,我们还是可以把它还原出来,哈哈!
    
    展开全文
  • 二维码签到系统”工作原理是:场外人员手持手机客户端扫描车厢内二维码图,系统自动获取二维码图对应的车厢信息、扫描时间、员工姓名、员工手机号、员工位置经度、维度、现场图片、现场语音等基本信息,并把这些...
  • 微信小程序手机号注册获取验证码+验证判断   扫描二维码,进入首页,找到“小程序演示”,效果类->手机号码注册效果,点击进入即可。  

    微信小程序手机号注册获取验证码+验证判断

     

    微信小程序手机号注册获取验证码+验证判断

    扫描二维码,进入首页,找到“小程序演示”,效果类->手机号码注册效果,点击进入即可。

     

    林羽凡小程序

    展开全文
  • 最近被要求制作一个微信小程序用作为工厂的入厂登记,功能大概就是访客来厂前需要扫描二维码进入小程序,授权微信个人资料,以获取昵称以及绑定的手机号码,小程序内有拍照识别来访车牌功能,以此就需要用到标题中...

    最近被要求制作一个微信小程序用作为工厂的入厂登记,功能大概就是访客来厂前需要扫描二维码进入小程序,授权微信个人资料,以获取昵称以及绑定的手机号码,小程序内有拍照识别来访车牌号功能,以此就需要用到标题中的三个功能,而现在写下笔记记录一下

    1 制作进入小程序二维码

    1.1 大致流程

    制作进入小程序二维码,查看官方文档,发现可以有三个API获取小程序二维码,除了数量的限制与否,并没细究它们的区别,所以最终使用的是 getWXACodeUnlimit 这个API接口
    查看文档发现,它是一个使用 POST 方法请求https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN 获取二维码,其中:

    • URL 中的 ACCESS_TOKEN 需要另外自行获取
    • 可传入的参数有:
      • scene:用户扫描该码进入小程序/小游戏后,可以获取到二维码中的 scene 值,再做处理逻辑,scene 的参数值需要进行 encodeURIComponent
      • page:跳转页面,必须是小程序已经发布的页面,如 pages/index/index,默认是首页
      • width:数值是 Number,表示二维码的宽度,默认为 430px
      • 还有一些感觉不常用的就不列出来了,需要的可转到官方文档

    其中小程序获取 scene 的值,有些餐厅点餐,座位上会有特定的二维码,扫码后得到特定的座位号从而服务员得知送餐位置,应该就是依靠这个功能实现的。

    Page({
      onLoad (query) {
        // scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
        const scene = decodeURIComponent(query.scene)
      }
    })
    

    1.2 获取 ACCESS_TOKEN

    获取 ACCESS_TOKEN 接口调用凭证,是通过 GET 方法请求 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET,其中URL 中的 appid 以及 secret 都可以到小程序控制后台中获取,使用浏览器即可获取。

    1.3 保存二维码图片

    这个 POST 请求我是使用Java 进行请求的,并转为图片,具体源码:

    package top.seiei.accessxcx.util
    
    import java.io.BufferedReader;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.List;
    import java.util.Map;
    
    public class HttpRequest {
    	/**
         * 向指定 URL 发送POST方法的请求
         * @param url 发送请求的 URL
         * @param param 请求参数
         * @return 所代表远程资源的响应结果
         */
         public static String sendPost(String url, String param) {
            PrintWriter out = null;
            InputStream in = null;
            FileOutputStream fw = null;
            String result = "";
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                conn.setRequestProperty("content-type","application/json");
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                /* 获取URLConnection对象对应的输出流 */
                out = new PrintWriter(conn.getOutputStream());
                // 中文有乱码的需要将PrintWriter改为如下
                //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8")
                // 发送请求参数
                out.print(param);
                // flush输出流的缓冲
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应
                in = conn.getInputStream();
                fw = new FileOutputStream("F:\\Desert.jpg");
    	        byte[] buf = new byte[1024];
    	        int ln = 0;
    	        while ((ln = in.read(buf)) != -1) {
    	        	fw.write(buf, 0, ln);
    	        }
            } catch (Exception e) {
                System.out.println("发送 POST 请求出现异常!"+e);
                e.printStackTrace();
            }
            //使用finally块来关闭输出流、输入流
            finally {
                try {
                    if(out!=null){
                        out.close();
                    }
                    if(in!=null){
                        in.close();
                    }
                    if(fw!=null){
                        fw.close();
                    }
                }
                catch(IOException ex){
                    ex.printStackTrace();
                }
            }
            System.out.println("post推送结果:"+result);
            return result;	
         }
    
    	public void main(String[] args) throws Exception {
    		String access_token = "xxxx";
    		String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token;
    		String param = "{ \"scene\":\"1254066020\"}";
    		HttpRequest.sendPost(url, param);
    	}
    }
    

    2 调用腾讯OCR识别车牌

    2.1 大致流程

    识别车牌号这边我是调用了腾讯OCR 车牌号识别 这个功能,看官方文档,发现它也是一个 POST 请求,它大致有两种方式申请,一是直接上传图片文件,而是上传图片 URL,由于使用的是微信小程序中的 wx.uploadFile api,并不太确认上传的具体数据内容,所以我这里一开始选择的是上传图片给后台服务器,再返回图片URL给腾讯OCR识别,获取结果。

    2.2 制作 authorization 权限签名

    在请求车牌识别时,需要在请求头中设置 authorization,在 官方文档 中,已经有示例演示如何获取 authorization,我这边使用的是 Java 示例获取,只需申请账号获取 主要的 appidsecretIdsecretKey 即可。

    package top.seiei.accessxcx.util
    
    import java.io.BufferedReader;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.List;
    import java.util.Map;
    
    public class HttpRequest {
    	/**
         * 向指定 URL 发送POST方法的请求
         * @param url 发送请求的 URL
         * @param param 请求参数
         * @return 所代表远程资源的响应结果
         */
         public static String sendPost(String url, String param) {
            PrintWriter out = null;
            BufferedReader in = null;
            String result = "";
           String authorization = "xxxxx";
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("host", "recognition.image.myqcloud.com");
                conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                conn.setRequestProperty("content-type","application/json");
                conn.setRequestProperty("Authorization", authorization);
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                /* 获取URLConnection对象对应的输出流 */
                out = new PrintWriter(conn.getOutputStream());
                //2.中文有乱码的需要将PrintWriter改为如下
                //out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8")
                // 发送请求参数
                out.print(param);
                // flush输出流的缓冲
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送 POST 请求出现异常!"+e);
                e.printStackTrace();
            }
            //使用finally块来关闭输出流、输入流
            finally{
                try{
                    if(out!=null){
                        out.close();
                    }
                    if(in!=null){
                        in.close();
                    }
                }
                catch(IOException ex){
                    ex.printStackTrace();
                }
            }
            System.out.println("post推送结果:"+result);
            return result;
         }
    
    	public void main(String[] args) throws Exception {
    		String appid = "xxxx";
    		String imgurl = "https://www.etscn.com.cn:40443/oa/microapp/20180927102519.jpg"
    		String url = "http://recognition.image.myqcloud.com/ocr/plate";
    		String param = "{ \"appid\":\"" + appid + "\", \"url\":\"" + imgurl + "\"}";;
    		HttpRequest.sendPost(url, param);
    	}
    }
    

    3 获取用户资料

    3.1 大致流程

    我这里需要获取用户信息有微信昵称和手机号,查看文档发现这两个东西是需要分开获取,分开请求用户授权的,也就是说用户信息并不包括其绑定的手机号码,手机号码需要另外获取,而且还不能在小程序中直接调用API弹出弹窗进行请求授权,要使用独特的按钮让用户点击触发弹窗事件,而且最后还需要解码获取具体数据。

    3.2 获取用户信息

    查看文档,获取用户信息需要使用 <button open-type="getUserInfo"></button> 这个组件按钮让用户点击,而不能使用直接调用 wx.authorize({scope: "scope.userInfo"}) 这个接口来触发弹窗让用户授权。

    点击按钮之后,可以在其绑定的事件中以形如 e.detail.userInfo 的形式获取得到一个包含昵称,位置,图像等信息的数据,

    与此同时通过调用 wx.getSetting 这个接口,它的成功回调函数,可以获取到 authSetting 这个 用户授权结果 的键值模式,得到用户的授权后,此时可由形如 res.authSetting['scope.userInfo'] 是否返回 true 来确认是否授权成功。

    授权之后就无需次次让用户点击按钮获取用户信息了,可以直接调用 wx.getUserInfo 接口,它的成功回调函数来获取用户信息,此时就可以成功获取到了。

    3.3 获取用户绑定手机号

    获取用户绑定的手机号,查看官方文档,发现需要 session_keyivencryptData 这三个数据,其中:

    • session_key:查看文档(《wx.login》《code2Session》),通过在 app.jsonLauch 生命周期中使用 wx.login,它成功回调返回一个名叫 code 的值,再向 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 网页发起 GET 请求,从而获取用户的唯一标识(openid) 及本次登录的 会话密钥(session_key
    • iv 以及 encryptData 这两个数据则需要定义一个形如 <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号码</button> 的组件,让用户点击授权之后,在成功回调函数中便可得到这两个数值

    获取以上数值后,通过解码便可得到对应的手机号,这里我使用的是后台Java进行解码,以下是对应测试代码:

    import org.apache.commons.codec.binary.Base64;
    import org.bouncycastle.jce.provider.BouncyCastleProvider;
    import javax.crypto.*;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;
    import java.security.*;
    
    public class DecodeWXxcx {
    	public static void main(String[] args) {
            String session_key = "XXX";
            String iv = "XXX";
            String encryptData = "XXX";
            String decrypt = decrypt(session_key, iv, encryptData);
            System.out.println(decrypt);
        }
    
        public static String decrypt(String session_key, String iv, String encryptData) {
            String decryptString = "";
            init();
            byte[] sessionKeyByte = Base64.decodeBase64(session_key);
            byte[] ivByte = Base64.decodeBase64(iv);
            byte[] encryptDataByte = Base64.decodeBase64(encryptData);
    
            try {
                Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
                Key key = new SecretKeySpec(sessionKeyByte, "AES");
                AlgorithmParameters algorithmParameters = AlgorithmParameters.getInstance("AES");
                algorithmParameters.init(new IvParameterSpec(ivByte));
                cipher.init(Cipher.DECRYPT_MODE, key, algorithmParameters);
                byte[] bytes = cipher.doFinal(encryptDataByte);
                decryptString = new String(bytes);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return decryptString;
        }
    
        private static boolean hasInited = false;
    
        public static void init() {
            if (hasInited) {
                return;
            }
            Security.addProvider(new BouncyCastleProvider());
            hasInited = true;
        }
    }
    

    引入的依赖有:

    <dependency> 
    	<groupId>org.bouncycastle</groupId>
    	<artifactId>bcprov-jdk15on</artifactId>
    	<version>1.55</version>
    </dependency>
    <dependency>
    	<groupId>commons-codec</groupId>
    	<artifactId>commons-codec</artifactId>
    	<version>1.10</version>
    </dependency>
    
    展开全文
  • 1、思路 扫描二维码给对应手机发送短信;后期支持短信交互,支持回复短信自动生成测试账号(以... 2、实现方式 2.1 扫二维码发送短信 客户只需扫描二维码,输入任何手机号码,就可获取测试短信,比较直观。(扫描...

    1、思路

        扫描二维码给对应手机发送短信;后期支持短信交互,支持回复短信自动生成测试账号(以用户填写的手机号为账号)与密码(随机生成6位密码)。

        目的:将二维码放到名片、宣传彩页、产品手册等,营销方式比较新颖,方便客户随时测试,提高用户的粘连度,提高用户体验。

    2、实现方式

    2.1 扫二维码发送短信

    image

        客户只需扫描二维码,输入任何手机号码,就可获取测试短信,比较直观。(扫描关注我们)

    2.2 实现效果图

    IMG_8320

    3、应用延伸-营销客户自动归类

    3.1 应用范围扩展

    Ø 不同业务员具有不同的营销二维码

    Ø 客户扫描二维码会自动归类到该业务员名下

    Ø 建立规则库,自动归类客户

    Ø 未来对客户也可提供雷同的营销手段,要在功能上要细化、优化

    3.2 对腾信集团业务员服务流程

    RVZURV8JQUEL[)3P6NOWTJ5

    3.3 对外服务业务员服务流程

    3.3.1 以腾信平台为基础提供对外服务

        以腾信成熟的自有CRM管理系统为原型进行扩展,提供公司管理、业务人员管理等功能,分配固定营销通道。其功能如下:

    clip_image002

    3.3.2 以集成方式提供服务

        以技术服务方式给公司客户提供服务,主要提供短信发送接口、以二维码为基础的短信推送机制。

    4、营销接口界面原型

    4.1 扫描二维码首页

    image

    4.2 手机接收界面

    image

    4.3 测试短信列表

    image

    4.4 一键注册

    image

    5、营销CRM界面原型

        为业务人员的提供一种的营销方式,适合各行业展会

        业务人员整体操作流程如下:

    `WZ8DIM$$MIMN5JAW{JS0~A

      • 步骤一:生成对应业务人员的营销二维码;
      • 步骤二:发布二维码到名片、网站、产品、手机等多种渠道;
      • 步骤三:客户扫描营销二维码,直接跳转到营销WAP网站http://markert.sms1086.com/sms.html?usercode=txzsy;
      • 步骤四:客户可以进行短信测试、一键注册等功能;
      • 步骤五:营销人员可以查看本账户对应的客户的活动信息。

    5.1 员工管理

    维护营销人员基础信息,可生成营销二维码与名片二维码。

    5.2 营销人员列表

    ZJ(J{_~([$QGQ4B4L9KMRA2

        对所有营销人员进行基础信息维护。

    5.2.1 添加\修改人员信息

    image

    5.2.2 营销\名片二维码

    image

        显示营销二维码与名片二维码地址,并生成营销与名片二维码。用户可以根据上图中二维码地址,可以在草料二维码等网站生成个性化的二维码图片。

    5.2 我的客户

        通过二维码扫描而注册的客户。按注册时间倒排序。

    5.2.1 客户列表

    W24]VEDS9$$AUZ0_68U1JMW

    5.2.2 完善客户信息

    image

    5.2.3 测试记录

        通过二维码扫描而进行测试的客户,要限制一个手机最多发送短信条数,可识别哪些客户是注册客户。

    H1RJO0H)FJEXAUS24`HF{P2

    6、总结

        在对二维码与本公司业务结合之后,发现业务推广更好,应用比较简单。欢迎更多的朋友关注我们,腾信通信技术欢迎您!

    转载于:https://www.cnblogs.com/zsy/p/5883398.html

    展开全文
  • iOS 获取手机上已经安装的应用

    千次阅读 2017-06-29 17:11:31
    然而每次都要登录后台扫描二维码下载实在是太麻烦了,我们就打算做一个客户端。 于是问题来了:如何知道我手机上安装的礼物说版本比我当前的要低呢? 方案们 方案一 剪贴板共享 我们知道同一个证书下...
  • 9月8日消息,在国家邮政安全中心举行的发布会上,推出了快递行业的“全网通”身份二维码技术,用户只要通过扫描二维码即可邮寄快递。快递行业涉及到消费者的很多个人隐私信息,一张快递单上包含了买家的家庭住址、...
  • UDID,是iOS设备的一个唯一识别码,每台iOS设备都有一个独一无二的编码,这个编码,我们称之为识别码,也叫做UDID( Unique Device Identifier)。 ios开发测试阶段需要获取测试手机的udid...扫描二维码,用safari浏览
  • 通过用手机扫描汽车上的二维码获取该车主的手机号码,进入手机拨号界面,点击拨打按钮去联系车主,其中的扫描展示的界面各式各样,功能都是去拨打车主的电话,有的带有安全隐私的字眼,有的带有免费拨打的字眼.......
  • 11、新增微信付款接口,客户无需加好友,直接扫描二维码(微信支付付款二维码获取方法及替换方法见附送的WORD文档)完成支付。 12、加入伪数据库功能,订单提交失败自动写入设置好的数据文件中,确保不漏一单 请...
  • Erdaicms已经推出官方微信服务,请关注我们的微信号,... 请打开手机微信,扫描上面的二维码,关注我们!  获取测试后台账户密码的方法:  关注后,请回复“测试后台”,我们会自动下发账户密码到您的微
  • Erdaicms已经推出官方微信服务,请关注我们的微信号,... 请打开手机微信,扫描上面的二维码,关注我们! 获取测试后台账户密码的方法: 关注后,请回复“测试后台”,我们会自动下发账户密码到您的微信...
  • (java)微信公众号开发 之 扫码关注 获取OPPENID 对该OPPENID发送相关的信息 因为公司项目需要对接微信公众号平台,所以把自己的笔记整理在此,...顾客扫描二维码之后,微信平台会推送消息到我们自己项目.(要点:对微
  • 一维二维通用条码扫描器是本站发布的第一个条码扫描项目,...本项目可以记录扫码历史并且把手机上的联系人、已安装应用、书签、剪切板内容在屏幕上生成一个二维码,别人扫描以后可以可以获取二维码包含的信息。  
  • 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了微信公众帐号测试,通过手机微信扫描二维码即可获得测试。 进入微信公众帐号测试申请系统 打开此页面,用自己的微信扫码...
  • 微信扫码登录,前台获取微信扫描二维码手机微信扫描之后,携带用户的数据跳转到页面的首页 问题描述: 获取微信扫描二维码时,需要从微信官方给定的地址跳转到自己写的前端页面,由于域名和端口不同,因此会...
  • 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了微信公众帐号测试,通过手机微信扫描二维码即可获得测试。 测试进入步骤如下: 打开微信公众平台主页 微信公众平台 点击...
  • 由于用户体验和安全性方面的考虑,微信...所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,我们推出了微信公众帐号测试,通过手机微信扫描二维码即可获得测试。 打开网址扫码登陆 : ...
  • 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,我们推出了微信公众帐号测试,通过手机微信扫描二维码即可获得测试。 1、测试的申请 登录到微信公众平台:...
  • 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,我们推出了微信公众帐号测试,通过手机微信扫描二维码即可获得测试。 微信公众号接口测试申请链接:...
  • 『腾讯会议』远程教学使用指南

    千次阅读 2020-02-07 00:41:58
    下载安装成功后,打开软件... 接着输入手机号,点击获取验证码,输入收到的手机短信验证码,点击下一步: 点击快速会议: 点击绿色按钮【使用电脑音频】: 此时多人会议室已经创建好了,可...
  • ios 版手机迅雷的安装方法

    千次阅读 2019-02-21 11:28:00
    前言 如果想要在苹果手机上下载通过磁力链接分享的文件...用 ios 自带的 Safari 浏览器打开一个安装链接,因为安装链接时不时会更新,所以获取最新链接请长按或扫描下面二维码关注我的订阅,后台回复【迅雷】两个字。
  • 使用蒲公英平台测试iOS APP(示例)

    千次阅读 2016-09-05 18:55:27
    1. 获取到iPhone手机的UDID:获取方法一:根据iTools软件获取获取方法二:根据iTunes获取获取方法三:通过扫描蒲公英... 测试下载发给我之后我将会把加入测试帐号中,测试时我会发送一个测试二维码,然后扫描二维码进行
  • 自动化实现携程预约抢票

    千次阅读 2019-01-02 19:19:54
    最近抢票风潮盛行,写了个脚本来抢票,有些地方需要手动,因为我是微信登录的,需要手机扫描二维码登录一下,还有手机号验证一下就ok了,其他不用自己手动,没有封装。。。。 1,单程票,首先把出发的城市,目的...
  • 使用八种牛云存储解决方案ios7.1的app部署问题 ...首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址。然后浏览器会自己主动跳转到这个地址,下载、读取.plist。(用户跳转的地址是.pl...
  • 本作品便是基于这个使用场景,通过扫描二维码获取用户手机号后进行填报,提交问题等待解决,解决后进行打分评价。 功能包含可文字可语音可视频的「问题反馈」、查看未解决和已解决的 「提报历史」 、填写问题反馈及

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

扫描二维码获取手机号