PHP 一一 微信公众号开发(二次开发)

编辑模式与开发者模式,这两种模式是互斥的.

编辑模式是平台内置的web系统,不需要专业的技术.

开发者模式可以通过腾讯的API接口进行二次开发,需要专业的PHP技术.

3. 首先要在平台地址中,创建一个订阅号.

订阅号和服务号的区别: 订阅号是针对个人的,服务号针对有营业执照的商户.

0. 在讲下面的一些知识之前: 大家首先把这个网盘中的一些 要使用的的文件,下载下来,后面会使用到.

网盘地址: 链接:https://pan.baidu.com/s/1qZzwLGC 密码:v9vk

1. 开发者模式原理图

还有一点,我们必须要有自己的服务器,在阿里云买一个服务器肯定需要钱啊,我们不想花钱怎么办?

这里就要使用到 内网渗透 的技术,把我们自己的电脑充当服务器(拥有自己的域名).

3、NATAPP内网渗透技术.(将本机充当一个服务器)

在 使用手机号注册一个自己的账号.如下图所示

此时我们需要下载一个natapp的客户端. 我在这里提供了网盘地址: 大家可以下载.

1): 首先将下载好的natapp.exe 与 config.ini 同时赋值到 D盘的natapp目录下(这个natapp目录是自己创建的)

2): 打开config.ini中的隧道密钥,改成我们自己的密钥.

这个authtoken就是我们的密钥,把这个密钥复制到config.ini的这个位置

4): 打开cmd窗口,将刚才D盘下natapp目录下的natapp.exe拖动到命令行中,如下图所示

这样我们的服务器就已经创建好了,以后我们就可以通过 上面的 http:// 来访问自己的电脑了

注意: 在运行过程中,cmd命令行不可以关闭/

5): 下载腾讯提供的API接口, 叫api.php,也在刚才你所下载的网盘文件中.

我们把api.php文件放到 我们安装的phpStudy的目录下的 PHPTutorial的WWW目录下;

6): 把api.php放进去之后,打开这个文件, 查看这个文件中的 define("TOKEN","weixin") ,记住这个接口中的密钥是 weixin

提交成功后,并点击右侧的启动按钮,就启动成功了.(注意这里有一些注意点:如果提交不成功,多提交几次. 后面有写有哪些注意点)

4、手动开启自动回复(这里有个坑,一定要注意)

我们使用sublime将www下的api.php 文件打开,做下面操作

只要设置就在api.php接口中.

其中包括文本消息、图片,语音,图文等消息

3. 我们来分析一下api.php文件(重点)

首先 $msgType = "text"; 是表示接收的是什么类型的数据

$ contentStr 用来返回给我们是什么样的数据.

如果我们要使用 图片,图文等相关模板,需要将平台中的<XML>文件复制到api.php文件中.

将我们的需要展示的内容填充进去,就可以了

四、具体讲解图文消息接口

、文本回复接口(文本回复四步走)

文本回复一共分为这样的几个步骤:

第一步:组装XML数据

第二步:定义相关的变量$msgType,$contentStr

第三步:使用sprintf函数,格式化变量到%s的位置

要用到的知识点:sprintf函数,在实际项目开发主要用于格式化字符串

sprint(要格式化的字符串,变量1,变量2,变量3...)

到底有多少个变量呢,就是要格式化的字符串中,有多少个%s就有多少个变量。

、编写图文接口(四步走)

第一步:组装XML数据(设置%s)

把以上代码复制放到$newsTpl代码中:

放置完成后,不能立即停止,因为我们还没有放%s呢,必须放置%s

记住:有几个%s,因为一会还要定义几个变量。

第二步:设置相关的变量(有几个%s就要定义几个变量)

我们需要定义6个变量,但是前3个变量,系统默认已经有了,$fromUserName,$toUserName,$time。所以咱们真正定义的只有3个变量。

第三步:使用sprintf函数格式化第一步中的字符串

运行结果:

①打开浏览器,输入http://域名/api.php,看一下语法是否有错误

注意点:

1. 在运行中我们不可以关闭命令行,否则就会出现错误

2. 要开启phpStudy

3. 当我们电脑重启后,将natapp.exe拖入到命令行后,会从新生成一个域名.

3.1 首先先把vaild()方法给打开, 把responseMsg()方法关闭,然后在valid()方法中 添加ob_clean()方法,清除缓存,否则会验证token失败.

public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
            ob_clean(); 
            echo $echoStr;
            exit;
        }
    }
3.2 当启动成功后,一定要记住将api.php中的valid()方法注释掉,打开responseMsg()方法

经验分享 程序员 微信小程序 职场和发展