做这个扩展的原因主要是在yii2框架下迄今还没有一款成熟且维护中的微信SDK,而作为每个后端人员,微信开发也许你无法绕过。因此在2017年PHP学堂开了一门叫做《构造开源的微信SDK》的课程并承诺课程完成后会将这个扩展开源出来,它是yii2-wx的前身。
当然此刻的yii2-wx拥有更强大的功能,除了支持微信公众号接口外它还支持微信小程序、开放平台(后续版本开放)等。

yii2-wx 托管平台

使用Composer进行安装

你可以使用composer进行自动安装和升级,北哥也推荐你这样做。

composer require "abei2017/yii2-wx"

如果composer出现问题,请在后面添加 -vvv 参数,这样可以看到具体报错信息。

composer require "abei2017/yii2-wx" -vvv

安装成功后yii2-wx会存储到程序的vendor/abei2017文件夹下。

人工安装

如果你的环境无法使用composer那也没关系,可以进入 下载页面 下载对应版本后人工部署,步骤如下:

  1. 将安装包解压放到程序某目录下(比如新建一个ext文件夹)
  2. 打开yii2的config/web.php文件增加一个别名
'aliases' => [
    'abei2017/wx'   => '@app/ext/yii2-wx/src',
],

提醒:别名和组件是同一级,不要放错。我们使用别名的主要目的是可以正常的引用。

目录结构

无论是自动安装还是人工安装,yii2-wx的目录结构都是一样的,如下

yii2-wx
- src
-- core //核心文件
-- helpers //帮助文件
-- mini //小程序接口
-- mp //公众号接口
-- Application.php //入口文件
- composer.json
- README.md

配置

按照上面的步骤你已经将yii2-wx成功安装到你的yii2程序中,在使用之前我们需要配置下。

'wx'=>[
    //  公众号信息
    'mp'=>[
        /**
         * 账号基本信息,请从微信公众平台
         */
        'app_id'  => '',         // AppID
        'secret'  => '',     // AppSecret
        'token'   => '',          // Token
        'encodingAESKey'=>'',
        'safeMode'=>0

        'payment'=>[
            'mch_id'        =>  '',
            'key'           =>  '',
            'notify_url'    =>  '',
            'cert_path'     => '', // XXX: 绝对路径!!!!
            'key_path'      => '',      // XXX: 绝对路径!!!!
        ],

        'oauth' => [
            'scopes'   => 'snsapi_userinfo',
            'callback' => '',
        ],
    ],
    'mini'=>[
        'app_id'  => '', 
        'secret'  => '', 
        'payment' => [
            'mch_id'        => '',
            'key'           => ''
        ],
    ]
],

你只要保证mini和mp内数组的key不变即可。比如现在我要生成一个临时二维码,可以如下代码

$app = new Application(['conf'=>Yii::$app->params['wx']['mp']]);
$qrcode = $app->driver("mp.qrcode");

$result = $qrcode->intTemp(3600,9527);

就这样实现了,我们总是先实例化一个Application并传递参数(公众号/小程序),然后使用driver来驱动对应接口的对象并使用对应方法。

相关文献


阿北
4.1k 声望913 粉丝

引用和评论

0 条评论