0

0

微信公众平台开发功能整合

高洛峰

高洛峰

发布时间:2017-03-06 09:27:10

|

1846人浏览过

|

来源于php中文网

原创

一、简介

在前面的几篇微信功能开发文档中,各个微信的功能都是独立的,单一微信只能提供一种功能,这样不符合大众开发者和客户的需求。所以在这一篇文章中,我们将对前面开发出来的微信功能进行简单整合,以供读者参考。

二、思路分析

一种简单的做法是,截取关键字,然后进行判断,执行相应功能代码。这种做法比较适合功能不多,简单的微信;另一种做法是,给各功能编号,然后记录用户选择的功能状态,用户每次查询的时候,首先判断他的状态,然后执行相应功能代码。这种做法适合功能整合比较多,复杂的微信;开发者可以根据自己的需要来进行选择。在这篇文章中,我们将会讲解天气和翻译功能的整合,更多功能的整合类似,大家可以参考着做一下。

三、关键字截取做法

3.1 关键字截取

我们定义用户发送过来的消息格式是固定好的,查询天气格式为 “地区+天气”,例如 “苏州天气”、“北京天气”,所以首先截取后两个字,判断是否为 “天气” 关键字,然后再截取前面的城市名,进行查询。同理,翻译也是截取前面的两个字,判断是否为“翻译”关键字,然后再截取后面的文字进行查询操作。

//截取关键字
$weather_key = mb_substr($keyword,-2,2,"UTF-8");
$city_key = mb_substr($keyword,0,-2,"UTF-8");
$translate_key = mb_substr($keyword,0,2,"UTF-8");
$word_key = mb_substr($keyword,2,200,"UTF-8");

3.2 功能整合

if($weather_key == '天气' && !empty($city_key) && $translate_key != '翻译'){
    $contentStr = _weather($city_key);
}elseif($translate_key == '翻译' && !empty($word_key)){
    $contentStr = _baiduDic($word_key);
}else{
    $contentStr = "感谢您关注【卓锦苏州】\n微信号:zhuojinsz";
}

说明:在这里,我们已经将查询天气和翻译封装成了函数 _weather() 和 _baiduDic(),然后引入这些文件,在这里直接调用即可,非常方便。

这样,我们就完成了天气和翻译功能的整合。

3.3 测试

微信公众平台开发功能整合

测试成功。

四、状态记录做法

4.1 说明

首先,我们需要将各功能进行编号,比如:

回复序号:

1. 天气查询

2. 翻译查询

然后使用数据库记录用户的查询状态,用户每次输入消息,系统先从数据库中查询该用户的状态,然后进行相应操作。

4.2 在数据库中创建用户状态表 user_flags.

--
-- 表的结构 `user_flags`
--

CREATE TABLE IF NOT EXISTS `user_flags` (
  `from_user` varchar(50) NOT NULL,
  `flag_id` int(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

微信公众平台开发功能整合

HTShop网上购物系统
HTShop网上购物系统

HTShop网上购物系统由恒天网络科技有限公司根据国际先进技术和国内商务特点自主版权开发的一款具有强大功能的B2C电子商务网上购物平台。HTShop以国际上通用流行的B/S(浏览器/服务器)模式进行设计,采用微软公司的ASP.NET(C#)技术构建而成。 2007-11-10 HTShop CS 通用标准版 v1.1.11.10 更新内容自由更换模版功能开放 修改了购买多款商品,会员中心订单只显示

下载

4.3 引入数据库函数文件

操作数据库,需要引入数据的操作文件,这里使用BAE 提供的MySQL 云数据库。

//引入数据库文件
require_once('includes/mysql_bae.func.php');

4.4 判断用户状态

//判断用户状态
$sql = "SELECT flag_id FROM user_flags WHERE from_user = '$fromUsername' LIMIT 0,1";
$result = _select_data($sql);
while (!!$rows = mysql_fetch_array($result))
{
  $user_flag = $rows[flag_id];
}

说明:从user_flags 表中获取flag_id 赋给$user_flag,用于下面的判断操作。

4.5 判断用户存在的状态和新输入的状态

if(trim($keyword) <> $user_flag && is_numeric($keyword))
{
    $user_flag = '';
    $sql = "DELETE FROM user_flags WHERE from_user = '$fromUsername'";
    _delete_data($sql);
}

说明:判断用户存在的状态和新输入的状态,如果状态不一样,而且输入的keyword 是数字,则设置$user_flag 为空,数据库中清除状态,好像第一次查询流程

4.6 用户状态判断

A. 状态为空,即第一次查询

if (empty($user_flag))
{
    switch ($keyword)
    {
        case 1:    //查询天气
            $sql = "insert into user_flags(from_user,flag_id) values('$fromUsername','1')";
            $contentStr = "请输入要查询天气的城市:如北京、上海、苏州";
            break;
        case 2:    //翻译
            $sql = "insert into user_flags(from_user,flag_id) values('$fromUsername','2')";
            $contentStr = "请输入要翻译的内容:如:早上好、good morning、おはよう";
            break;
        default: //其他
            $sql = "";
            $contentStr = "感谢您关注【卓锦苏州】\n微信号:zhuojinsz\n请回复序号:\n1. 天气查询\n2. 翻译查询\n输入【帮助】查看提示\n更多内容,敬请期待...";
            break;
    }
    
    //判断并执行上面的插入语句
    if (!empty($sql))
    {
        _insert_data($sql);
    }
}

说明:用户状态为空,即第一次查询,如果用户输入的关键字是功能序号,即1或2,则将用户状态写入数据库,然后给出提示信息;如果用户输入的关键字不是功能序号,则给出帮助信息,提示用户输入。

B. 用户状态不为空

else{
    if ($user_flag == '1')
    {
        $contentStr = _weather($keyword);    //查询天气
    }elseif ($user_flag == '2')
    {
        $contentStr = _baiduDic($keyword);    //翻译
    }
}

说明:用户状态不为空,用户已经有查询操作,只要用户不切换功能,则一直保持在现有功能下,执行相应代码。

4.7 测试

微信公众平台开发功能整合 

更多微信公众平台开发功能整合相关文章请关注PHP中文网!

相关文章

微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

33

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

32

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

36

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

7

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

11

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号