微信开发获取deviceid_微信h5获取deviceid - CSDN
  • 微信硬件蓝牙jsapi之getWXDeviceInfos接口获取设备deviceid(10)

    文章来源 http://www.vxzsk.com/106.html

    已推出最新微 信硬件jsapi学习笔记 地址 http://www.vxzsk.com/282.html

    我们在微信蓝牙设备使用jsapi说明 这节课已经说的很明白了,以后案例是按照红色箭头的走向,所以接下来也是这样子。

    第一、扫描二维码绑定蓝牙设备

    1)、把我们在第三课生成的二维码用二维码生成器生成图片并打开。

    2)、打开手机蓝牙并且打开手机微信扫一扫,扫描二维码图片会出现如图:

    3),点击绑定设备 然后进入公众账号,进入公众账号之后,我们在微信的头部会看到"未连接设备"或"已连接1个设备"

    4)、如果没有出现已连接1个设备或者未连接设备 可能是您授权的二维码和设备mac地址不匹配,还有一种情况就是手机蓝牙不支持ble模式,在绑定设备后,记得打开设备。

    第二、根据微信蓝牙接入官方文档编写调用微信jsapi代码。

    js代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    <script type="text/javascript">
     jQuery(document).ready(function(){
      //初始化库 
     loadXMLDoc();
     //初始化库结束
      
     $("#CallGetWXrefresh").on("click",function(e){  
        //showdialog();
         
         //1. 打开微信设备 
         my_openWXDeviceLib();
          
         //2. 安装设备事件
         my_installwxEvents();
          
         //2.1安装状态改变事件 暂时不检测
        // my_onWXDeviceStateChange(); 
          
         //3. 安装接收到数据事件 暂时 
         my_onReceiveDataFromWXDevice();
          
         //4. 刷新设备信息
         my_getWXDeviceInfos();
          
          
           
      });
       
    });
     //微信硬件jsapi库
    function loadXMLDoc()
    {
        var appId =jQuery("#appId").text();
        var timestamp=jQuery("#timestamp").text();
        var nonceStr =jQuery("#nonceStr").text();
        var signature=jQuery("#signature").text();
        wx.config({
                 beta: true,
                  debug: true,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                  appId: appId, 
                  timestamp: timestamp,
                  nonceStr: nonceStr,
                  signature: signature,
                  jsApiList: [
                    'openWXDeviceLib',
                    'closeWXDeviceLib',
                    'getWXDeviceInfos',
                    'getWXDeviceBindTicket',
                    'getWXDeviceUnbindTicket',
                    'startScanWXDevice',
                    'stopScanWXDevice',
                    'connectWXDevice',
                    'disconnectWXDevice',
                    'sendDataToWXDevice',
                    'onWXDeviceBindStateChange',
                    'onWXDeviceStateChange',
                    'onScanWXDeviceResult',
                    'onReceiveDataFromWXDevice',
                    'onWXDeviceBluetoothStateChange',
                  ]
              });
                 alert("初始化库结束");
    }
    //判断调用jsapi返回状态 true表示成功
    wx.error(function (res) {
      alert("调用微信jsapi返回的状态:"+res.errMsg);
    });
     
    /******************************分割线************************************************/
    /*********************************************************
    * 打开微信设备 
    * 作者:V型知识库 www.vxzsk.com 2016-04-04
    * my_openWXDeviceLib
    * 入口参数:无
    * 出口参数:0表示打开成功;1表示打开失败
    *********************************************************/
    function my_openWXDeviceLib(){
       var x=0; 
       WeixinJSBridge.invoke('openWXDeviceLib', {}, 
       function(res){
           mlog("打开设备返回:"+res.err_msg);
          if(res.err_msg=='openWXDeviceLib:ok')
            {
              if(res.bluetoothState=='off')
                {    
                  showdialog("太着急啦","亲,使用前请先打开手机蓝牙!");  
                  $("#lbInfo").innerHTML="1.请打开手机蓝牙";
                  $("#lbInfo").css({color:"red"});
                  x=1;
                  isOver();
                };
              if(res.bluetoothState=='unauthorized')
                {
                  showdialog("出错啦","亲,请授权微信蓝牙功能并打开蓝牙!");    
                  $("#lbInfo").html("1.请授权蓝牙功能");
                  $("#lbInfo").css({color:"red"});
                  x=1;
                  isOver();
                }; 
              if(res.bluetoothState=='on')
                {
                  //showdialog("太着急啦","亲,请查看您的设备是否打开!");   
                  $("#lbInfo").html("1.蓝牙已打开,未找到设备");
                  $("#lbInfo").css({color:"red"});
                  //$("#lbInfo").attr(("style", "background-color:#000");
                  x=0;
                  //isOver();
                };      
            }
          else
            {
              $("#lbInfo").html("1.微信蓝牙打开失败");
              x=1; 
              showdialog("微信蓝牙状态","亲,请授权微信蓝牙功能并打开蓝牙!");   
            }
        });
       return x;  //0表示成功 1表示失败
    }
     
     
    /*********************************************************
    * 装载微信事件处理
    * 作者:V型知识库 www.vxzsk.com 2016-04-04
    * my_installwxEvents
    * 入口参数:无
    * 出口参数:无
    *********************************************************/
     function my_installwxEvents(){
       //1. 安装微信绑定事件
       WeixinJSBridge.on('onWXDeviceBindStateChange'function(argv) {
           //todo
            }); 
       //2. 扫描到某个设备      
       WeixinJSBridge.on('onScanWXDeviceResult'function(argv) {
            //todo
            });
       //3. 手机蓝牙状态改变事件    
       WeixinJSBridge.on('onWXDeviceBluetoothStateChange'function(argv) {
            //todo
            });         
     }
      
    /*********************************************************
    * 接收到数据事件
    * 作者:V型知识库 www.vxzsk.com 2016-04-04
    * my_onReceiveDataFromWXDevice
    * 入口参数:无
    * 出口参数:无
    *********************************************************/ 
    function my_onReceiveDataFromWXDevice(){
         
        WeixinJSBridge.on('onReceiveDataFromWXDevice'function(argv) {
        mlog("接收的数据-->"+argv.base64Data);
            //var Bytes=base64_to_bytes_array(argv.base64Data);
            //alert("硬件设备返回的base64数据"+argv.base64Data);
          //  mlog("接收的数据-->"+pHex(base64_to_bytes_array(argv.base64Data)));
           // recevResult=checkReceiveData(Bytes);
            
           
          });
    }
      
     
     
    /**********************************************
    * 取得微信设备信息
    * 作者:V型知识库 www.vxzsk.com 2016-04-04
    * my_getWXDeviceInfos
    * 入口参数:无
    * 出口参数:返回一个已经链接的设备的ID
    **********************************************/
    function my_getWXDeviceInfos(){
        
        WeixinJSBridge.invoke('getWXDeviceInfos', {}, function(res){
            var len=res.deviceInfos.length;  //绑定设备总数量
            for(i=0; i<=len-1;i++)
             {
               //alert(i + ' ' + res.deviceInfos[i].deviceId + ' ' +res.deviceInfos[i].state); 
               if(res.deviceInfos[i].state==="connected")
                {
                  $("#lbdeviceid").html(res.deviceInfos[i].deviceId); 
                  C_DEVICEID = res.deviceInfos[i].deviceId;
                  $("#lbInfo").html("2.设备已成功连接");
                  $("#lbInfo").css({color:"green"});
                  
                  break;   
                }  
             }
                
        }); 
      return;    
    }
     
    function mlog(m){
        var log=$('#logtext').val();
        //log=log+m;
        log = m;
        $('#logtext').val(log);
    }
     
    /***************************************************************
     * 显示提示信息
    ***************************************************************/
    function showdialog(DialogTitle,DialogContent){
       var $dialog = $("#Mydialog");
       $dialog.find("#dialogTitle").html(DialogTitle);
       $dialog.find("#dialogContent").html(DialogContent);
       $dialog.show();
       $dialog.find(".weui_btn_dialog").one("click"function(){
            $dialog.hide();
       });
    }
    </script>

    loadXMLDoc();这个方法中的四个参数咱们在前两节已经讲过,如果读者不明白可翻看前两节在这里不在累述

    第7行是微信蓝牙接入的步骤,分为四步,第一步打开微信设备、第二步安装设备事件、第三安装设备接收事件、其中有个步骤我注释掉了主要因为这个接口经过测试很不稳定,不知是微信原因还是我设备或者代码原因 。第四呢就是刷新设备信息。

    第三、点击菜单进入界面,点击获取设备,获取设备信息和日志状态等

    第四、完整jsp代码如下

     

    第五、说明

    用户打开微信,打开手机蓝牙,然后点击菜单进入h5界面并点击获取设备按钮获取设备信息,其中用户点击菜单跳转H5界面这个代码流程请看http://www.vxzsk.com/82.html 这一章节。


    展开全文
  • 业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录。...企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息。 在企业号...

    业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录。

    在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,以此来匹配业务服务器存储的相关用户信息。

    目录

    1.  介绍

    2.  代码示例

     

    1. 介绍

    1.1 说明

    企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息。

    在企业号中可以进行如下步骤获取微信用户信息:

    访问一个业务页面时,可通过OAuth验证接口获取此用户信息 → 根据code获取userId → 根据userId获取微信信息。

     

    1.2 详细流程

    ① 获取code

    APIhttp://qydev.weixin.qq.com/wiki/index.php?title=OAuth%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3#.E4.BC.81.E4.B8.9A.E8.8E.B7.E5.8F.96code

    说明:网页经过OAuth2.0验证后,重定向到原来网页并在url后面添加code信息。

    :http://akmsg.com/a.html => OAhth2.0 => http://akmsg.com/a.html?code=CODE&state=STATE

    ② 根据code获取userId

    APIhttp://qydev.weixin.qq.com/wiki/index.php?title=OAuth%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3#.E6.A0.B9.E6.8D.AEcode.E8.8E.B7.E5.8F.96.E6.88.90.E5.91.98.E4.BF.A1.E6.81.AF

    说明:调用此接口后将会获得 userId;注:userId为加密后的微信账号。

    ③ 根据userId获取微信信息

    APIhttp://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%88%90%E5%91%98#.E8.8E.B7.E5.8F.96.E6.88.90.E5.91.98

    说明:调用此接口后将会获得此访问者在企业号登记的具体信息;如:姓名、微信号、手机号、邮箱、职位等等。

    ④ 根据微信信息获取逻辑用户信息

    说明:从上一步骤获取的微信信息,可以用来跟业务逻辑进行匹配获取此用户在业务层中的用户信息。

     

    1.3 流程图

     

    2. 代码示例

    2.1 代码(C#)

    逻辑:Asp.net对客户端发送的请求进行判断,符合微信企业号页面规则的将进行微信企业号用户身份认证操作。

    此功能对访问请求的三种情况进行分别判断:

    1.第一次访问,没code :进行OAuth验证

    2.有code,没cookie :获取code对应的信息

    3.有code,有cookie :验证cookie

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    /// <summary>
    /// 验证微信访问
    /// </summary>
    public static void Auth(HttpContext webContext)
    {
     
        string requestURL = webContext.Request.Url.AbsoluteUri;
     
        try
        {
            // 用户访问微信页面有3种情况:
            // 1.第一次访问,没code
            // 2.有code,没cookie;
            // 3.有code,有cookie
     
            // 1.第一次访问,没code,没cookie:跳转到Oauth2.0认证
            if (string.IsNullOrEmpty(webContext.Request["code"]))
            {
                string url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", CORPID, webContext.Server.UrlEncode(requestURL));
                webContext.Response.Redirect(url, false);
            }
            else if (!string.IsNullOrEmpty(webContext.Request["code"]) && string.IsNullOrEmpty(CookieHelper.GetCookie("WXToken")))
            {
                // 2.有code,没cookie:根据code获取userID
                string code = webContext.Request["code"];
                string userId = "";
                string userInfo = "";
     
                #region 1)根据code获取userId
     
                string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}", GetAccessToken(), code);
                string responseText = HttpHelper.Instance.get(url);
                /*
                    API:http://qydev.weixin.qq.com/wiki/index.php?title=OAuth%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3#.E6.A0.B9.E6.8D.AEcode.E8.8E.B7.E5.8F.96.E6.88.90.E5.91.98.E4.BF.A1.E6.81.AF
                    正确的Json返回示例:
                    {
                       "UserId":"USERID",
                       "DeviceId":"DEVICEID"
                    }
                    未关注企业号时返回:
                    {
                       "OpenId":"OPENID",
                       "DeviceId":"DEVICEID"
                    }
                    错误的Json返回示例:
                    {
                       "errcode": "40029",
                       "errmsg": "invalid code"
                    }
                */
                WeChatUserCodeEntity codeEn = JsonHelper.GetEntity<WeChatUserCodeEntity>(responseText);
                if (codeEn.errcode > 0)
                {
                    throw new Exception(codeEn.errmsg);
                }
                else if (string.IsNullOrEmpty(codeEn.UserId))
                {
                    throw new Exception("请先关注企业号!");
                }
                userId = codeEn.UserId;
     
     
                #endregion
     
                #region 2)根据userId获取用户信息
     
                url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={0}&userid={1}", GetAccessToken(), userId);
                responseText = HttpHelper.Instance.get(url);
                /*
                    API:http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%88%90%E5%91%98#.E8.8E.B7.E5.8F.96.E6.88.90.E5.91.98
                    正确的Json返回示例:
                    {
                       "errcode": 0,
                       "errmsg": "ok",
                       "userid": "zhangsan",
                       "name": "李四",
                       "department": [1, 2],
                       "position": "后台工程师",
                       "mobile": "15913215421",
                       "gender": "1",
                       "email": "zhangsan@gzdev.com",
                       "weixinid": "lisifordev", 
                       "avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0",
                       "status": 1,
                       "extattr": {"attrs":[{"name":"爱好","value":"旅游"},{"name":"卡号","value":"1234567234"}]}
                    }
                    错误的Json返回示例:
                    {
                       "errcode": "40029",
                       "errmsg": "invalid code"
                    }
                */
                WeChatUserInfoEntity userInfoEn = JsonHelper.GetEntity<WeChatUserInfoEntity>(responseText);
                if (userInfoEn.errcode > 0)
                {
                    throw new Exception(userInfoEn.errmsg);
                }
                userInfo = responseText;
     
                #endregion
     
                // 3.把userInfo传入到cookie里
                CookieHelper.SetCookie("WXToken", userInfo, -1);
            }
            else if (!string.IsNullOrEmpty(webContext.Request["code"]) && !string.IsNullOrEmpty(CookieHelper.GetCookie("WXToken")))
            {
                #region 3.有code,有cookie:校验cookie
                // TODO:在上面进行存入cookie时可采用AES加密,在这部进行解密校验
                // CookieHelper.SetCookie("WXToken", "", -1);
                #endregion
            }
            else
            {
                throw new Exception("非授权访问!");
            }
     
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

      

    2.2 运行图

    1) 用户已关注访问时

     

    2) 用户不属于企业通讯录访问时

      

    2.3 Dmeo下载(C#)

    下载地址http://files.cnblogs.com/files/polk6/Wechat.QYH.zip

     

    ==================================系列文章==========================================

    本篇文章:1.3 微信企业号 获取用户信息

    微信开发文章导航

     

    转载于:https://www.cnblogs.com/amylis_chen/p/7484600.html

    展开全文
  • 微信蓝牙设备开发教程之获取蓝牙设备deviceid和设备二维码,微信获取蓝牙设备id和二维码

    已推出最新微信硬件jsapi学习笔记 地址 http://www.vxzsk.com/282.html

    要想获取设备的deviceid和设备的二维码,必须满足1个条件,设备所属的产品号码product_id,产品的id在添加设备列表中查询,@V型知识库原创如下图:


    红色圈箭头所指的就是产品号码product_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而已,即使绑定设备后,也是无法和设备的进行蓝牙连接的,因为我们还未给设备授权。下一节将会讲解设备授权,敬请期待!



     

    展开全文
  • 此处测试使用的是一款带蓝牙功能的设备,该设备添加在微信公众号中,用户扫描二维码绑定设备,二维码生成在接下来会进行讲解。 1、打开微信公共号 2、添加产品 3、设置开启状态提醒,...

    此处测试使用的是一款带蓝牙功能的设备,该设备添加在微信公众号中,用户扫描二维码绑定设备,二维码生成在接下来会进行讲解。


    1、打开微信公共号



    2、添加产品




    3、设置开启状态提醒,这样每次进入微信公众号,就会自动去检测设备,连接设备




    4、添加产品成功后,记住产品编号44871




    5、打开微信公众平台接口调试工具

    https://mp.weixin.qq.com/debug/cgi-bin/apiinfo


    6、通过token+产品编号获取deviceid,保存好deviceid,

    获取的qrticket是一个链接,将该链接转成二维码,(通过草料二维码工具生成:https://cli.im/url)




    7、授权


    参数:

    {
        "device_num":"1",
        "device_list":[
        {
            "id":"deviceid",
            "mac":"A81B6A76048E",
            "connect_protocol":"3",
            "auth_key":"",
            "close_strategy":"1",
            "conn_strategy":"1",
            "crypt_method":"0",
            "auth_ver":"0",
            "manu_mac_pos":"-1",
            "ser_mac_pos":"-1",
            "ble_simple_protocol": "0"
        }
        ],
        "op_type":"1",
        "product_id": "44873"
    }



    8、授权成功之后,就可以通过微信扫码之前生成的二维码来绑定设备了


    9、下一节将讲解蓝牙设备数据传输



    展开全文
  • 最近项目中要实现微信支付宝授权获取用户信息以及支付,在网上查了很多资料,项目中将两个平台的收取与支付写在了一起,记录一下以便以后使用时查看。 1. 微信&amp;支付宝sdk下载 一、微信平台&amp;支付宝...
  • 以前写过一篇公众号的授权登录...1.网页授权及JS-SDK需要在企业微信上配置可信域名 2.企业微信授权登录里面填写你的可信域名 调用流程为: A) 用户访问第三方服务,第三方服务通过构造OAuth2链接...
  • 微信企业号 获取用户信息 业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录。 在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,...
  • 1、蓝牙设备接入微信的基本条件 网上相对于这一块的资料不是特别多,而且有些博主整理的非常好的开发流程也会忽略很多东西,对于一个因为临时需求需要研究硬件设备的人来说太多没说明的坑。 在这里推荐一个链接: ...
  • 笔者决定在嵌入式企鹅圈2016年的首篇文章中,发表微信硬件物联领域极具实践价值的文章,它将能指引和帮助任何有兴趣于物联网开发的童鞋们快速掌握微信硬件开发流程,只需一个小时,而再不需要通过揣摩微信硬件浩瀚的...
  • 发消息了,php之路......走起PHP通过web协议实现微信扫码登录,收发消息,获取好友联系人,创建群,拉人,踢...获取微信联系人、心跳检查、微信好友信息获取等等。 注意事项: 1、不同版本的有可能产生的请求地...
  • 在《微信企业号开发[一]——创建应用》介绍了如何创建应用,但是当用户点击应用跳转到我们设定的URL时,其实并没有带上用户的任何信息,为了获取用户信息,我们需要借助微信提供的OAuth2.0接口。 获取用户信息分两...
  • 微信硬件蓝牙H5开发
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 微信开发API文档是必看的 在api文档里面我们可以看到很多内容,然后需要我们去理解点击进微信硬件平台api[http://iot.weixin.qq.com/wiki/new/index.html?page=4-7. 例如 解绑设备 需...
  • 文章目录背景问题分析处理流程1、小程序基础功能开发,提交审核2、企业微信关联小程序3、获取关联小程序的 Secret,设置可见范围4、修改小程序4.1、判断运行环境4.2、权限校验参考资料 背景 为其他公司开发一个小...
  • 先贴出完整源代码。 代码中:使用二维码登录网页...来实现:强制获取微信好友列表信息开发(一)提取微信好友数据 import os import requests import re import time import xml.dom.minidom import json import...
  • 微信硬件蓝牙教程全

    2017-06-14 13:54:19
    微信蓝牙设备开发教程之获取设备deviceid和二维码(第三课)   微信蓝牙设备开发教程之蓝牙设备授权(第四课)   微信蓝牙设备开发之初步接入微信硬件jsapi(第四课续1)   微信蓝牙设备开发微信硬件jsapi接口...
1 2 3 4 5 ... 20
收藏数 523
精华内容 209
关键字:

微信开发获取deviceid