做这个扩展的原因主要是在yii2框架下迄今还没有一款成熟且维护中的微信SDK,而作为每个后端人员,微信开发也许你无法绕过。因此在2017年PHP学堂开了一门叫做《构造开源的微信SDK》的课程并承诺课程完成后会将这个扩展开源出来,它是yii2-wx的前身。
当然此刻的yii2-wx拥有更强大的功能,除了支持微信公众号接口外它还支持微信小程序、开放平台(后续版本开放)等。
yii2-wx 托管平台
你可以使用composer进行自动安装和升级,北哥也推荐你这样做。
<span style="font-size: 14px;">composer require "abei2017/yii2-wx"<br></span>
如果composer出现问题,请在后面添加 -vvv 参数,这样可以看到具体报错信息。
<span style="font-size: 14px;">composer require "abei2017/yii2-wx" -vvv<br></span>
安装成功后yii2-wx会存储到程序的vendor/abei2017文件夹下。
如果你的环境无法使用composer那也没关系,可以进入 下载页面 下载对应版本后人工部署,步骤如下:
将安装包解压放到程序某目录下(比如新建一个ext文件夹)
打开yii2的config/web.php文件增加一个别名
<span style="font-size: 14px;">'aliases' => [<br> 'abei2017/wx' => '@app/ext/yii2-wx/src',<br>],<br></span>
提醒:别名和组件是同一级,不要放错。我们使用别名的主要目的是可以正常的引用。
无论是自动安装还是人工安装,yii2-wx的目录结构都是一样的,如下
<span style="font-size: 14px;">yii2-wx<br>- src<br>-- core //核心文件<br>-- helpers //帮助文件<br>-- mini //小程序接口<br>-- mp //公众号接口<br>-- Application.php //入口文件<br>- composer.json<br>- README.md<br></span>
按照上面的步骤你已经将yii2-wx成功安装到你的yii2程序中,在使用之前我们需要配置下。
<span style="font-size: 14px;">'wx'=>[<br> // 公众号信息<br> 'mp'=>[<br> /**<br> * 账号基本信息,请从微信公众平台<br> */<br> 'app_id' => '', // AppID<br> 'secret' => '', // AppSecret<br> 'token' => '', // Token<br> 'encodingAESKey'=>'',<br> 'safeMode'=>0<br><br> 'payment'=>[<br> 'mch_id' => '',<br> 'key' => '',<br> 'notify_url' => '',<br> 'cert_path' => '', // XXX: 绝对路径!!!!<br> 'key_path' => '', // XXX: 绝对路径!!!!<br> ],<br><br> 'oauth' => [<br> 'scopes' => 'snsapi_userinfo',<br> 'callback' => '',<br> ],<br> ],<br> 'mini'=>[<br> 'app_id' => '', <br> 'secret' => '', <br> 'payment' => [<br> 'mch_id' => '',<br> 'key' => ''<br> ],<br> ]<br>],<br></span>
你只要保证mini和mp内数组的key不变即可。比如现在我要生成一个临时二维码,可以如下代码
<span style="font-size: 14px;">$app = new Application(['conf'=>Yii::$app->params['wx']['mp']]);<br>$qrcode = $app->driver("mp.qrcode");<br><br>$result = $qrcode->intTemp(3600,9527);<br></span>
就这样实现了,我们总是先实例化一个Application并传递参数(公众号/小程序),然后使用driver来驱动对应接口的对象并使用对应方法。
以上是yii2-wx安装和升级的详细内容。更多信息请关注PHP中文网其他相关文章!