首页 > 开源系统应用 > Thinkphp > 微信开发 基于ThinkPHP的一个Wechat SDK
网站建设、切图、企业建站、微信开发 联系QQ:404658186 tel:18716186715
2015
06-13

微信开发 基于ThinkPHP的一个Wechat SDK

文章目录 [收起]

微信开发时,微信服务器会向你所提交的开发者url返回一些信息,通过对这些信息的分析你可以判断用户在微信公众号上的操作并及时反馈给用户信息,如用户关注公众号、点击微信菜单等。

微信返回的信息一般是xml,你的开发者服务器上需要接收这些xml,并分析它,如把它转换为数组等。

下面分享一个@麦当苗儿的基于ThinkPHP的一个Wechat SDK,适用版本ThinkPHP 3.2。

使用方法

1.将下载Com文件夹放入ThinkPHP\Library\目录

Com文件夹下有两个文件Wechat.class.php和WechatAuth.class.php。

2.调用方法

namespace Home\Controller;
use Think\Controller;
use  Com\Wechat;//引用sdk

class IndexController extends Controller {
    public function index(){
    	       $agent = $_SERVER['HTTP_USER_AGENT']; 
		if(!strpos($agent,"MicroMessenger")) {
			echo '只能在微信浏览器中使用';
			exit;
		}

               $token = '7894578953485348944qwe'; //微信后台填写的TOKEN         
		/* 加载微信SDK */
		$wechat = new Wechat($token);
		/* 获取请求信息 */
		$data = $wechat->request(); 
		 
		if($data && is_array($data)){
		    //在这里你可以分析用户发送过来的数据来决定需要做出什么样的回复
		    $content = ""; //回复内容,回复不同类型消息,内容的格式有所不同
		    $type    = ""; //回复消息的类型,如$wechat::MSG_TYPE_TEXT 
		    // 响应当前请求(自动回复) /
		    $wechat->response($content, $type);
		}
    }
}

接收到的消息类型

接受到的信息类型有9种,分别使用下面九个常量标识

  • Wechat::MSG_TYPE_TEXT //文本消息
  • Wechat::MSG_TYPE_IMAGE //图片消息
  • Wechat::MSG_TYPE_VOICE //音频消息
  • Wechat::MSG_TYPE_VIDEO //视频消息
  • Wechat::MSG_TYPE_MUSIC //音乐消息
  • Wechat::MSG_TYPE_NEWS //图文消息(推送过来的应该不存在这种类型,但是可以给用户回复该类型消息)
  • Wechat::MSG_TYPE_LOCATION //位置消息
  • Wechat::MSG_TYPE_LINK //连接消息
  • Wechat::MSG_TYPE_EVENT //事件消息

事件消息又分为下面五种

  • Wechat::MSG_EVENT_SUBSCRIBE //订阅
  • Wechat::MSG_EVENT_SCAN //二维码扫描
  • Wechat::MSG_EVENT_LOCATION //报告位置
  • Wechat::MSG_EVENT_CLICK //菜单点击
  • Wechat::MSG_EVENT_MASSSENDJOBFINISH //群发消息成功

自动回复消息

识别用户发送的消息,通过相关程序处理后,决定要给用户回复什么样的数据,可以调用 $wechat->response($content, $type); 进行回复。 其中,$content为回复的内容,$type为回复的消息类型。不同类型的消息,$content的数据结构有所不同。

文本消息:

//当回复文本消息时$content为字符串
$content='回复的文本消息';

图片消息:

//当回复图片消息时$content为图片ID
//图片ID是通过 WechatAuth 的 mediaUpload 接口上传的图片ID
$content=$midea_id;

音频消息:

//当回复音频消息时$content为音频ID
//音频ID是通过 WechatAuth 的 mediaUpload 接口上传的音频ID
$content=$midea_id;

视频消息:

//当回复视频消息时$content为一维数组
//array($media_id, $title, $description)

//$media_id WechatAuth 的 mediaUpload 接口上传的视频ID
//$title 视频标题
//$description 视频说明

$content=array($media_id, $title, $description);

音频消息:

//当回复音乐消息时$content为一维数组
//array($title, $description, $musicurl, $hqmusicurl, $thumb_media_id)

//$title //音乐名称
//$description //音乐说明
//$musicurl //普通音质 mp3 url
//$hqmusicurl //高品质 mp3 url
//$thumb_media_id //缩略图ID

$content=array($title, $description, $musicurl, $hqmusicurl, $thumb_media_id);

图文消息:

//当回复图文消息时$content为二维数组
//array($news, $news1, $news2, ..., $news9); 
//注意:微信规定,一条消息最多只能发送10条图文信息

//每条消息的结构如下
//$news=array($title, $description, $url, $thumb_media_id);

//$title //新闻标题
//$description //新闻简介
//$url //新闻原文URL
//$thumb_media_id //缩略图ID

$content=array(
 array($title, $description, $url, $thumb_media_id),
 array($title1, $description1, $url1, $thumb_media_id1),
 array($title2, $description2, $url2, $thumb_media_id2),
 ...
 array($title9, $description9, $url9, $thumb_media_id9),
);

 

最后编辑:
作者:码农一号
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

微信开发 基于ThinkPHP的一个Wechat SDK》有 2 条评论

  1. Pingback 引用通告: 微信公众平台开发之获取用户地理位置 - 码农小兵

  2. Pingback 引用通告: 微信开发之获取附近门店 - 码农小兵

留下一个回复

你的email不会被公开。

*