微信蓝牙设备开发教程之获取设备deviceid和二维码(3)
文章转载地址 http://www.vxzsk.com/87.html
设备授权
调用 设备授权新接口 ,获取deviceid和二维码,然后利用获取到的deviceid更新设备属性(如mac地址,connect_protocol等)。
获取到的二维码即为一机一码,设备厂商利用二维码生成器把获取到的二维码串生成为二维码,用户扫描该二维码后,关注厂商公众号,即可绑定设备。
注意:设备授权时必须填上product_id。
获取设备deviceid和二维码
要想获取设备的deviceid和设备的二维码,必须满足1个条件,设备所属的产品号码product_id,产品的id在添加设备列表中查询,如下图:
java代码如下:
package com.wepayweb.weixin.util.device; /*** * V型知识库 www.vxzsk.com */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class DeviceTest { public static String sendGet(String url, String charset, int timeout) { String result = ""; try { URL u = new URL(url); try { URLConnection conn = u.openConnection(); conn.connect(); conn.setConnectTimeout(timeout); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset)); String line=""; while ((line = in.readLine()) != null) { result = result + line; } in.close(); } catch (IOException e) { return result; } } catch (MalformedURLException e) { return result; } return result; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String access_token="";// String product_id=""; String data = DeviceTest.sendGet("https://api.weixin.qq.com/device/getqrcode?access_token="+access_token+"&product_id="+product_id, "utf-8", 30000); System.out.println("获取设备的deviceid和二维码:"+data); } }
main方法中大概是49行acess_token参数请参考本站如何获取access_token章节。
第二个参数product_id已经在上面说过,还是不清楚的读者请看上面的图片所标示的。
执行main方法后,返回的数据大概结构如下:
正确的Json返回结果:
{"base_resp":{"errcode":0,"errmsg":"ok"},"deviceid":"gh_1755c346b0b9_004cb738ac631af0","qrticket":"http:\/\/we.qq.com\/d\/AQ2DBteOl389f6b19HSo_uPMm-7ubPTjFztb-iCSa"}
上面的json字符串是我给我自己的蓝牙设备产品生成了一个唯一的二维码,deviceid已经写的很清楚了,可能初学者很迷惑,二维码呢?在哪里在哪里?其实qrticket这个字段就是二维码,我们把qrticket的值复制出来,然后百度二维码生成器,把连接复制到生成器里点击生成即可生成图片样式的二维码,操作如下:
错误的Json返回示例:
{resp_msg:{"ret_code":-1," error_info":"system error"}}
如果返回错误 请核查自己的product_id和access_token是否正确。
好了,到此我们已经获取到蓝牙设备的deviceid和二维码了,特别说明:我们这里生成的deviceid并不是硬件厂商给设备烧制的id而是微信公众平台自行给我们生成的设备id 和硬件厂商烧制的并不是同一个id。
提醒读者,生成设备的二维码图片不要急于打开微信和手机蓝牙,扫描绑定设备连接,因为我们只是生成了设备的二维码和id而已,即使绑定设备后,也是无法和设备的进行蓝牙连接的,因为我们还未给设备授权。下一节将会讲解设备授权,敬请期待!
微信蓝牙设备开发教程之获取设备deviceid和二维码(3)的更多相关文章
- 微信获取ticket及生成二维码(临时或永久)
微信获取ticket及生成二维码(临时或永久) curl.php---- define("APPID",""); define("APPSECRET& ...
- java实现微信支付宝等多个支付平台合一的二维码支付(maven+spring springmvc mybatis框架)
首先申明,本人实现微信支付宝等支付平台合多为一的二维码支付,并且实现有效时间内支付有效,本人采用的框架是spring springmvc mybatis 框架,maven管理.其实如果支付,不需要my ...
- 微信小程序开发——获取小程序带参二维码全流程
前言: 想要获取微信小程序带参数二维码,如这种: 官方文档只说了获取小程序码和二维码的三种接口及调用(参考链接:https://developers.weixin.qq.com/miniprogram ...
- 微信开发之——Php批量生成带参数的二维码
带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧. 具体接口说明请参见,微信公众平 ...
- Thinkphp利用微信多客服消息推送取货二维码消息
首先看微信官方的说法: 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单.订阅事件.扫描二维码事件.支付成功事件.用户维权), 微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改 ...
- 解决Mac版微信小程序开发工具打开后无法显示二维码
问题描述: 正常情况下,打开微信小程序开发工具后,首页提示扫描二维码进行登陆,但是如果不显示二维码,当然无法登陆. 解决方案: 无法显示二维码肯定是程序运行哪里出错了,我们直接点击桌面图标是无法排查错 ...
- 微信小程序H5预览页面框架(二维码不隐藏)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- java,H5微信蓝牙设备开发教程申请设备和添加设备(2)
转载地址 http://www.vxzsk.com/76.html 申请设备功能 a. 登录公众平台,点击左边功能栏的"添加功能插件",选择"设备功能". b ...
- H5分享到微信好友朋友圈QQ好友QQ空间微博二维码
这是分享按钮: <button onclick="call()">通用分享</button> <button onclick="call(' ...
随机推荐
- Windows安装程序 报错 “已安装了较新版本” 导致无法安装程序的解决方法
打开注册表 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products ,“查找”程序名称 如果有程序名和安装程序相同的 ,删除整个 项 ! 然后就 ...
- java中的反射简单实例
package club.reflection.entity.User; /** * 实体类 * */ public class User { public String name; private ...
- [VijosP1764]Dual Matrices 题解
题目大意: 一个N行M列的二维矩阵,矩阵的每个位置上是一个绝对值不超过1000的整数.你需要找到两个不相交的A*B的连续子矩形,使得这两个矩形包含的元素之和尽量大. 思路: 预处理,n2时间算出每个点 ...
- WebViewJavascriptBridge使用说明(iOS)
由于现在很多产品都是有安卓版跟ios版,就意味着同一样东西要出两套,由两组人去完成,不仅增加了开发成本,也大大加剧了维护成本.聪明的coder想出了跨平台的思路,用html写页面,分别用webview ...
- Django 中related_name,"%(app_label)s_%(class)s_related"
先看个model from django.db import models # Create your models here. class Parent(models.Model): name = ...
- The Practical Guide to Empathy Maps: 10-Minute User Personas
That’s where the empathy map comes in. When created correctly, empathy maps serve as the perfect lea ...
- WebService的工作原理
Web Service全称XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP ...
- Python3.5+selenium操作Chrome浏览器
1.安装selenium 命令提示符下输入: pip install selenium 2.下载chromedriver 点击下载 3.将解压后的chromedriver.exe放到chrome浏览器 ...
- Red Hat5.5 install Generic mysql-5.7.10
1.确认以下依赖包已安装 [ncurses ncurses-devel openssl-devel bison autoconf automake bison gcc m4 libtool make ...
- 记sql server 2008R2 两台服务器 使用非默认端口的发布订阅
最近研究数据库的复制.因为要在两台服务器上,当使用数据库的默认1433端口时,订阅发布没有任何问题,考虑到数据库的安全性问题,需要改用其他端口.这里以10010为例. 有A.B两台服务器:A作为发布服 ...