通过微信开发测试号进行微信登录
微信开发测试号进行微信登录
1.测试账号获取
1.微信进行注册https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
2.内网穿透
这里我用的是utools
使用http://www.u.tools/工具,其中有内网穿透的功能,可以将服务提供到公网访问
3.填入回调地址
1.点击修改就可,填入信息为utools工具的外网链接
4.通过微信官方开发文档进行开发
1 第一步:用户同意授权,获取code
2 第二步:通过code换取网页授权access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
只需要引导关注公众号的用户点击https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect链接即可进行访问测试。
//此段代码为一个http工具类,传入rul可以直接访问,返回值为浏览器的响应数据
public class HttpUtils {public static final String DEFAULT_CHARSET = "utf-8";public static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);public static String doGet(String baseUrl, Map<String, String> paramMap) {StringBuffer queryString = new StringBuffer();for (String param : paramMap.keySet()) {String value = paramMap.get(param);if (!StringUtils.isEmpty(value)) {try {value = URLEncoder.encode(value, DEFAULT_CHARSET);} catch (UnsupportedEncodingException e) {e.printStackTrace();}queryString.append(param).append("=").append(value).append("&");}}return doGet(baseUrl, queryString.toString());}/*** 向指定URL发送GET方法的请求** @param baseUrl 发送请求的URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String doGet(String baseUrl, String param) {String result = "";BufferedReader in = null;try {String urlNameString =baseUrl;if(!StringUtils.isEmpty(param)){urlNameString = baseUrl + "?" + param;}logger.info("http请求:" + urlNameString);URL realUrl = new URL(urlNameString);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");connection.setRequestProperty("Charsert", DEFAULT_CHARSET);connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接connection.connect();if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {logger.info(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}}} catch (Exception e) {logger.info("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}public static String doGet(String baseUrl) {return doGet(baseUrl,"");}/*** 向指定 URL 发送POST方法的请求** @param url 发送请求的 URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return 所代表远程资源的响应结果*/public static String doPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");connection.setRequestProperty("Charsert", "UTF-8");connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行connection.setDoOutput(true);connection.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(connection.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {logger.info("发送 POST 请求出现异常!" + e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}
}
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
}
通过微信开发测试号进行微信登录相关推荐
- php 微信开发 自动回复,关于微信自动回复的详细介绍
最近发现了一个特别好玩的Python 微信库itchat,可以实现自动回复等多种功能,下面这篇文章主要给大家介绍了利用python微信库itchat实现微信自动回复功能的相关资料,需要的朋友可以参考学 ...
- 微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证
微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证 技术qq交流群:JavaDream:251572072 ------------------------- ...
- php处理微信消息,微信开发之处理微信客户端发来的消息
在上一篇微信开发的博文中微信开发(01)之如何成为开发者,我们开启了微信开发者模式,本篇博文我们简单的处理微信关注者发给我们公众号的消息. 在开启微信开发者模式时,我们配置了一个URL地址,当我们提交 ...
- php 微信开发 自动回复,laravel 微信开发-自动回复
laravel 微信开发-自动回复 1.微信公众号的逻辑,用户关注了你的微信公众号后,假设用户发送了一条消息给你的公众号,实际上是先发送到腾讯的服务器上,腾讯把内容转成特定的xml格式,再转发到你指定 ...
- 【PHP+微信开发】之微信扫码登录
目录 一.数据表 二.获取token 三.生成二维码 四.扫码,并接收回调 五.检测二维码是否扫描成功 微信扫码登录总体说明:先获取token和ticket,通过微信生成二维码接口生成二维码,把二维码 ...
- 微信开发学习二 -- 微信开发入门(简单demo)
一.微信公众平台的基本原理 在开始做之前,先简单介绍了微信公众平台的基本原理. 微信服务器就相当于一个转发服务器,终端(手机.Pad等)发起请求至微信服务器,微信服务器然后将请求转发给我们的应用服务器 ...
- java做微信开发工具_Java微信公众平台开发(14) 微信web开发者工具使用
为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信客户端的表现,使得开发者可以使用这个工具方便地在 PC 或者 Mac 上进行开发和调 ...
- php+微信开发+解绑,微信开发之解绑设备通知的方法
本篇文章一起来了解微信开发之解绑设备通知的方法 一开始进行解绑的时候,我一直用的强制解绑设备通知.微信在开发者文档中和接口权限中都没有说明这个接口有次数限制,直到最近两天,解绑一直失败才发现,原来这个 ...
- 微信开发 免费服务器,微信开发详解:[1]免费服务器
微信公众平台有两种模式,一种是编辑模式,一种是开发模式,编辑模式就是制定一些关键字回复就可以了,开发模式的话就是我们要讲解的内容,首先要有一个服务器,用来运行我们写的php程序,然后注册微信公众账号并 ...
最新文章
- cmakelist 定义变量
- C++使用thread类多线程编程
- druid seata 配置_五分钟带你了解Seata分布式事务
- 2020年中国服装行业数据中台研究报告
- 【Java NIO】一文了解NIO
- 运行cmd状态下MySQL导入导出.sql文件
- [蓝桥杯2017决赛]平方十位数-枚举+set去重
- 混合多云架构_混合多云每个人都应避免的3个陷阱(第1部分)
- icml和nips等各类重要会议论文收集
- 使用Mockito对类成员变量进行Mock
- 【书单】推荐几本AI好书
- 玄元剑仙手游最新服务器,玄元剑仙最新
- Android 对Layout_weight属性完全解析以及使用ListView来实现表格
- identity 1 1 mysql_identity在mysql中怎么用啊以下代码的错误在哪里
- tomcat与mysql分离部署_apache+tomcat+mysql 实现动静分离
- 从RTS游戏看游戏开发-2
- 从阿里外包月薪5K到转岗正式员工月薪15K,这100多天的心酸只有自己知道...
- 王者荣耀服务器不稳定总是跳频,vivo iQOO Pro 5G手机打玩王者荣耀网络不稳定出现断流...
- Tableau画雷达图
- PR/AE基础入门操作