ICCMO微信公众账号开发系列(1)接入微信公众账号
目录
一、申请微信公众账号
二、申请空间并上传代码
三、接入微信公众平台
四、发送一条微信信息并得到回复
没玩过微信公众账号的朋友看完之后也可以打造自己的微信公众号了。
下面是今天要实现的效果:
下面咱们来一步一步讲解。
马上动手来搭建我们的微信公众号吧!
一.申请微信公众账号
①.如果你还没有自己的微信公众号,赶紧去注册一个 点击这里去注册(是微信公众号哦,不是微信号)如果你已经申请了,请跳过着一步,直接看第二步。
点击上面的蓝色字体,跳转到如下页面。
② 填写基本信息,如下图所示
③到我们的邮箱所填写的邮箱去激活
④选择我们的公众号类型,如果我们只是个人拿来玩玩的话,我们选择订阅号就可以了,服务号是一个单位或组织申请的,如果你想玩服务号的话呢,也可以.直接花十几块钱在淘宝买一个(万能是淘宝\(^o^)/~)。
⑤最后一步
到这里我们的公众账号就注册好了。因为我之前注册过,所以身份证实名验证就不用了,一个身份证可以申请5个微信公众账号,之前实名认证的时候得等几天,如果你不想等,直接淘宝一个好了,到这里咱们的微信公众账号就注册号了
二.申请空间。
△ 什么是空间?
空间就是服务器或者虚拟主机,通俗一点讲就是咱们待会放代码的地方。如果想深入了解,请自行百度。
现在有很多免费的空间或者虚拟主机,比如新浪的SAE新浪云,百度的BAE,万网阿里云京东云各种云什么的。
貌似现在都不免费了( ⊙ o ⊙ )!。
咱们来申请一个新浪的SAE。
①点击新浪云跳转到注册页面。
用你的微博账号登录。登录之后填写基本信息。注意:要记住你填写的安全密码,后面会用到,这里有一张图我少截了。
注册成功之后点击进入用户中心,再点击导航栏上面的控制台,选择云应用SAE。
跳转到如下界面:点击创建新应用。
下面开始来创建我们的应用,也就是我们放代码的地方。域名你随意填,开发语言选PHP5.3。本篇主要用PHP开发。简单容易,快速上手。然后选择空应用。点击创建新应用。
到这里我们的空间就申请并创建好了。O(∩_∩)O哈哈~
三.接入微信公众平台。
首先我们来弄清楚微信公众号的通信原理。
当我们给微信公众账号发一个消息的时候,这个消息是去了哪里,最后回复的消息是怎么回到咱们的手机的。
看看下面这种图。
当我们发送一条消息出去的时候,这条消息首先到了微信的服务器,微信的服务器收到消息之后处理之后再转发到我们的微信公众平台,咱们的微信平台接收到消息之后再处理然后返回一条处理结果给微信公众平台,微信公众平台再发给我们手机客户端的微信。微信的服务器只是起的转发的作用。
那微信公众平台和我们的公众平台是怎么通信的呢.下面我们就来配置一下,把我们的微信公众账号接入微信公众平台。
①上传代码到新浪云SAE
登录到咱们的新浪云,点击之前创建好应用(图中画线的地方)。
点击代码管理
点击右边的创建一个新版本按钮
输入之前设置的安全密码。
跳转之后点击操作 选择上传代码包。(代码包在这里点击下载) 点击上传附件。 跳转之后咱们把这个链接给复制下来:
http://1.myiccmo.sinaapp.com/
到这里,代码上传完成。
②登录咱们之前注册号的微信公众账号。
点击开发者中心,
勾选我同意,成为开发者。
跳转之后往下拉,点击修改配置。到这里可能会跳转到资料不全跳转到不全资料界面。我们把资料补全再返回上一步。
设置地址的时候注意要设置到具体的地址,这一步的截图我就不贴了。
继续返回开发者中心,点击修改配置。
△注意: 这里的URL填刚才我们刚才复制的url。
Token填写:weixin(待会再解释为什么)。
EncodingAESKey:点击随机生成
消息加密方式:选择明文。然后提交。
这里需要注意的是,可能会出现Tonken验证失败。
为什么会出现这个情况呢?因为你的SAE没有实名认证,然后在验证接口的时候,sae给微信服务器多回复了一些js代码。那怎么解决这个问题呢。有两种办法:一.实名认证,2.最直接最快最有效的就是:在输出 $echoStr之前加上header('content-type:text')。
四 .万事具备,咱们来玩一把。
用咱们的微信关注咱们的微信公众号,咱们随便发送一条消息,它就会给咱们返回同样的消息。
今天就写到这里了,如果有什么问题,联系我:qq:648988391备注:iccmo,QQ群:429207338,定期分享资料。
下面是完整的代码:
<?php
/*** wechat php test*///define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {$wechatObj->valid();
}else{$wechatObj->responseMsg();
}class wechatCallbackapiTest
{public function valid(){ header('content-type:text');$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,the best way is to check the validity of xml by yourself */libxml_disable_entity_loader(true);$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"; if(!empty( $keyword )){$msgType = "text";$contentStr = "Welcome to wechat world!";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}else {echo "";exit;}}private function checkSignature(){// you must define TOKEN by yourselfif (!defined("TOKEN")) {throw new Exception('TOKEN is not defined!');}$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);// use SORT_STRING rulesort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}
}?>
ICCMO微信公众账号开发系列(1)接入微信公众账号相关推荐
- 微信公众号开发系列-玩转微信开发-目录汇总
引言 最遗憾的不是把理想丢在路上,而是理想从未上路. 每一个将想法变成现实的人,都值得称赞和学习.致正在奔跑的您! 在现在这个无处不在的互联网背景下,各种应用已不再仅仅局限于网页或桌面应用了,IOS. ...
- 微信小程序开发系列 (四) :微信小程序的页面跳转路由设计
笔者由于工作需要,曾经参加过一个微信小程序同 SAP 系统集成的项目,因此从零开始学习了微信小程序的开发知识.这里通过系列文章把自己所学分享出来,希望对相关学习者有所帮助. 本教程前面三篇文章: 微信 ...
- 微信小程序开发系列七:微信小程序的页面跳转
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- 微信小程序开发系列六:微信框架API的调用
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- 微信小程序开发系列五:微信小程序中如何响应用户输入事件
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- 微信小程序开发系列四:微信小程序之控制器的初始化逻辑
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 这个教程的前两篇文章,介绍了如何 ...
- 微信小程序开发系列二:微信小程序的视图设计
大家如果跟着我第一篇文章 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 一起动手,那么微信小程序的开发环境一定搭好了.效果就是能把该小程序的体验版以二维码的方式发送给其他朋友使用. 这个系列 ...
- Python 微信自动化工具开发系列04_所有微信群的群文件自动同步拷贝到群名对应的新文件夹中(2023年1月可用)
前言 一个需求需要利用Python+第三方库wxauto 用于微信上自动获取聊天信息,从而根据自己需求对信息自动进行二次处理, 比如自动回复,再比如自动发送文件或者其他.--- 记录于2022年08月 ...
- 微信小程序开发系列 (二) :微信小程序的单步调试和控制器实现步骤概述
笔者由于工作需要,曾经参加过一个微信小程序同 SAP 系统集成的项目,因此从零开始学习了微信小程序的开发知识.这里通过系列文章把自己所学分享出来,希望对相关学习者有所帮助. 本系列的前一篇文章:微信小 ...
- 微信公众号开发系列-12、微信前端开发利器:WeUI
1.前言 通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识.后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了.关于手机端的浏览器的兼容性问题相信一直是开发者们 ...
最新文章
- 数字化时代,阿里、京东们能否解决困扰市场已久的“倒奶问题”?
- 一种抑制undershoot/overshoot锐化算法介绍
- Hibernate 小结
- 编译makefile出错解决办法
- 评分卡模型开发(一)--用户数据缺失值处理
- matlab菲涅尔衍射光强分布,求助!!!用颜色表示的菲涅尔衍射的光强分布图
- thinkphp mysql order_ThinkPHP中order()的使用方法
- 电脑显示windows无服务器,win10电脑提示windows似乎未正确加载_网站服务器运行维护...
- 元宇宙007 | 沉浸式家庭治疗,让治疗像演情景剧一样!
- java 定义一个学生类,利用无参和带参方法调用
- 鸿蒙手机开发者申请,鸿蒙OS 2.0手机开发者Beta公开招募上线:P40/Mate 30可申请
- request.setHeader() 方法
- LeetCode-只出现一次的数字-哈希表-异或-py
- clearTimeout() 方法
- 用Powerpoint (PPT)制作并导出矢量图、高分辨率图
- 【大数据】MaxCompute概述
- krig matlab,EasyKrig_V3.0_Matlab2016b
- 每日一学 | 2021-05-19 | Power BI 学习笔记03、04
- cmake:通过CMAKE_CXX_COMPILE_FEATURES判断编译器是否支持C++11
- matlab求矩阵的谱半径,【什么是矩阵的谱半径?怎么求?】百度-谱半径
热门文章
- 应用安全系列之三十:任意重定向
- P8843 [传智杯 #4 初赛] 萝卜数据库
- matlab不定积分曲线族画图,matlab不定积分
- 5年从点点点到测开,写给即将进入或者正在做测试的你...
- java题目——月供计算器
- 4199病毒如何清除
- 回给collapsar的信
- jenkins构建报错: ssh: connect to host github.com port 22: Connection timed out
- java说的tps pv是什么_面试官常问你项目的PV量或TPS,怎么说,给你一个概念
- QPS 与 TPS是什么