基本流程

1、去微信公众平台申请
    2、填写认证信息
    3、等待审核
    4、审核完成之后拿到appid和appsecret
    5、配置服务器信息,填写一个外网能够访问的url
    6、输出微信给出的echo $_GET['echostr'];
    7、保存服务器信息

以下是详细教程,文章有点长,需要耐心看一下

微信公众平台的搭建,首先需要确定整体的架构模式,我们一般选用B/S的整体架构模式,手机或者pc端可以通过关注微信公众

号,进而访问和操作公众号中的内容,其中的主要搭建包括:

A.使用xampp继承开发环境来搭建后台,需要用到的服务器和数据库。(apache+mysql)

B.前端页面通过html+php动态网页来实现。如果再加点js+css效果就显示的更加完美了。

1.首先开发者需要申请一个微信的公众号,由于目前微信开放的微信接口测试号提供了与微信公众平台类似的功能,只是在某些

接口的访问权限和次数上有一定的限制,所以对于初学者,可以先申请一个微信接口测试号。

http://weixin.qq.com/

2.接下来做的是对微信服务器以及对数据库网页服务器的部署。

服务器可以选择阿里云,百度云,腾讯云等服务器,然后再服务器端完成xampp的下载和整体部署。linux下xampp集成包安装配置方法http://www.cnblogs.com/ygyg/p/5395207.htmlxampp的下载地址https://www.apachefriends.org/zh_cn/index.htmlwget https://downloadsapachefriends.global.ssl.fastly.net/xampp-files/5.6.30/xampp-linux-x64-5.6.30-0-installer.run

3.系统的原理

信公众平台的数据交互线路一般按照“微信用户客户端—微信服务器(我的公众号)—网微站服务器(核心代码页)—微信服务器(我的公众号)—微信客户端”,每一次的数据交互都是通过用户发送消息进行请求。微信公众平台提供消息接口的行为标准是指导数据进行交互。如果微信公众号接入了消息接口,当用户在向公众号发送消息请求时,微信服务器将通过HTTP 请求传送给网站服务器,网站服务器会根据我们提前设置好的规则进行响应,并回复指定的操作或消息。

4.进行前台浏览器或者手机微信端和后台数据库的交互

