0

0

简单的实现微信平台开发

php中文网

php中文网

发布时间:2016-06-06 19:35:38

|

1606人浏览过

|

来源于php中文网

原创

简单的实现微信平台开发 使用说明:新手入门很适合的,你可以看我转载的博客:http://my.oschina.net/xz360/blog/341169 也可以去看官网的文档:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5 无 ?phpdefine ( "TOKEN", "weixin" );$wech

简单的实现微信平台开发
使用说明:新手入门很适合的,你可以看我转载的博客:http://my.oschina.net/xz360/blog/341169
也可以去看官网的文档:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5

<?php
define ( "TOKEN", "weixin" );
$wechatObj = new wechatCallbackapiTest ();

if (isset ( $_GET ['echostr'] )) {
	$wechatObj->valid ();
} else {
	$wechatObj->responseMsg ();
}
class wechatCallbackapiTest {
	
	// 验证Token
	public function valid() {
		$echoStr = $_GET ["echostr"];
		if ($this->checkSignature ()) {
			echo $echoStr;
			exit ();
		}
	}
	
	// 验证签名
	private function checkSignature() {
		$signature = $_GET ["signature"];
		$timestamp = $_GET ["timestamp"];
		$nonce = $_GET ["nonce"];
		
		$token = TOKEN;
		$tmpArr = array (
				$token,
				$timestamp,
				$nonce 
		);
		sort ( $tmpArr, SORT_STRING );
		$tmpStr = implode ( $tmpArr );
		$tmpStr = sha1 ( $tmpStr );
		
		if ($tmpStr == $signature) {
			return true;
		}
		return false;
	}
	
	/* 回应 */
	public function responseMsg() {
		$postStr = $GLOBALS ["HTTP_RAW_POST_DATA"];
		if (! empty ( $postStr )) {
			$postObj = simplexml_load_string ( $postStr, 'SimpleXMLElement', LIBXML_NOCDATA );
			$RX_TYPE = trim ( $postObj->MsgType );
			
			switch ($RX_TYPE) {
				//接收关注/取消关注、扫描带参数二维码【未关注时,进行关注后、用户已关注】、上报地理位置、自定义菜单【点击菜单拉取消息、点击菜单跳转链接】
				case "event" :
					$result = $this->receiveEvent ( $postObj );
					break;
				//接收普通的文字、图片、媒体消息
				case "text" :
					$result = $this->receiveText ( $postObj );
					break;
			}
			echo $result;
		} else {
			echo "";
			exit ();
		}
	}
	// 处理接收到用户发送的消息
	private function receiveEvent($object) {
		$content = "";
		switch ($object->Event) {
			//关注
			case "subscribe" :
				$content = "感谢您的关注,本账号目前还\n在测试阶段,给您带来的不便请谅解!";
				break;
			//取消关注
			case 'unsubscribe':
				$content = "欢迎您再次关注我们“女人要懂得爱自己”!";
				break;
		}
		if (is_array ( $content )) {
			$result = $this->transmitNews ( $object, $content );
		} else {
			$result = $this->transmitText ( $object, $content );
		}
		return $result;
	}
	
	/* 处理接收到的文本 */
	private function receiveText($object) {
		$keyword = trim ( $object->Content );
		if (strstr ( $keyword, "四六级" ) || strstr ( $keyword, "英语" )) {
			$content = array ();
			$content [] = array (
					"Title" => "2014年6月全国大学英语四六级考试成绩查询",
					"Description" => "",
					"PicUrl" => "http://img003.21cnimg.com/photos/album/20141104/m600/B2579ABF2B905FA793C6756A59044992.jpeg",
					"Url" => "http://apix.sinaapp.com/cet/index.php?openid=" . $object->FromUserName 
			);
			$content [] = array (
					"Title" => "刘强东带奶茶妹妹看牙 两人旁若无人地忘情缠绵(图)",
					"Description" => "",
					"PicUrl" => "",
					"Url" => "http://news.21cn.com/social/shixiang/a/2014/1105/11/28502924.shtml" 
			);
		} else {
			$content = date ( "Y-m-d H:i:s", time () ) . "\n目前正在测试阶段";
		}
		if (is_array ( $content )) {
			$result = $this->transmitNews ( $object, $content );
		} else {
			$result = $this->transmitText ( $object, $content );
		}
		return $result;
	}
	
	/* 输出文章 */
	private function transmitText($object, $content) {
		$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
		$result = sprintf ( $textTpl, $object->FromUserName, $object->ToUserName, time (), $content );
		return $result;
	}
	
	/* 输出图文 */
	private function transmitNews($object, $arr_item) {
		if (! is_array ( $arr_item ))
			return;
		
		$itemTpl = "
		<item>
		        <Title><![CDATA[%s]]></Title>
		        <Description><![CDATA[%s]]></Description>
		        <PicUrl><![CDATA[%s]]></PicUrl>
		        <Url><![CDATA[%s]]></Url>
		</item>
		";
		$item_str = "";
		foreach ( $arr_item as $item )
			$item_str .= sprintf ( $itemTpl, $item ['Title'], $item ['Description'], $item ['PicUrl'], $item ['Url'] );
		
		$newsTpl = "<xml>
    	<ToUserName><![CDATA[%s]]></ToUserName>
    	<FromUserName><![CDATA[%s]]></FromUserName>
    	<CreateTime>%s</CreateTime>
    	<MsgType><![CDATA[news]]></MsgType>
    	<Content><![CDATA[]]></Content>
    	<ArticleCount>%s</ArticleCount>
    	<Articles>
    		$item_str
    	</Articles>
    	</xml>";
		
		$result = sprintf ( $newsTpl, $object->FromUserName, $object->ToUserName, time (), count ( $arr_item ) );
		return $result;
	}
}
?>
微信app下载
微信app下载

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

下载

相关标签:

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

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.4万人学习

jQuery 教程
jQuery 教程

共42课时 | 6.4万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

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

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