文档章节

微信企业号关注二次验证配置详细讲解-Java

闪电
 闪电
发布于 2015/05/18 22:30
字数 836
阅读 95
收藏 0

上个星期有几个朋友叫我出一篇关于微信企业号二次验证的教程,苦于前段时间没时间就没写,今天晚上不上班,就给大家

一篇福利吧,我们先来看看微信官方的API文档怎么说

二次验证

企业在开启二次验证时,必须填写企业二次验证页面的url。当员工绑定通讯录中的帐号后,会收到一条图文消息,引导员工到企业的验证页面验证身份。在跳转到企业的验证页面时,会带上如下参数:code=CODE&state=STATE,企业可以调用oauth2接口,根据code获取员工的userid。

企业在员工验证成功后,调用如下接口即可让员工关注成功。

  • 请求说明

Http请求方式: GET

https://qyapi.weixin.qq.com/cgi-bin/user/authsucc?access_token=ACCESS_TOKEN&userid=USERID

  • 参数说明
参数 必须 说明
access_token 调用接口凭证
userid 员工UserID
  • 权限说明

管理员须拥有userid对应员工的管理权限。

  • 返回结果
{
   "errcode": "0",
   "errmsg": "ok"
}
API里很详细的说到,当用户在关注企业号的时候,如果通讯录里没登记你的一些信息的时候,会关注失败,给你返回一段话:
该信息未在企业号登记,请确保信息的正确性重新提交,如有疑问,请联系管理员。
说明我们关注企业号需要先在微信企业号后台通讯录里添加用户信息,并且需要在微信企业号后台——设置里开启二次验证,并且填写二次验证页面,当用户已经登记过,且信息核对无误,微信会返回一个图文给还未关注的用户,用户点击图文将定向到二次验证页面,并且携带code=CODE&state=STATE参数,我们可以结合OAuth 2.0接口获取用户ID
二次验证页面:

关注成功之前:

关注成功:

二次验证类 SecondaryVerification 源码:
package jsp.weixin.oauth2.util;
/**
 * 企业号二次验证
 * @author Engineer-Jsp
 * @date 2014.10.25
 * */
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jsp.weixin.ParamesAPI.util.ParamesAPI;
import jsp.weixin.ParamesAPI.util.WeixinUtil;
import net.sf.json.JSONObject;
public class SecondaryVerification extends HttpServlet{
	private static final long serialVersionUID = 1L;
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		  // 将请求、响应的编码均设置为UTF-8(防止中文乱码)
		 request.setCharacterEncoding("UTF-8");
		 response.setCharacterEncoding("UTF-8");
		 PrintWriter out = response.getWriter();
		 String code = request.getParameter("code"); 
		  if (!"authdeny".equals(code)) {
		  // 调取凭证
		  String access_token = WeixinUtil.getAccessToken(ParamesAPI.corpId, ParamesAPI.secret).getToken();
		  // 打印凭证
		  out.print("凭证:"+access_token);
		  // agentid 跳转链接时所在的企业应用ID 管理员须拥有agent的使用权限;agentid必须和跳转链接时所在的企业应用ID相同
		  String UserID = GOauth2Core.GetUserID(access_token, code, "1");
		  // 二次验证地址
		  String RequestURL = ParamesAPI.Secondary_verification.replace("ACCESS_TOKEN",access_token).replace("USERID", UserID);
		  // 二次验证返回数据
		  JSONObject jsonObject = WeixinUtil.HttpRequest(RequestURL, "GET", null);
		  // 二次验证结果
		  out.print("二次验证返回结果:\n"+jsonObject);
		  // 传值
		  request.setAttribute("jsonObject", jsonObject);
		  }
		  else{
			  out.print("Code获取失败,至于为什么,自己找原因。。。");
		  }
	}
//	public static void main(String[] args) {
//		System.out.println(WeixinUtil.URLEncoder("http://121.40.195.86/WeiXinEnterprises/SecondaryVerification"));
//	}
}

XML配置:
<!-- 二次验证 -->
       <servlet>  
        <servlet-name>SecondaryVerification</servlet-name>  
        <servlet-class>  
            jsp.weixin.oauth2.util.SecondaryVerification  
        </servlet-class>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>SecondaryVerification</servlet-name>  
        <url-pattern>/SecondaryVerification</url-pattern>  
    </servlet-mapping>

代码不是很多,关键是思路要清晰,好了,二次验证的代码就这么多,大家好好消化消化吧~ o(∩_∩)o

本文转载自:http://blog.csdn.net/jspping/article/details/40454877

闪电
粉丝 75
博文 392
码字总数 6789
作品 0
海淀
技术主管
私信 提问
weixin-java-tools 1.1.0 发布,重大更新版本

weixin-java-tools 1.1.0 发布(重大更新) issue #23 添加日志输出 issue #66 微信消息去重 issue #69 添加Session支持 issue #71 用xstream替换了jaxb issue #72 企业号成员的avatar和sta...

jarchan
2015/01/23
3.9K
3
UCKeFu 1.3.0 发布,增加运营监控 API

UCKeFu v1.3.0 发布,UCKeFu 基于 JAVA 语言开发,是一个全渠道融合的客户支持服务平台,聚合企业内部多个客服渠道,帮助各种行业各种规模的企业建立完整客服体系。 通过将邮件、短信、电话语...

优客服多渠道客服系统
2017/04/24
1K
3
JEEWX 微信企业号管家开源版本 1.0 发布

JEEWX微信企业号管家(开源|免费),是一款针对微信企业号的Java开发平台。 简介 JEEWX微信企业号平台,基于jeecg3.6.3快速开发平台实现的。 jeewx的目的是最大化的简化微信开发的流程,使用...

Jeecg
2016/04/25
4.6K
0
微信订阅号自定义菜单java开发

小弟应运营要求要更改公众号菜单,本以为是在公众号官网上进行配置即可,,谁知道 竟然是开发者模式编辑的。无奈,从未接触过公众号开发的我。有开始啃开了微信开发的api,原来的做这个得小伙...

明瞐
2018/11/21
72
0
weixin-java-tools 1.1.5 微信公众企业开发SDK

@jarchan 发布一下具体的更新记录吧 看了一下代码,应该是更新了微信支付模块。 本项目特性: 不依赖任何mvc框架 也不依赖servlet,仅仅作为工具使用,可轻松嵌入到任何系统里(可能会有gso...

简单代码
2015/05/27
4.1K
18

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
4分钟前
0
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
10分钟前
1
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
25分钟前
1
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
26分钟前
1
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
57分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部