安装php-curlapt-get install php5-curl启动xampp开发环境/opt/lampp/lampp start向服务器上传校验文件,与微信公众平台校验,以一微信公众平台税务系统为例,校验文件内容可以为:<?php$text[0]="请点击相应按钮完成您办理的业务。";$text[1]="欢迎关注林海市国税系统微信公众平台!";$text[2]="很高兴为你服务!";$text[3]="有事请留言,我们会在第一时间为您解决!";include "wechat.class.php";$options = array('token'=>'weixin_abc', //填写你设定的key
'encodingaeskey'=>'encodingaeskey', //填写加密用的EncodingAESKey,如接口为明模式可忽略
'appid' => 'wxe64345b8801234ad',    //填写与自己公众号相对应的appid
'appsecret' => 'f21524rty822rttycd1e9c846566da8676'     //填写与自己公众号相对应的appsecret
);print_r($options);//自定义菜单开发$button_data = array (
'button' => array (
0 => array (
'name' => '我要报税',
'sub_button' => array (
0 => array (
'type' => 'view',
'name' => '身份绑定',
'url' => '115.28.26.89/bangding1.php',),
1 => array (
'type' => 'view',
'name' => '申报纳税',
'url' => 'http://115.28.26.89/userlogin.php',),
2 => array (
'type' => 'view',
'name' => '业务办理',
'url' => 'http://115.28.26.89/ywbl.php',),
3 => array (
'type' => 'view',
'name' => '办税指南',
'url' => '115.28.26.89/zhinan.php',),),),
1 => array (
'name' => '我要查询',
'sub_button' => array (
0 => array (
'type' => 'view',
'name' => '最新通知',
'url' => '115.28.26.89/zxgg.php',),
1 => array (
'type' => 'view',
'name' => '发票信息查询',
'url' => '115.28.26.89/fpxxcx.php',),
2 => array (
'type' => 'view',
'name' => '税收查询',
'url' => '115.28.26.89/sscx.php',),
3 => array (
'type' => 'view',
'name' => '税收法规',
'url' => '115.28.26.89/ssfg.php',),),),
2 => array (
'name' => '其他',
'sub_button' => array (
0 => array (
'type' => 'view',
'name' => '留言',
'url' => '115.28.26.89/ly.php',),
1 => array (
'type' => 'location_select',
'name' => '发送位置',
'key' => 'rselfmenu_2_1',),),),),);$weObj = new Wechat($options);$weObj->valid();//明文或兼容模式可以在接口验证通过后注释此句,但加密模式一定不能注释,否则会验证失ètype =$weObj->createMenu($button_data);//image上传照片开发$type="image";$data1=array('media'=>'11234','filename'=>'@/opt/lampp/htdocs/pic/fen.jpg');print_r($data1);$media_id1=11234;//$result=$weObj->uploadMedia($data1,$type);//print_r($result);$type = $weObj->getRev()->getRevType();switch($type)
{case Wechat::MSGTYPE_TEXT://$weObj->text(" hello, I'm wechat ,welcome to the linhai guo shui system . can we help you? " )->reply();$weObj->text($text[rand()%4])->reply();exit;break;case Wechat::MSGTYPE_EVENT:break;case Wechat::MSGTYPE_IMAGE:$response = $weObj->getRevPic();foreach($response as $key=>$value){$weObj->image($value)->reply();//$weObj->text($value)->reply();//$weObj->text($key)->reply();}//$weObj->text("$media_id"+$text[rand()%3])->reply();//$weObj->image($media_id1)->reply();//$weObj->news($data_news)->reply();break;default:$weObj->text('bangding1.php ')->reply();}?>

5.在自定义接口菜单型中获取access_token.

  为了更好的服务用户,可以开发属于自己的自定义菜单,公众平台已经为开发者提供了在线接口调试工具,开发者在这里应该选择的接口类型为基础支持,选择的接口列表为获取access_token接口/token,然后输入自己测试号appid和secret,选择点击检查问题按钮,获得我要进行自定义菜单设计的access_token编码。当取得access token编码串以后,继续在接口的调试工具中进行重新选择,这时选择的接口类型为自定义菜单,自定义接口为menu下的create,在参数列表中输入自己刚才获取的access_token编码,最后在body框中写入自己编好的自定义菜单编码。注意这里的自定义菜单提交的编码格式只支持JSON数据结构,他和网站服务器中提交的自定义菜单数组格式不同。

  在成功的获取access_token以后,进行自定义接口菜单的调试。

6.然后进行自定义接口json包的上传验证。

{"button": [{"name": "我要办税","sub_button": [{"type": "view","name": "身份绑定","url": "http://114.218.216.89/bangding1.php/"},{"type": "view","name": "申报纳税","url": "http://114.218.216.89/userlogin.php/"},{"type": "view","name": "业务办理","url": "http://114.218.216.89/ywbl.php/"},{"type": "view","name": "办税指南","url": "http://114.128.216.89/zhinan.php/"}]},{"name": "我要查询","sub_button": [{"type": "view","name": "最新通知","url": "http://114.218.216.89/zxgg.php/"},{"type": "view","name": "发票信息查询","url": "http://114.218.216.89/fpxxcx.php/"},{"type": "view","name": "税收查询","url": "http://115.28.216.89/sscx.php/"},{"type": "view","name": "税收法规","url": "http://114.218.216.89/ssfg.php/"}]},{"name": "其他","sub_button": [{"type": "view","name": "留言","url": "http://114.218.216.89/ly.php/"},{"name": "发送位置","type": "location_select","key": "rselfmenu_2_1"}]}]}

在提交json body自动定义接口包后,微信公众平台会和后台服务器平台进行验证。

7.token与access_token的区别

token是在微信后台选择开发模式的时候填写的,是自己的微信公众平台与后台验证的关键字,类似于一种令牌或者指令。
而access_token则是通过接口调用生成的,在相应的微信公众平台接口调试页面通过输入自己的appid和appsecret而生成的。https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx607ad3f161bc9c83&secret=7d955b008d74fafbc6878d48a9641961https://segmentfault.com/q/1010000003749563https://mp.weixin.qq.com/debug

8.在通过验证后,就可以编写网页文件,网页编写可以采用html+php,在加一部分jsp和css,效果会显得更加完美。

网页一般上传在自己的/opt/lampp/htdocs目录当中。

上传过程中可以使用Linux自带的命令rz/sz命令来完成。也可以使用工具进行,比如xftp和MobaXtermPersonalEdition等工具。

通过在浏览器窗口输入自己的服务器公网ip地址,或者是自己的域名,就可以访问进入到自己的服务器页面当中。如图。

通过点击第一行的PhpMyAdmin可以进入到数据库,进而在数据库中创建爱你,修改查询等对自己的数据库进行操作。

9.公众号中的自动回复设计

在已经写好的验证文件demo.php中进行添加自定义回复消息,寻找选择模块switch语句,然后进行设置MEGTYPE_TEXT。$weObj->text($text[rand()%4])->reply();添加数组text,并为其赋值,最后根据用户消息请求次数给予回复[15]。涉及到的核心代码主要包括:$text[0]="请点击相应按钮完成您办理的业务。
";$text[1]="欢迎关注林海市国税系统微信公众平台!";$text[2]="很高兴为你服务!";switch($type) {$weObj->text($text[rand()%4])->reply();$response = $weObj->getRevPic();foreach($response as $key=>$value){$weObj->image($value)->reply();}break;default:$weObj->text('wehope.top/bangding1.php  ')->reply();}

10.数据库的管理和设计

通过与服务器中的数据库建立连接,可以将用户的注册信息,增值税、消费税、个人所得税等信息方便的录入到数据库的表单中。同时为了方便系统管理员对数据库MySql的管理,
采用了phpMyAdmin技术,通过网页远程对数据库进行有效的管理[16]。数据库中的表单创建代码包括:(1) 注册表的创建CREATE table `register` (`id`  int(10) NOT NULL auto_increment,`user`  varchar(10) NOT NULL default '0',`regdate`  date NOT NULL,`code`  varchar(11) NOT NULL default '0',PRIMARY KEY  (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;(2) 给注册表插入新用户insert into register (id,user,regdate,tel)  values('','李斯','now()','12345678901')(3) 与数据库建立连接<?php$connect = @ mysql_connect("localhost", "root", "zfdroot")
or die("数据库链接错误");mysql_select_db("bbs", $connect);mysql_query("set names 'utf-8'"); //使用utf-8编码格式;?>

11.前台界面的设计和实现

  通过在阿里云的网站服务器端配置PHP5-curl,采用预定义的$_GET、$_POST变量、可以收集来自method="post"表单中提交的值,并向服务器和数据库提交参数。

微信客户端可以将用户输入的注册、绑定、纳税等基本信息通过http、ftp等协议传输到服务器的数据库中,同时服务器端通过判断客户端的请求类型给出相应的响应信息部分代码包括:if(isset($_POST['submit']) && $_POST['submit'])  { $sql="insert into register (id,user,regdate,code) values('','$_POST[user]',now(),'$_POST[code]')";mysql_query($sql);echo "<script language=\"javascript\">alert('注册成功');history.go(-1)</script>"; }

涉及到的标题设置代码包括:<?phpecho '<img src="/pic/wa.jpg" width="1300" height="400">' ;?><head><title>我要查询 |  最新通知 </title><p><font size=7 color= blue >通知公告 </p> </font><p><hr size=3 color= blue></p><br></head>

核心代码包括:<?phperror_reporting(E_ALL^E_NOTICE);include("fpxxcx.php");include("connect.php");echo '<img src="/pic/fen.jpg" width="1300" height="400">' ;?><p><font size=7 color= blue >发票查询信息明细 </p> </font><p><hr size=3 color= blue></p><br><?$sql="select * from luru where haoma= $work "; //倒序排序$query=mysql_query($sql);while($row=mysql_fetch_array($query)){?><td><b><font  color=red size=6 ><center>  <?=$row[type]?>类发票</font></b></td></center>时间:<?echo date("Y年-m月-d日 H:i:s",time());?><td>编号ID:<?=$row[id]?> </td><td>发票代码:<?=$row[daima]?></td><td>开票日期:<?=$row[date]?> </td><td>发票号码:<?=$row[haoma]?></td><td>付款方名称:<?=$row[user]?> </td><td>身份识别号码:<?=$row[uid]?></td><td>工程项目名称:<?=$row[user1]?> </td><td>金额:<?=$row[money]?></td><td>利率:<?=$row[money1]?> </td><td>备注:</td><?  }?>

16:41:46

其中的关键代码包括:const EVENT_LOCATION = 'LOCATION';         //上报地理位置if (isset($this->_receive['Location_X'])){return array('x'=>$this->_receive['Location_X'],'y'=>$this->_receive['Location_Y'],); }else     return false; }

12.资料文档下载

WeChatPHPSDK,让PHP接入微信公众平台更便捷WeChatPHP-SDK-Intro其它微信公众号开发文档若干https://github.com/dodgepudding/wechat-php-sdkhttps://mp.weixin.qq.com/wiki

13.构造函数及其参数

.构造函数参数public function __construct($options){$this->token = isset($options['token'])?$options['token']:'';$this->encodingAesKey = isset($options['encodingaeskey'])?$options['encodingaeskey']:'';$this->appid = isset($options['appid'])?$options['appid']:'';$this->appsecret = isset($options['appsecret'])?$options['appsecret']:'';$this->debug = isset($options['debug'])?$options['debug']:false;$this->logcallback = isset($options['logcallback'])?$options['logcallback']:false;}

14.遇到的问题

(1)从微信客户端提交的数据,在数据库中显示常看时,显示乱码

解决措施:文件以及数据库的编码格式尽量统一修改成utf-8格式。

(1)从微信客户端提交的数据,在数据库中显示常看时,显示乱码解决措施:文件以及数据库的编码格式尽量统一修改成utf-8格式。(2)图片无法显式原因为路径不对,<img src="/pic/deng.jpg" width="1300" height="400">中缺少了/pic中的/

微信公众平台的开发流程及其要点相关推荐

  1. 微信公众平台应用开发实战

    微信公众平台应用开发实战 微信营销 ISBN 9787111438618 作者 钟志勇 含税价 59.0元 税后 51.3元 增值税 7.7元 卓越价 40.7元(满49元免运费) 有货 出版社 机械 ...

  2. 《微信公众平台应用开发实战(第2版)》一1.1 微信公众账号的注册

    本节书摘来华章计算机<微信公众平台应用开发实战(第2版)>一书中的第1章 ,第1.1节,钟志勇 何威俊 冯煜博 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  3. 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发,其实就是我们开发的h5网页需要放到微信浏览器环境中使用,但是需要对接公众号授权,授权之后可以获取到用户的个人信息,以及可以使用公众号提供的一些API,如:图片上传.图片预览.获取位 ...

  4. 微信公众平台java开发

    准备工作 建立web工程,搭建服务器. ---- 这里使用springBoot搭建 注册微信公众号(开发时用测试号即可). 使用内网穿透软件(ngrok),使外网能访问你本地的应用,省去部署. 微信公 ...

  5. 微信公众平台搭建与开发揭秘//////微信公众平台应用开发实战

    微信公众平台搭建与开发揭秘,完整扫描版 [香港回来了,累啊.这个是从http://www.ckook.com/处获得的电子书,自制的就不上传了,免得被人叽歪] <微信公众平台搭建与开发揭秘> ...

  6. [046] 《微信公众平台应用开发:方法、技巧与案例》火热预售中...

    在CSDN连续写了20多篇关于微信公众平台开发的教程,受到了广大读者的一致好评,几乎每篇文章的访问量都过万,评论都是好几十,谢谢大家对我的支持.鼓励和肯定,这让我更加坚定了写书的想法.从2013年8月 ...

  7. vue微信公众号授权开发流程

    vue微信公众号授权开发流程 项目采用的是vue2.0开发的,还未更新到vue3.0.项目描述:只有通过微信授权登录,不需要绑定手机号. 1.注册公众号,这个不多说了 2.配置公众号 在[公众号设置] ...

  8. 微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发

    本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixi ...

  9. ASP.NET MVC5微信公众平台整合开发实战教程

    <ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...

  10. 微信公众平台前端开发技巧分享

    这个是第三方跳转的网站 微信公众平台前端开发技巧分享 微信公众平台 新版微信做了更改,此文提到的部分方法可能已经不再适用,请关注微信官方开放平台:http://open.weixin.qq.com/d ...

最新文章

  1. tensorflow实现svm iris二分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)...
  2. UA MATH563 概率论的数学基础 鞅论初步2 条件期望的应用:推导二元随机变量的条件概率与条件期望
  3. rxjs 操作符 pairwise 的一个例子
  4. ASP.NET中常用输出JS脚本的类(改进版)
  5. Md5 Md5实现原理
  6. NYU Google: 知识蒸馏无处不在,但它真的有用吗?
  7. 2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
  8. 孤独终老和勉强结婚,你会选什么?
  9. sublime-安装插件
  10. 入门机器学习(八)--神经网络参数的反向传播算法
  11. 解决安卓GridView的横向滚动问题
  12. Oracle数据库入门教程(作者原创)
  13. 原子结构示意图全部_所有原子结构示意图
  14. CRM客户关系管理系统开发第七讲——实现客户管理模块中删除客户的功能
  15. 在任务栏中添加控件 如360小助手、QQ桌面小助手
  16. SpringMVC+vue实现前后端分离的旅游管理系统
  17. WIN7 通知栏处喇叭上有个小红叉,提示未插入“未插入扬声器或耳机”的解决方法
  18. 用计算机公式计算优良,『excel怎样合并单元格』如何在EXCEL中如何用公式计算全年级各班各科平均分、优秀率、合格率的方法...
  19. HTML5CSS3基础:HTML的图片、音频、视频(3)
  20. APC SUA1500ICH设置断电自动关闭服务器

热门文章

  1. 相机技术--摄像机720p、1080p、2mp、3mp、5mp;VGA, QHD, FHD, 2K,4K对应的分辨率分别是什么
  2. 2022程序员必备网站
  3. 『论文笔记』Visually Grounded Reasoning across Languages and Cultures
  4. jenkins AWS CodeDeploy不停机部署
  5. MOOC上的excel技巧
  6. 揭露卖劣质U盘黑心商家的利器
  7. xftp显示隐藏的文件夹及传输文件发生错误问题
  8. 路由器的介绍和基本原理
  9. winform控件之MonthCalendar
  10. C++期末项目设计------制作一个游戏盒