从这篇文章开始,将陆续介绍微信公众号的开发过程,使用测试账号,代码不进行封装,便于大家浏览理解。

在没有正式账号的时候,为了方便开发人员开发调试,微信提供了测试账号,供开发人员在开发阶段使用。

如图申请了正是账号,这些操作是可以在微信公众号平台进行操作的。

打开申请地址http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,无需注册,用微信扫描页面上的二维码,即可生成对应的公众号账户。扫描成功后,会自动生成appID及appsecret。信息如下:

红色框内是自动生成的,蓝色框内需要你自己填写。首先需要你有一个公网的API接口,这个接口将用来验证以及和微信进行交互(比如发送信息、图片等)。

如果自己没有服务器,那可以用一些内网穿透工具进行内网映射,比如NATAPP,NGROK等。

URL是验证token以及和微信交互的接口,GET请求是验证,POST请求是接受微信(比如底部菜单点击)发送过来的消息。

Token验证

这里以JAVA语言为例,进行接口编写。

通过NATAPP映射本地8080端口,得到公网临时域名http://2ucvzp.natappfree.cc,然后创建一个SpringBoot项目,编写验证接口。

当填写好URL和Token,并点击提交,微信会调用你刚刚填写的URL,并传入一些参数(文档参考https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html),你要按照微信的要求对参数进行处理,然后按规则返回。

接口代码如下,微信传来四个参数signature,timestamp,nonce,echostr。

@RestController
@RequestMapping("/weixin")
public class WeiXinController {@GetMapping(value = "/checktoken")public String checkToken(@RequestParam(value = "signature") String signature,@RequestParam(value = "timestamp") String timestamp,@RequestParam(value = "nonce") String nonce,@RequestParam(value = "echostr") String echostr){
//第一个元素"menghui"就是你接口配置信息里填写的那个Token,要保持一致String[] arr = new String[] { "menghui", timestamp, nonce };Arrays.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 = Utils.byteToStr(digest);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}boolean valid = tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;if (valid)return echostr;elsereturn null;}

字节处理函数

    public 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 String byteToStr(byte[] byteArray) {StringBuilder strDigest = new StringBuilder();for (int i = 0; i < byteArray.length; i++) {strDigest.append(byteToHexStr(byteArray[i]));}return strDigest.toString();}

上面的代码写好后,就可以将完整的URL路径填写在接口配制信息中了。点击提交,成功后,变成不可输入的状态(可以点击修改进行更正,因为内网穿透服务每次重启,都会变化域名,所以这个修改还是很有用的)。

这样就接入成功了,同时在该页面下方还会有你的测试公众号的二维码,你可以扫码关注,后面将继续讲解其他操作。

微信公众号开发(一)——测试账号申请相关推荐

  1. 微信公众号开发的测试账号配置

    1.首先,你需要一个具有公网IP的域名 例如www.demo.com,它的域名解析的IP是123.123.123.123 2.在微信公众平台登录你的账号 微信公众平台:https://mp.weixi ...

  2. 微信公众号开发以及测试公众号菜单配置

    微信公众号开发 测试号申请 测试号配置 公众号菜单配置 1.获取access_token 2.新增自定义菜单 微信扫描关注公众号微信公众平台 测试号申请 1.测试号申请 开发的时候需要一个个人的公众号 ...

  3. 微信公众号开发以及测试公众号前端自测网页授权

    测试号申请(开发的时候需要使用微信测试号进行开发) 微信测试号申请地址 进入网页之后选择微信登陆,直接用微信扫码登录,微信测试号就申请成功了 测试号配置 申请成功之后会有一个测试号管理界面 1.会自动 ...

  4. 使用花生壳搭建微信公众号开发(测试)统一环境。

  5. 微信公众号开发:获取openId和用户信息(完整版)

    注:之前总结怎么进行本地公众号开发调试,时间一长忘记开发配置却忘了,所以这里记录一下公众号开发配置,方便快速上手. 目录 开发前服务器配置 网页授权获取用户基本信息 snsapi_base snsap ...

  6. 微信公众号开发-测试公众号账号及本地环境搭建(一)

    https://www.cnblogs.com/fengzheng/p/5023678.html 测试公众号 微信公众号有订阅号.服务号.企业号,在注册的时候看到这样的信息,只有订阅号可以个人申请,服 ...

  7. 连小白都能看懂的微信开发之测试账号申请

    微信测试账号申请 由于用户体验和安全性方面的考虑,微信公众号的注册有一定门槛,某些高级接口的权限需要微信认证后才可以获取. 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,我们推 ...

  8. 微信公众号开发测试部署步骤

    一.申请微信公众账号测试号: 因本地开发自己公众号无法认证,所以在本地开发时需要用微信公众账号测试号申请系统:申请步骤如下: 登录注册自己的微信公众平台,选择左侧菜单栏中开发-开发者工具,出现的页面点 ...

  9. 微信公众号开发笔记(四)搭建本地测试环境

    上一章给大家分享的是开发微信公众号(三) , 今天继续更新第四篇 搭建本地测试环境. 推荐一款软件: Ngrok(内网穿透工具) Ngrok可以实现内网穿透,也就是说我们可以将内网的服务器映射到外网给 ...

  10. 微信公众号 服务器配置 token 测试,微信公众号开发:基本配置Token验证简单事件回复...

    公众号配置的URL就是你自己服务器上验证TOKEN的方法的地址 比如我验证TOKEN的方法访问地址是http://www.aaa.cn/wx_api.php 那我公众号配置的URL就要填http:// ...

最新文章

  1. 如何高效的管理团队?提高组织能力是关键!
  2. Cookie与Web Storage的区别
  3. mysql单库tps_MySQL数据库三个关键性能指标--TPS\QPS\IOPS
  4. C++中使用new和delete运算符实现二维数组的操作
  5. go slice切片详解:定义、遍历、追加切片、切片拷贝
  6. 《移动应用开发》作业——JavaScript
  7. swift5.x基础知识入门
  8. 想了好久 请多多指教
  9. http 路径 |_HTTP 请求與响应的格式及 curl 命令使用
  10. MATLAB基础教程(6)——使用matlab求解线性方程组
  11. idea base64encoder没有jar包_老师,免费版的IDEA为啥不能使用Tomcat?
  12. GEE学习笔记3-导出table数据
  13. 线性插值 多项式插值 样条插值 牛顿插值总结
  14. javascript 字符串中单引号和双引号区别
  15. 51单片机两只老虎c语言程序,基于51单片机蜂鸣器的两只老虎音乐代码
  16. 软件测试文档模板 ppt,软件工程课件:软件测试用例文档模板.doc
  17. 定积分(Definite Integral)
  18. 提问的力量四:提问的艺术-体验学习中提问的技巧
  19. 计算机ms高级应用科目一 科目二考什么,科目一、科目二、科目三、科目四都考什么?全都在这儿了!...
  20. MATLAB实现中频正交采样(数字下变频)

热门文章

  1. 入门OJ:郭嘉的消息传递
  2. UE4 C++ 事件
  3. 【一点分享】Mysql高级特性:Event定时任务,用作定时调度ETL也很香。
  4. cube配置定时器ETR2模式测频实验
  5. Python Flask学习_使用flask-login实现认证蓝本(二)
  6. http://blog.csdn.net/lnb333666/article/details/8546497
  7. mysql secure file_mysql secure-file-priv选项问题的解决方法
  8. lol服务器不稳定领皮肤,LOL免费领“源代码娜美”皮肤 官方致歉游戏卡顿问题...
  9. namesilo域名注册教程
  10. P3390 【模板】矩阵快速幂