精华内容
参与话题
问答
  • 微信登陆

    2018-10-29 17:43:42
     1、微信开放平台与微信公众平台的区别  1.1 微信公众平台:   ① 地址: https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN  ② 微信公众平台面向的是普通的用户,比如自媒体...

    一、开发前知识

      1、微信开放平台与微信公众平台的区别

        1.1 微信公众平台:  

        ① 地址:  https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN

        ② 微信公众平台面向的是普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平台里面的接口,比如自定义菜单,自动回复,查询功能。

        1.2 微信开放平台:  

        ① 地址:  https://open.weixin.qq.com/

        微信开放平台:面向的是开发者和第三方独立软件开发商。开放平台的文档似乎包含了微信开放平台文档里面的接口。

      2、微信公众平台目前只支持80端口,且项目上传到服务器上面不容易debug啊?

        解决方法: ngrok 工具,可以根据本地项目映射成外网可以访问的地址、端口,默认映射为80端口。

          官网:       https://dashboard.ngrok.com

          存在问题: 每次重启,域名会变化,都需要项目中、微信公众平台配置,付费可以固定域名。。。

        使用方法: ① 注册后获得一个授权码,下载 ngrok

              ② 》CMD 进入 ngrok 目录

                》ngrok authtoken 授权码

                》ngrok http 8080

             ③看到这个页面,ngrok就为你分配了临时访问通道成功了^^

    二、配置

      (每个微信号可以申请成为开发者测试账号进行微信功能开发的。)

      1、在公众平台中进行配置:

        地址: http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

        ①:配 置 “接口配置信息” (Token 在项目中我是配置为"handsomeKing",没错,我就是King ^^)

          url 改为自己映射的域名


    好了,可以愉快的 coding 了!!!

    三、可以开发啦

        1、上面的 “接口配置信息” 配置得 wechat/ownerCheck 方法是验证 这个url 为我自己的,handsomeKing 就是这个方法中的一个参数。微信这个小朋友会用Get方法带上4个参数给我服务器: signature(签名)、timestamp(时间戳)、nonce(随机数)、echostr(随机字符串),再加上咱们项目中自己配置的 token ,通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败:(talk is cheap, show me the code *&)


     /**
         * 微信消息接收和token验证
         * @param model
         * @param request
         * @param response
         * @throws IOException
         */
        @RequestMapping("/ownerCheck")
        public void ownerCheck(Model model, HttpServletRequest request,HttpServletResponse response) throws IOException {
            System.out.println(111);
            boolean isGet = request.getMethod().toLowerCase().equals("get");
            PrintWriter print;
            if (isGet) {
                // 微信加密签名
                String signature = request.getParameter("signature");
                // 时间戳
                String timestamp = request.getParameter("timestamp");
                // 随机数
                String nonce = request.getParameter("nonce");
                // 随机字符串
                String echostr = request.getParameter("echostr");
                // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
                if (signature != null && CheckoutUtil.checkSignature(signature, timestamp, nonce)) {
                    try {
                        print = response.getWriter();
                        print.write(echostr);
                        print.flush();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
     
    public class CheckoutUtil {
        // 与接口配置信息中的Token要一致
        private static String token = "handsomeKing";
     
        /**
         * 验证签名
         * 
         * @param signature
         * @param timestamp
         * @param nonce
         * @return
         */
        public static boolean checkSignature(String signature, String timestamp, String nonce) {
            String[] arr = new String[] { token, timestamp, nonce };
            // 将token、timestamp、nonce三个参数进行字典序排序
            // Arrays.sort(arr);
            sort(arr);
            StringBuilder content = new StringBuilder();
            for (int i = 0; i < arr.length; i++) {
                content.append(arr[i]);
            }
            MessageDigest md = null;
            String tmpStr = null;
            try {
                md = MessageDigest.getInstance("SHA-1");
                // 将三个参数字符串拼接成一个字符串进行sha1加密
                byte[] digest = md.digest(content.toString().getBytes());
                tmpStr = byteToStr(digest);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
            content = null;
            // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
            return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;
        }
        /**
         * 将字节数组转换为十六进制字符串
         * 
         * @param byteArray
         * @return
         */
        private static String byteToStr(byte[] byteArray) {
            String strDigest = "";
            for (int i = 0; i < byteArray.length; i++) {
                strDigest += byteToHexStr(byteArray[i]);
            }
            return strDigest;
        }
        /**
         * 将字节转换为十六进制字符串
         * 
         * @param mByte
         * @return
         */
        private static String byteToHexStr(byte mByte) {
            char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
            char[] tempArr = new char[2];
            tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
            tempArr[1] = Digit[mByte & 0X0F];
            String s = new String(tempArr);
            return s;
        }
        public static void sort(String a[]) {
            for (int i = 0; i < a.length - 1; i++) {
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j].compareTo(a[i]) < 0) {
                        String temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                    }
                }
            }
        }
    }
    2、用户用户同意授权,获取微信服务器传过来的俩参数: code、state。其中:

    APPID: 微信开发者测试账号
    REDIRECT_URI: 同意授权后跳转的 URL
    /**
         * 第一步:用户同意授权,获取code(引导关注者打开如下页面:)
         *  获取 code、state
         */
        public static String getStartURLToGetCode() {
            
            String takenUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect";
            takenUrl= takenUrl.replace("APPID", Param.APPID);
            takenUrl= takenUrl.replace("REDIRECT_URI", URL.encode(Param.REDIRECT_URI));
            //FIXME : snsapi_userinfo
            takenUrl= takenUrl.replace("SCOPE", "snsapi_userinfo");
            System.out.println(takenUrl);
            return takenUrl;
        }
    3、获取微信用户的 access_token、openid

    APPID: 微信开发者测试账号
    secret: 微信开发者测试账号密码
    code:  上一步的 code
    /**
         * 获取access_token、openid
         * 第二步:通过code获取access_token
         * @param code url = "https://api.weixin.qq.com/sns/oauth2/access_token
         *                      ?appid=APPID
         *                      &secret=SECRET
         *                      &code=CODE
         *                      &grant_type=authorization_code"
         * */
        public static OAuthInfo getAccess_token(String code){
            
         
            String authUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ";
            authUrl= authUrl.replace("APPID", Param.APPID);
            authUrl = authUrl.replace("SECRET", Param.SECRET);
            authUrl = authUrl.replace("CODE", code);
            String jsonString = HTTPRequestUtil.sendPost(authUrl,"");
            System.out.println("jsonString: " + jsonString);
            OAuthInfo auth = null;
            try {
                auth = (OAuthInfo) JacksonUtil.parseJSONToObject(OAuthInfo.class, jsonString);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return auth;
        }

    4、在数据库中查询 openid

      我是定义了一个对象 OauthInfo,包括 openid(用户的标识)属性。。。

      查询时库中存在就直接登录啦,不存在就先去登录页,将登录账号同 openid 绑定。

    /**
         * 微信引导页进入的方法
         * @return
         */
        @RequestMapping("/loginByWeiXin")
        public String loginByWeiXin(HttpServletRequest request, Map<String, Object> map) {
            // 微信接口自带 2 个参数
            String code = request.getParameter("code");
            String state = request.getParameter("state");
            System.out.println("code = " + code + ", state = " + state);
            
            if(code != null && !"".equals(code)) {
                // 授权成功, 微信获取用户openID
                OAuthInfo authInfo = WeiXinUtil.getAccess_token(code);
                String openid = authInfo.getOpenid();
                String access_token = authInfo.getAccess_token();
                
                if(access_token == null) {
                    // Code 使用过 异常
                    System.out.println("Code 使用过 异常.....");
                    return "redirect:" + WeiXinUtil.getStartURLToGetCode();
                }
                
                // 数据库中查询微信号是否绑定平台账号
                SysUser sysUser = weiXinService.getUserByWeiXinID(openid);
                if(sysUser == null) {
                    String randomStr = StringUtil.getRandomString(50);
                    request.getSession().setAttribute(openid, randomStr);
                    // 尚未绑定账号
                    System.out.println("尚未绑定账号.....");
                    return "redirect:/index.jsp?openid=" + openid + "&state=" + randomStr;
                }
                userController.doSomeLoginWorkToHomePage(sysUser.getMcid(), map);
                // 登录成功
                return "homePage";
            } 
            // 未授权
            return "redirect:" + WeiXinUtil.getStartURLToGetCode();
        
        }

    展开全文
  • asp微信登陆asp微信登陆
  • Delphi微信登陆

    2020-11-24 19:00:35
    【Delphi 微信登陆】扫描登陆二维码,即可获取微信的openid,实现微信授权登陆。
  • 支持电脑版+手机版+支付宝及微信支付,支持QQ和微信一键登陆,系统集众家之所长,大气超美观页面+手机版+商品组合套餐+限时抢购秒杀+图片批量上传+淘宝数据包导入+弹出式分类菜单+不同规格不同价格+新订单邮件通知+...
  • 最近碰到很多同学反馈微信登陆失败,提示语未,“由于应用universal link校验不通过,无法完成微信登陆” 具体情况如下图: 图1.jpg 图2.jpg 这是因为微信在6月1日之后会限制旧版本SDK的一些功能(具体文档),而...

    简介

    最近碰到很多同学反馈微信登陆失败,提示语未,“由于应用universal link校验不通过,无法完成微信登陆

    具体情况如下图:
    微信登入错误示例

    这是因为微信在6月1日之后会限制旧版本SDK的一些功能(具体文档),而新版SDK需要添加universal link.

    具体说明在此处

    什么是universal link 呢?

    Universal Link是苹果在WWDC 2015上提出的iOS9的新特性之一,此特性类似于深层链接,并能够方便地通过打开一个Https链接来直接启动您的客户端应用(手机有安装App)。对比起以往所使用的URL Scheme,这种新特性在实现web-app的无缝链接时能够提供极佳的用户体验。

    这具体是一种怎样的情景呢?举个例子,你的用户在微信里面浏览一个你们公司的网页,而此时用户手机也同时安装有你们公司的App;而Universal Link能够使得用户在打开某个详情页时直接打开你的app并到达app中相应的内容页面,从而实施用户想要的操作(例如查看某条新闻,查看某个商品的明细等等)

    universal linkURL Scheme有什么区别呢?
    是两种不同技术的实现,都是通过苹果系统实现。唯一不同的是URL Scheme 配置是通过打包来配置的,而深链是通过安装时请求https地址或者一个文件(内部为json结构),然后注册号https 和 app的对应。相当于URLScheme,调起更准确,universal和App的bundle ID(唯一) 相关联,所以不会产生冲突。原来的scheme URL应为并不唯一,所以可能会错误调起。(【注:独家推断,为什么苹果要用universal link 替换 URLScheme】)

    微信该次改版,需要做的相关适配

    • 需要做的配置

      1.注册自己的域名,且支持Https
      2.上传文件到自己的域名(一个名为“apple-app-site-association”的json格式非json文件,即无后缀名文件)

    {
      "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "公司开发者账号的小组ID.包名id",
                    "paths": [ "*" ]
                }
            ]
        }
    }
    

          3.登陆开发者账号,开启该AppId下的关联域名(Associated Domains)功能

    Alt

          4. 在Xcode中配置关联域名

    配置图1

    配置图2
          5. 其他微信SDK 的接入更改 具体文档

    •  综上所述universal link的配置,4 5两步对于iOS开发者来说并不难,但服务端配置就涉及购买域名https购买,以及配置apple-app-site-association。好在有专门的平台能一键完成这样的服务端配置。我自己用的是【Xinstall】的服务(之前用过这家的内测服务),登陆注册以后就可以免费使用了。
      universal link配置

    universal link自动配置

    universal link校验不通过

    展开全文
  • 微信公众平台近日悄然开始内测微信小程序(微信公众号)功能,引来无数开发者和普通用户关注,微信支付的能力,是随着小程序的发布一并推出的,具有介绍如下: wx.login(OBJECT) 调用接口获取登录凭证(code)进而换取...
  • 主要介绍了微信小程序调用微信登陆获取openid及java做为服务端示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本demo为微信登陆,微信支付源码,复制到工程里,做点小修改就可以使用,有问题请留言
  • 主要介绍了python抓取需要扫微信登陆页面的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 微信登陆接口

    2020-04-07 19:25:32
    参数 ... 应用唯一标识,在微信开放平台提交应用审核通过后获得 scope 应用授权作用域,如获取用户个人信息则填写 snsapi_userinfo(什么是授权域...

    参数

    参数

    说明

    appid

    应用唯一标识,在微信开放平台提交应用审核通过后获得

    scope

    应用授权作用域,如获取用户个人信息则填写 snsapi_userinfo(什么是授权域?)

    state

    用户保持请求和回调的状态,授权请求后原样待会给第三方。该参数可用于防止csrf攻击()跨站请求伪造攻击,建议第三方带上该参数,可设置为简单的随机数加session进行校验。

    code

    通过第一步获取的code参数

    grant_type

    填写 authorization_code

    access_token

    接口调用凭证

    expires_in

    access_token接口调用凭证超时时间 单位秒

    refresh_token

    用户刷新access_token

    openid

    授权用户唯一标识

    scope

    用户授权的作用域,使用逗号(,)分隔

    unionid

    只有在用户将公众好绑定到微信开放平台账号后,才会出现该字段。

    1. 调用微信登录接口,用户扫码登录,生成code

      https://open.weixin.qq.com/connect/qrconnect?
      appid=xxxxxxxxxxxxxx
      &redirect_uri=https://baidu.com
      &response_type=code
      &scope=snsapi_login
      &state=200

       

    2. 请求以下路径通过code获取access_token 参数:appid=APPID,secret=SECRET,code=填写上一步生成的code,grant_type=“authorization_code”,生成access_token

      https://api.weixin.qq.com/sns/oauth2/access_token?
      appid=xxxxxxxxxxxxxx&
      secret=SECRETyyyyyyyyyyyyyyy&
      code=0610Xey313BXSQ15G6v31H6wy310Xeyv&
      grant_type=authorization_code

      返回参数

      结果:
      { 
      "access_token":"ACCESS_TOKEN",                       	接口调用凭证
      "expires_in":7200, 			          	access_token接口调用凭证超时时间,单位(秒)
      "refresh_token":"REFRESH_TOKEN",		用户刷新access_token
      "openid":"OPENID", 				授权用户唯一标识
      "scope":"SCOPE",				用户授权的作用域,使用逗号(,)分隔
      "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"	当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。
      }

       

    3. 请求以下链接进行refresh_token 参数:appid=APPID,grant_type=‘refresh_token’,refresh_token=填写上一步获取到的refresh_token参数

      https://api.weixin.qq.com/sns/oauth2/refresh_token?
      appid=APPID&
      grant_type=refresh_token&
      refresh_token=23_ivXL7QsljTjYUJaifpGajw6DaWu3N-2A5-GewcFpSEK_xZ_CSBGBJ35HpXS-qa4

      返回参数

      结果:
      { 
      "access_token":"ACCESS_TOKEN", 		接口调用凭证
      "expires_in":7200, 				access_token接口调用凭证超时时间,单位(秒)
      "refresh_token":"REFRESH_TOKEN", 		用户刷新access_token
      "openid":"OPENID", 				授权用户唯一标识
      "scope":"SCOPE" 				用户授权的作用域,使用逗号(,)分隔
      }

       

    4. 请求以下连接查询用户基本信息 参数:access_token=填写上一步获取的access_token,openid=填写上一步获取的openid

    https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openid=openid

    返回参数

    结果:
    {"openid":"ooooooooooooo",
    "nickname":"朝",
    "sex":1,
    "language":"zh_CN",
    "city":"Hangzhou",
    "province":"Zhejiang",
    "country":"CN",
    "headimgurl":"http:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTIlicQP4zdmtiaDkLEus7e8GMHZXnnD2YqLWpgEPl5QGPAKe02x4nMwZricqBOzo8gF0mm3gLyL0zh2Q\/132",
    "privilege":[],
    "unionid":"oniwU5vxax7qU27Xdy3Cb-MYvYeE"}

     

     

     

     

     

     

     

     

     

    展开全文
  • 主要介绍了Android调用微信登陆、分享、支付的相关资料,需要的朋友可以参考下
  • 易语言微信登陆例子

    2018-10-14 19:42:45
    一段易语言微信登陆例子,主要是获取微信登陆后用户头像等信息
  • 粗仿微信登陆界面.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • VUE微信开放平台实现网站微信登陆摘要微信开放平台网站授权的流程1.总体流程图2.二维码如何获取准备工作正文开始1. 打开链接跳转2.通过定义Js对象的方式3.扫码授权后做了什么VUE中具体实现本次主要介绍通过定义js...

    一、摘要

    本文主要介绍两点:
    1.微信开放平台网站授权的流程(非原理)
    2.VUE如何使用微信开放平台开发微信授权登陆的功能,以及本地如何进行测试

    二、微信开放平台网站授权的流程

    1.总体流程图

    总体流程图

    2.二维码如何获取

    准备工作

    首先,在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。(前端只需要AppId)

    正文开始

    有两种方法获取二维码,一是直接通过在PC端打开链接获取跳转页面获取;二是引入微信登陆JS文件,通过定义微信JS对象,在本页面获取,不需要跳转页面。

    1. 打开链接跳转

    前端打开如下链接
    https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    例如:
    https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.com%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect
    在这里插入图片描述

    2.通过定义Js对象的方式

    在页面中先引入如下JS文件(支持https)

    http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js
    

    在需要使用微信登录的地方实例以下JS对象:

    var obj = new WxLogin({
     self_redirect:true,
     id:"login_container", 
     appid: "", 
     scope: "", 
     redirect_uri: "",
      state: "",
     style: "",
     href: ""
     });
    

    在这里插入图片描述

    3.扫码授权后做了什么

    用户允许授权后,前端将会重定向到redirect_uri的网址上,并且带上code和state参数

    redirect_uri?code=CODE&state=STATE
    

    前端调后端接口将code传给后端,后端进行以下处理

    1. 网站后台接收到code,表明微信开发平台同意数据请求
    2. 网站后台根据code参数,再加上AppID和AppSecret请求微信开发平台换取 access_token
    3. 微信开发平台验证参数,并返回 access_token
    4. 网站后台收到 access_token 后即可进行参数分析获得用户账号数据

    后端处理完后返回将前端所需要的数据,前端看是要直接登陆,还是先跳回登录页进行绑定账号。

    三、VUE中具体实现

    本次主要介绍通过定义js对象的方式获取二维码

    // 设置微信二维码函数
        setWxerwma () {
          const s = document.createElement('script')
          s.type = 'text/javascript'
          s.src = 'https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js'
          const wxElement = document.body.appendChild(s)
          const uri = `${window.location.origin}callback/wx/` // 这里是你的回调uri
          wxElement.onload = () => {
            const obj = new WxLogin({
              id: 'wx_login_container', // 需要显示的容器id
              appid: this.appId, // appid wx*******
              scope: 'snsapi_login', // 网页默认即可
              redirect_uri: encodeURIComponent(uri), // 授权成功后回调的url
              state: Math.ceil(Math.random() * 1000), // 可设置为简单的随机数加session用来校验
              style: 'black', // 提供"black"、"white"可选。二维码的样式
              href: this.QRCodeStyle // 外部css文件url,需要https
            })
            if (!obj) {
              console.error('wx-error')
            }
          }
    

    外部css文件url,需要https,我们没有,可以将样式转化为base64写入

    @charset "UTF-8";
    .impowerBox .title {display: none;}
    .impowerBox .info {display: none;}
    .status_icon {display: none}
    .impowerBox .status {text-align: center;} 
    // 二维码样式转化为base64
          QRCodeStyle: `data:text/css;base64,QGNoYXJzZXQgIlVURi04IjsNCi5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9DQouaW1wb3dlckJveCAuaW5mbyB7ZGlzcGxheTogbm9uZTt9DQouc3RhdHVzX2ljb24ge2Rpc3BsYXk6IG5vbmV9DQouaW1wb3dlckJveCAuc3RhdHVzIHt0ZXh0LWFsaWduOiBjZW50ZXI7fSANCg==`
    

    二维码扫完并授权后会回调到所配置的uri上,在这个页面自行处理逻辑,看是要直接登陆,还是先跳回登录页进行绑定账号。

    本地如何调试

    进入微信开放平台,进入管理中心,点开自己的应用,如下图
    在这里插入图片描述
    在最下面的开发信息中的授权回调域改为localhost即可,有端口号要写上端口号
    在这里插入图片描述

    注意:在本地测试完后,将授权回调域再改为线上的地址。

    四、参考文献

    1.某跳动面试官:说说微信扫码登录背后的实现原理?
    2.微信开放平台官方文档

    展开全文
  • 理解如下: 这个默认显示的二维码其实是个固定的链接地址 扫描之后,发送请求到微信开放平台,获取code ... 获取access token之后,就可以调用微信接口获取用户信息了,包括昵称、照片等等 另.
  • 微信登陆OAuth2

    2020-06-01 21:27:37
    大致思路有了,我们来细化一下 先理解一下什么是OAuth2 O:用户权限 是针对特定问题的一种解决方案 主要解决两个问题:1、开放系统间的授权 2、分布式访问的问题 比如:Lucy照了很多照片,把这些照片放到百度云上,...
  • java微信登陆demo

    2018-02-26 16:22:57
    一个简单的java语言后端微信登陆的demo,如果有需要就拿去吧。。。
  • 模拟微信登陆操作手册 功能说明 功能说明:本操作手册成功后开发人员可模拟微信登陆,便于开发人员最终前端、后台代码。 准备工作 安装natapp 安装步骤参考:https://www.jianshu.com/p/cc1b1050b5b4 登录...
  • 微信获取好友信息&获取微信聊天信息&微信登陆(通过http抓包)。。。。。。。。。。。。。
  • 判断是否微信登陆

    2020-04-01 11:17:15
    // 封装一个函数 function isWeiXin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == 'micromessenger') { return true; } else { return false;...
  • 都是鹅厂自家兄弟,腾讯和QQ自然懂得互通有无、和谐共处才是正道。这不,日前名为“腾讯QQ”的小程序出现在微信平台,用户可以在微信上直接查看QQ消息。长按扫码回复“qq”获...
  • 企业微信登陆

    2019-04-05 10:52:00
    前记:包括微信和QQ等等OAuth登陆接口,以及各种支付接口未掌握 企业微信登陆流程 转载于:https://www.cnblogs.com/bqwzx/p/10658167.html

空空如也

1 2 3 4 5 ... 20
收藏数 5,597
精华内容 2,238
关键字:

微信登陆