Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
微信公众平台 PHP SDK
PHP
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
test CS fix
.gitignore
.travis.yml
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

微信公众平台SDK

Latest Stable Version Total Downloads Build Status Coverage Status

Overview

PHP版本的微信公众平台SDK。可以很方便地解析请求、发送回复。

Installation

Composer

把下面的配置代码加入你的composer.jsonrequire段。

"techotaku/wechat-sdk": ">=1.0.1"

然后使用Composer来安装SDK。

composer install

如果Packagist故障或者不可用导致无法安装SDK的,可以使用Satis或者Artifact来进行本地安装,详见Composer文档中的Repositories

Manually

复制src/Wechat.php到任意位置,然后require或者require_once

Usage

Autoload

如果你使用了Composer来安装SDK,使用以下代码即可完成自动加载的配置。

require 'vendor/autoload.php';

SDK位于全局命名空间下。

Initialization

实例化Wechat即可完成初始化。

define('TOKEN', ''); // 微信通信令牌,在公众平台管理后台设置
define('DEBUG', TRUE); // 调试模式开关,指示是否将错误信息通过文本消息回复(如果可能)。
$wechat = new \Wechat(TOKEN, DEBUG);

初始化之后SDK将尝试从$_GET[]$GLOBALS['HTTP_RAW_POST_DATA']中读取信息解析请求并进行初步处理。

Parsing and processing

SDK提供以下方法对请求进行解析。

  • isApiValidation():返回一个bool值,指示当前请求是否为微信公众平台进行开发者验证的echoback请求。当结果为TRUE时,SDK已经将echostr的内容输出,SDK的调用方在此分支逻辑中请勿继续输出信息,否则会导致验证失败。(SDK并未使用常见的exit()来处理echoback,因此在判断为验证请求之后,PHP脚本执行并不会中止,调用方可以继续处理“验证请求”这一分支的剩余逻辑,只要不再进行输出即可。)当结果为TRUE时,isValid()的结果必定为FALSE
  • isValid():返回一个bool值,指示当前请求是否为一个有效的请求。有效的请求是指,当前请求的签名正确、POST数据为可以被解析的XML、解析后的XML数据至少包括消息发送者和消息接收者。
  • getRequestType():返回一个字符串,指示请求类型。请求类型的定义如下(建议使用类常量,不要直接使用字符串):
  /**
   * 微信公众平台传入消息类
   * 包含传入消息类型常量定义
   */
  class WechatRequest {
    const text = 'text';
    const image = 'image';
    const location = 'location';
    const link = 'link';
    const subscribe = 'subscribe';
    const voice = 'voice';
    const unsubscribe = 'unsubscribe';
    const unknown = 'unknown';
  }
  • getRequest([$key]):根据给定的可选参数key返回请求中携带的数据,若对应的key不存在则返回FALSE。若省略参数key,则返回完整的请求信息数组。

SDK提供以下方法回复消息。

  • sendResponse($type, $params): 回复指定类型的消息。方法原型及参数说明如下:
    /**
     * 回复消息
     *
     * @param  string  $type     消息类型,在类WechatResponse中定义
     * @param  string  $params   消息参数,与消息类型相关:
     *     WechatResponse::text  文本消息  $params为消息内容
     *         $params                        消息文本
     *     WechatResponse::news  图文消息  $params为数组
     *         $params                        由单条图文消息类型 WechatNewsResponseItem 组成的数组
     *     WechatResponse::music 音乐消息  $params为关联数组
     *         $params['title']
     *         $params['description']
     *         $params['musicUrl']
     *         $params['hqMusicUrl']
     * @return void
     */
    public function sendResponse($type, $params)

单条图文消息类WechatNewsResponseItem的数组构造示例如下:

$array = array(
            new WechatNewsResponseItem('图文消息标题', '图文消息说明', '图片地址', '点击转向的链接'),
            new WechatNewsResponseItem('图文消息标题', '图文消息说明', '图片地址', '点击转向的链接')
            );

License

The MIT License (MIT)
Copyright (c) 2013 Ian Li

See LICENSE

Something went wrong with that request. Please try again.