浙政钉扫一扫获取用户信息
浙政钉的开发文档和专有钉钉一样:但想通过浙政钉扫一扫需向发浙政钉起申请获取应用信息
这里以专有钉钉为例
1.首先先注册一个专有钉钉账户
专有钉钉开放平台开发文档:https://dg-work.cn/
根据提示完成注册
2.在我的应用下创建应用信息
这里有App Key 和 App Secret
回调地址是可以访问到你后台方法的路径
开始编写程序
1.页面部分:下面iframe中的应用标识和回到地址改成自己对应的信息,post地址改成自己后端的访问地址
作用:生成二维码,获取临时code
<!DOCTYPE html>
<html><head><title>ddQRcode.html</title><meta name="keywords" content="keyword1,keyword2,keyword3"><meta name="description" content="this is my page"><meta name="content-type" content="text/html; charset=UTF-8"></head><bodystyle="text-align:center"><iframestyle="border: medium none;" width="365" height="400" src="https://login-pro.ding.zj.gov.cn/oauth2/auth.htm?response_type=code&client_id=应用标识&redirect_uri=回调地址&scope=get_user_info&authType=QRCODE&embedMode=true"></iframe><script src="../js/jquery-1.11.2.min.js"></script><script type="application/javascript">window.addEventListener('message', function(event) {// 这里的event.data 就是登录成功的信息// 数据格式:{ "code": "aaaa", "state": "bbbb" }$.post("../zzdscan/getUserInfo",{"code":JSON.stringify(event.data)},function(res){if(res.success==true){var name = res.content.data.lastName;window.location.href="./main.html?name="+encodeURIComponent(name); }});});</script></body>
</html>
2.java controller类下:替换******号内的内容
作用:获取access_token,通过code和access_token获取用户信息
package com.jtj.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.alibaba.xxpt.gateway.shared.client.http.ExecutableClient;
import com.alibaba.xxpt.gateway.shared.client.http.PostClient;import net.sf.json.JSONObject;@Controller
@RequestMapping("/zzdscan")
public class zzdController {private static ExecutableClient executableClient;static {executableClient =ExecutableClient.getInstance();//DomainName不同环境对应不同域名,示例为sass域名//浙政钉域名:openplatform-pro.ding.zj.gov.cnexecutableClient.setDomainName("openplatform.dg-work.cn");executableClient.setProtocal("https");//应用App KeyexecutableClient.setAccessKey("******");//应用App SecretexecutableClient.setSecretKey("******");executableClient.init();}@RequestMapping(value = "/getUserInfo",produces = {"application/json;charset=UTF-8"})@ResponseBodypublic String getUserInfo(String code) {JSONObject StringCode = JSONObject.fromObject(code);String codeStr = (String) StringCode.get("code");String access_token= getToken();String api ="/rpc/oauth2/getuserinfo_bycode.json";PostClient postClient = executableClient.newPostClient(api);//设置参数postClient.addParameter("code", codeStr);postClient.addParameter("access_token", access_token);//调用APIString apiResult = postClient.post();System.out.println(apiResult);return apiResult;}public static String getToken() {String api ="/gettoken.json";PostClient postClient = executableClient.newPostClient(api);//设置参数postClient.addParameter("appkey", "******");postClient.addParameter("appsecret", "");//调用APIString apiResult = postClient.post();//将字符串转为json对象JSONObject jsonObj = JSONObject.fromObject(apiResult);JSONObject jsonObject1 = jsonObj.getJSONObject("content");JSONObject jsonObject2 = jsonObject1.getJSONObject("data");String access_token = (String) jsonObject2.get("accessToken");return access_token;}
}
pom.xml 下对应maven包:自行提取有缺失根据控制台提示自行添加
<dependencies><!--spring-boot mybatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.9.RELEASE</version></dependency><!--添加tk-mapper依赖--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>3.3.6</version></dependency><!-- alibaba的Druid(德鲁伊)数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.26</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- sqlserver jdbc --><dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>sqljdbc4</artifactId><version>4.0</version></dependency><!-- Document Elements --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.13.1</version></dependency><!-- @ResponseBody注解进行返回Response封装类 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.5</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.7</version></dependency><!-- JSONObject对象依赖的jar包 开始 --><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency><dependency><groupId>net.sf.ezmorph</groupId><artifactId>ezmorph</artifactId><version>1.0.6</version></dependency><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.2.3</version><classifier>jdk15</classifier><!-- jdk版本 --></dependency><!-- Json依赖架包下载结束 --></dependencies>
这里是宁波浙政钉信息申请地址https://yida-pro.ding.zj.gov.cn/alibaba/web/APP_XG44H7NA6ZV5K05ZZ8RE/inst/homepage/#/
想找自己地区的自行联系客服小姐姐
到这里基本上就完成了。希望对你有所帮助。
浙政钉扫一扫获取用户信息相关推荐
- PHP 实现微信关注公众号或扫码实现获取用户信息
php微信关注公众号或扫码实现获取用户信息(内含简易框架搭建,可复用) 概述 用户可通过扫描二维码进行关注或单纯进行扫码操作,实现获取用户微信信息,提高公众号关注率 详细 流程 准备工作 准备公众号及 ...
- keycloak单点登录(浙政钉2.0扫码、手机号验证码登录)
写在前面:本篇博客只针对前端代码实现,keycloak配置什么的,自己和后端或者运维联调吧.说实在的,因为不熟悉keycloak代码的逻辑,再加上时间紧,所以搞了一些很多骚操作. 登录这些前端代码是写 ...
- 浙政钉 扫码 免登集成
Springboot+浙政钉 扫码免登 集成 初次编写博客 有不到之处 请指出 谢谢 应用上架 第一步申请isv入驻 第二步用isv账号添加用户和机构 专有钉下载地址 第三步用isv账号在团队管理授权 ...
- 项目对接浙政钉发送工作消息到浙政钉用户
项目对接浙政钉发送工作消息到浙政钉用户 一:项目背景 项目需要将设备采集的异常信息,推送给浙政钉的运维用户. 二对接浙政钉消息组件 首先需要注册isv,注册地址为 专有钉钉门户 (dg-work.cn ...
- PHP微信公众号网页授权登录 扫码登录 获取用户基本信息
前言 现在微信登录是一个网站.APP的标配,所以微信授权登录是我们应该要掌握的.微信授权登录有4种方式: 1.通过微信开放平台 2.通过认证的微信服务号 3.通过认证的微信订阅号 4.通过微信小程序曲 ...
- 关于网页版微信扫码登录以及获取用户信息
由于我只研究了1天时间,可能有些地方认知错误 1:网页版微信扫码登录的流程 ① 点击扫码登录按钮 ② qrAuthorize(访问微信接口,如果微信接口判断有权限生成二维码的话,跳转到二维码页面.) ...
- 专有钉钉 浙政钉 前端 对接流程(小程序)
主要开发流程 本公司专有钉钉开发平台账号(公司钉钉超管注册 给开发人员权限) 超管按照文档给予开发人员权限 创建项目 下载开发工具 配置专有钉钉开发环境 免登录(用户不用输入账号密码直接登录) 根据业 ...
- 浙政钉踩坑记录:真机调试-H5APP 不存在
官方文档虽说都写了,但是具体问题,没有方案--没错不好用╭(╯^╰)╮,网上可以找到的解决方案寥寥无几 统一项目背景:uniAPP写钉钉小程序(浙政钉),遇到的一些问题 一.问题:真机调试--二维 ...
- 【浙政钉】第四篇:浙政钉创建群聊、消息接入、发送
背景 浙政钉上架应用可创建群聊,和用户单聊等. 版权 本文允许转载,转载请写上原文地址,谢谢!作者:曹震 目录 一.准备工作 二.浙政钉系列 三.接口开发 1.特别说明 1.1访问IP不在白名单中,r ...
最新文章
- 安装JAVA内部错误61003_JDK1.8 安装报内部错误:61003
- 算数运算符/空值问题
- 【Java 笔记】 java 格式化输出
- 星座图(2020特长生 T4)
- [20170617]vim中调用sqlplus.txt
- Python 各种运算符 布尔运算 迭代器
- IDEA自动生成序列化ID
- Android开发笔记(六十三)HTTP访问的通信方式
- Mybatis经验总结
- jquery easyui validatebox remote使用
- JAVA ajax搜索框_JAVAEE AJAX实现搜素框关键字提示语功能
- XMind软件简易使用教程
- 2020年7月的光立方包含程序和PCB文件
- rom大小 stm32f205_最小的基于STM32F205VE的系统板
- 华为 - 路由交换基础
- png格式转eps格式
- 夜光:Java语言基础学习笔记(三)在校资源
- gdb调试 程序退出没有堆栈信息([Inferior 1 (process 12867) exited with code 0177])
- java 跨 module 引入包不成功问题
- 音频格式的汇总及压缩比较
热门文章
- 计算字符串中个某字符的数量
- 双系统:Win10+Ubuntu(UEFI启动模式)
- 二、BLDC矢量控制基础知识:SVPWM原理
- 基于MATLAB GUI的环境温湿度检测界面设计
- Centos7 查看磁盘i/o, 定位占用i/o读写高的进程
- charset参数 sqluldr2_oracle sqluldr2工具使用方法介绍
- svn建立分支linux,linux命令——svn分支創建、合並
- PCB阻抗设计及Polar Si9000 PCB阻抗计算软件的使用
- python修改app定位_appnium定位+操作方式(python)
- TurboMosaic for Mac如何制作个性化的照片马赛克拼图