精华内容
下载资源
问答
  • 微信Wechat

    2017-01-19 16:03:03
    微信Wechat
  • WeChat电脑微信多开

    2020-10-18 02:56:15
    WeChat电脑微信多开-win WeChat电脑微信多开-win WeChat电脑微信多开-win
  • 第三方平台系列文章,今天终于又开始更新了,今天继续学习微信wechat)授权第三方登录 一、准备工作 1、申请微信公众测试号 由于我们是个人开发者,我们需要去注册申请一个微信公众平台的测试号 ...

    第三方平台系列文章,今天终于又开始更新了,今天继续学习微信(wechat)授权第三方登录

    一、准备工作

    1、申请微信公众测试号

    由于我们是个人开发者,我们需要去注册申请一个微信公众平台的测试号

    https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
    

    微信公众平台
    我们使用微信扫码登录后,我们可以拿到 appID 和 appsecret

    测试号管理

    2、关注公众测试号

    测试号二维码

    3、配置回调域名

    在“网页服务”中找到“网页账号”,修改“网页授权获取用户基本信息”接口的回调域名

    修改接口信息
    授权回调页面域名
    注意:这里说的是,配置网页授权回调页面 域名,跟我们平常对接的第三方接口不一样,不用填写完整的回调地址,只是回调域名,回调地址在回调域名之下

    • 例如
      回调地址:http://www.baidu.com/wechat/back
      那么这里:baidu.com

    新手一般在这里容易弄混,配置完成,点击“确认”即可

    二、开始开发

    1、获取应用信息

    我们将获取到的 appID 和 appsecret 写在配置文件中,我这里是 SpringBoot 项目,我就放在 application.yml 文件中

    配置信息

    2、引入 maven 依赖

    <!-- 网络请求 -->
    <dependency>
    	<groupId>org.apache.httpcomponents</groupId>
    	<artifactId>httpclient</artifactId>
    	<version>4.5.6</version>
    </dependency>
    <!-- alibaba的fastjson -->
    <dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>fastjson</artifactId>
    	<version>1.2.51</version>
    </dependency>
    

    这里我们需要用到网络请求,和 JSON 对象的转换,所以我引入了 httpclient 和 fastjson,其余依赖请自行引入

    3、从配置文件中获取 “wechat” 配置信息

    /**
     * 公众平台提供的 appid 和 appsecret
     */
    @Value("${wechat.oauth.appid}")
    public String APPID;
    @Value("${wechat.oauth.appsecret}")
    public String APPKEY;
    @Value("${wechat.oauth.callback}")
    public String URL;
    

    4、重定向到授权页面

    /**
     * 请求授权页面
     */
    @RequestMapping("/auth")
    public String token(HttpSession session) throws Exception {
        // 用于第三方应用防止CSRF攻击
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        session.setAttribute("state", uuid);
    	// Step1:获取Authorization Code
        String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" +
                "appid=" + APPID +
                "&redirect_uri=" + URLEncoder.encode(URL) +
                "&response_type=code" +
                "&scope=snsapi_userinfo" +
                "&state=" + uuid +
                "#wechat_redirect";
        return PasswordUtils.redirectTo(url);
    }
    
    • Step1 参数解释如下:
    参数是否必须说明
    appid公众号的唯一标识
    redirect_uri授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
    response_type返回类型,请填写code
    scope应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
    state重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
    #wechat_redirect无论直接打开还是做页面302重定向时候,必须带此参数

    授权页面
    这时,我们访问,便会出现授权页面

    5、授权回调

    /**
     * 授权回调
     */
    @GetMapping(value = "/callback")
    public void callback(HttpServletRequest request) throws Exception {
        HttpSession session = request.getSession();
        // 得到Authorization Code
        String code = request.getParameter("code");
        // 我们放在地址中的状态码
        String state = request.getParameter("state");
        String uuid = (String) session.getAttribute("state");
    
        // 验证信息我们发送的状态码
        if (null != uuid) {
            // 状态码不正确,直接返回登录页面
            if (!uuid.equals(state)) {
                return PasswordUtils.redirectTo("/login");
            }
        }
    
        // Step2:通过Authorization Code获取Access Token
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?" +
                "appid=" + APPID +
                "&secret=" + APPKEY +
                "&code=" + code +
                "&grant_type=authorization_code";
        JSONObject resJson = HttpRequestUtils.httpRequestGet(url);
        if (null == resJson) {
            return PasswordUtils.redirectTo("/login");
        }
        String accessToken = resJson.getString("access_token");
        String openId = resJson.getString("openid");
        if (StringUtils.isBlank(accessToken) || StringUtils.isBlank(openId)) {
            return PasswordUtils.redirectTo("/login");
        }
    
        url = "https://api.weixin.qq.com/sns/userinfo?" +
                "access_token=" + accessToken +
                "&openid=" + openId +
                "&lang=zh_CN";
        // Step3: 获取微信用户信息
        resJson = HttpRequestUtils.httpRequestGet(url);
        /**
         * TODO 这时就该写自己的业务逻辑了
         */
    }
    
    • Step2 参数解释如下:
    参数是否必须说明
    appid公众号的唯一标识
    secret公众号的appsecret
    code填写第一步获取的code参数
    grant_type填写为authorization_code
    • Step3 参数解释如下:
    参数是否必须说明
    access_token网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
    openid用户的唯一标识
    lang返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

    6、网络请求方法

    Step 2 和 Step 3 均为 GET 请求方式

    /**
     * GET 请求
     */
    public static JSONObject httpRequestGet(String url) throws IOException {
        CloseableHttpClient client = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet(url);
        HttpResponse response = client.execute(httpGet);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            String result = EntityUtils.toString(entity, "UTF-8");
            return JSONObject.parseObject(result);
        }
        httpGet.releaseConnection();
        return null;
    }
    

    三、文档资料

    关于微信授权登录的文档地址如下:

    https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
    

    四、总结

    该授权认证过程符合 OAuth2 认证基本流程,对于应用而言,其流程由获取Authorization Code和通过Authorization Code获取Access Token这2步组成,如图所示:

    OAuth授权认证

    如您在阅读中发现不足,欢迎留言!!!

    展开全文
  • wechat4u: 微信 wechat web 网页版接口的 JavaScript 实现,兼容Node和浏览器,微信机器人
  • wechat:微信-源码

    2021-03-21 10:13:46
    wechat:微信
  • Nopcommerce WeChat微信授权插件
  • 微信开发者工具(wechat_web_devtools) Linux版微信小程序Linux版,支持最新微信小程序开发和微信网页开发- yuan1994 / wechat_web_devtools
  • 微信Api/WeChatApi 狗子微信Api、微信机器人、微信api、微信发卡机器人、微信聊天机器人。 基于Windows平台开发的微信Api,仅支持2.9.0.122版本。 仅供学习,禁止非法用途! 文件 WeChat2.dll:客户端 WeChatclient....
  • wechat1.5 微信1.5

    2016-10-12 09:32:15
    wechat1.5 微信1.5 可以发送图片版本
  • wechat 微信公共平台消息接口服务中间件 weixin-robot 微信公共帐号自动回复机器人 A Node.js robot for wechat. wechat-oauth 授权 wechat-api Wechat API/主动调用API wechat sdk开发常用包 wechat-oauth wechat-...
  • laravel-wechat 微信sdk

    2019-05-05 11:48:31
    微信 SDK for Laravel 5 / Lumen, 基于 overtrue/wechat
  • 微信WeChat多开

    2021-10-12 10:40:54
    方法一: 新建文本本档 ...修改上面地址为自己微信的地址 保存,修改txt文件为bat文件 双击执行即可 方法二: 由于上面的路径必须是中文才可以,所以如果路径是中文的情况下,可以使用这个方案 window

    方法一:

    1. 新建文本本档
    2. 以下命令放入文档中
    	@echo off	
    	start "" "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
    	start "" "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
    	exit
    
    1. 修改上面地址为自己微信的地址
    2. 保存,修改txt文件为bat文件
    3. 双击执行即可
      方法二:
      由于上面的路径必须是中文才可以,所以如果路径是中文的情况下,可以使用这个方案
    4. window + R
    5. cmd进入黑窗口
    6. 进入微信的exe路径下
    7. 输入命令:start WeChat.exe&WeChat.exe(就可以启动两个了)
    展开全文
  • 微信登录图标wechat.png

    2020-05-06 10:19:00
    微信图片。 ../../images/login/wechat.png 微信小程序 制作微信一键登录按钮 微信用户一键登录
  • 微信电脑版WeChat.exe

    2021-06-19 15:42:27
    微信电脑版WeChat.exe
  • wechat 快速微信平台开发
  • 微信源码java WeChat_jump 微信跳跳java源代码
  • java 开发微信公众号源码 wechat java微信公众号开发源码
  • weChat:微信api-源码

    2021-06-13 09:35:13
    微信接口的一层简单封装 设置Wechat.php define("TOKEN", "微信密钥"); define("ACCOUNT", "你的微信公众帐号"); define("PASSWORD", "你的微信公众密码"); define("METHOD", "redis或者file"); 几个参数 示例代码...
  • wechat_pc_api使用HOOK技术将核心功能封装成dll,并提供简易的接口给程序调用。 您可以通过扩展wechat_pc_api来实现: 监控或收集微信消息 自动消息推 聊天机器人 通过微信远程控制你的设备 测试可以使用语言有C / C...
  • wechat 微信框架代码
  • wechat.class.php 微信例子wechat.class.php 微信例子wechat.class.php 微信例子
  • Wechat Robot是一个WordPress插件,实现了WP站点和微信公众号的连接,支持自动回复、文章搜索、订阅回复、微社区入口等功能。 Wechat Robot使用PHP语言,稍作改动可以即可以在非Wordpress环境下使用。
  • 无法从Work Wechat接收/发送消息。 如果您想打破以上限制,请考虑使用Wechaty Puppet而非Web API,例如 。 在了解有关Puppet的更多信息:Puppet 中国开发商注意事项 由于storage.googleapis.com在中国大陆被禁止...
  • WECHATY-木偶-WECHAT4U 微信微信公众号 请参阅: 关于WECHAT4U 是一个出色的微信bot框架,支持Node.js和浏览器,具有丰富的功能和活跃的经验丰富的贡献者社区。 已知限制 2017年之后迁移的微信账号无法登录Web微信...
  • Wechat_wechat_微信_源码

    2021-09-29 05:45:53
    做一个注册界面和登录界面,然后进行微信消息发送
  • 导出和引入保持微信登录的必要数据bot.botData( ) bot.updateRemarkName(UserName,RemarkName)( ) 修改群名bot.updateChatRoomName(ChatRoomUserName,NewName)( ) bot.forwardMsg(msg,toUserName)...
  • Restify & Mysql & Nodejs 微信后台脚手架 · 使用Nodejs最流行的restful api框架 · 使用最流行的Mysql数据库 · 热更新(src/api) · 支持小程序授权(xcx_autho.js) · 更多功能待更新... 使用方法 下载脚手架 ...
  • Open-Falcon微信告警组件 在此 感谢 @laiwei 的 项目代码支持 感谢 @chanxuehong 老司机的微信SDK支持 申请微信企业号 在 注册微信企业号,不需要认证即可 配置企业号 在企业号里建立应用,依此点击:企业应用-创建...
  • wechatsdk weixin微信项目例子

    千次下载 热门讨论 2014-03-14 11:17:18
    wechatsdk 封装了微信所有接口 使用该sdk只需要两个类即可构建微信项目 内含: WechatSDK帮助文档1.0.chm 微信SDK使用说明 项目demo例子 sdk的源码也已经上传到github上 地址:...
  • 微信 微信SDK for Elixir 目前Elixir中支持最完善的微信SDK 已支持:公众号/小程序/第三方应用 在制品:企业微信 安装 您可以在项目中使用微信,方法是将其添加到mix.exs依赖项中: def deps do [ { :wechat , " ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,198,664
精华内容 479,465
关键字:

wechat