如何使用laravel+easywechat开发微信公众号
在laravel中使用easywechat
1.安装包文件:(如果使用更高版本,请查看easywechat文档)
注册ServiceProvider:在config下的app.php中的 providers 数组中添加:
创建配置文件:在命令行中执行
如果执行该命令后显示已发布但是在config中找不到配置文件的话,看一下 config/app.php
如果有的话将其先注释掉,重新执行上面发布服务的命令,即可生成配置文件 config/wechat.php,如果需要使用到 laravel\thinker的话,生成配置文件以后,将刚刚注释的还原
(关于laravel\thinker 详情请查看
然后修改config/wechat.php中对应的参数
然后在控制器中定义一个路由 Route::any(‘/wechat’,’WechatController@serve’);
注意:在laravel中需要token验证,所以有两种方法:
1》在将csrf验证关闭(不安全,不推荐) 详情:
2》我们在项目中使用:
在中间件VerifyCsrfToken.php中修改内容为:
然后在vue中的bootstrap.js中的引入axios中添加
然后创建控制器 WechatController:
namespace App\Http\Controllers;
class WechatController extends Controller
* 处理微信的请求消息
* @return string
public function serve()

Log::info(‘request arrived.’); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志
$wechat = app(‘wechat’);
$wechat->server->SetMessageHandler(function($message){
return “欢迎关注 overtrue!”;
Log::info(‘return response.’);
return $wechat->server->serve();
然后将这个代码上传到云 服务器 (注:服务器一定要在公网中(或通过某种工具使自己的电脑映射到公网上),否则微信无法验证)
默认配置好虚拟主机,(必须用80端口),指向:项目名/public
然后打开微信公众号后台(我用测试账号来说明问题,如果是真正的服务号的话,要开启开发者模式)
2.在公众号后台修改配置信息
例:
填写的url要能找到你那个控制器中的serve()方法
Token要和上面的配置文件中填写的一样
如果按照上面的步骤一步一步来的话,应该可以保存成功(即初步验证成功)
下面有一个js接口,下面填上你的已经经过备案的域名,这样你就能在你域名指向的服务器中使用微信的jssdk
这样,配置基本上就完成了,下面就可以进行微信开发了。
下面正式进行微信公众平台开发:
将上面的serve()改成类似下面的:
这时,更新服务器上的代码后,应该达到,你关注该公众号的时候,会提示你欢迎关注…………
注:
微信公众号的菜单设置:
微信网页授权:
注:使用微信网页授权之前,一定要检查一下你所使用的微信公众号是否有网页授权接口的权限
在laravel版的easywechat中自带一个微信授权的中间件,使用非常简单
只需要在配置文件将有关授权的配置填写完整,然后在laravel
中注册一下
然后在 路由中使用该中间件(注:使用web中间件是为了防止出现session不共享的情况)
例:
就可以在session中获取授权用户的信息
例:这是一个关于检测登录的中间件
注:如果报redirect_uri错误,这时候极有可能是网页授权的链接没有更改成现在需要授权的网址,这时候只需要去公众号后台改一下要授权的网址即可
例:
这样授权部分的就介绍完了,下面来说一下微信公众号向已关注的用户推送模板消息
模板消息
ps:要先看一下微信公众号是否支持模板消息接口,然后要先把该模板消息的摸板添加到你的微信公众号上(通过公众号后台),然后要知道你要使用模板消息的模板id
如:$template_id = ‘XQ3uJilYd5elz-TUHzkvKF4-nfB6Yu3WBm0B45dRtbY’;
$url = BASE_URL.’/wx_student#/bulletininfo/’.$course_id.’/’.$bu_id;//点击模板消息的跳转的地址
//循环给多个用户发送消息
// foreach ($users as $user){
// if ($user[‘openid’]!=””&&$user[‘openid’]!=’0’&&!empty($user[‘openid’])){
// $open_id = $user[‘openid’];
//注:不同的模板,$data的内容可能不太一样,具体要看你微信公众号后台所使用的模板,上面都有示例的
// $data = array(
// “first”=>$user[‘name’].”同学你好,你的”.$course_nam.’课教师’.$create_name.’发布了一个新的班级公告’,
// “keyword2″=>”,
// “remark”=>’请及时查看班级公告’,
// $notice->uses($template_id)->withUrl($url)->andData($data)->andReceiver($open_id)->send();
模板消息如果发不出去的话,你要检查一下微信公众号是否有该接口的权限,这个接口的调用次数好像是有限制
下面来说一下调用微信的扫码接口
这个是微信的jssdk
后台jssdk的域名不要填写 http://
直接写就行。如ydjx.gm365.cc要不然可能jssdk就无法调
1.先在html里面引入
wx.config(js->config(array(‘scanQRCode’), false) ?>);
然后在js中加上这个方法
scan_code(){
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
然后再对你扫到的内容进行相应的处理即可。
停用微信运动后别人还能看见我以前的运动数据吗?
不能了,停用后对方的微信运动名单里将不会有你。
我的微信公众号与掌上大学绑定后,就没有自定义菜单了,是怎么回事呢
自定义菜单并不是你写几个文字就可以了,每个菜单都要设置对应的响应动作,否则发布不生效。 你分别点你设置的每一个菜单名字,右边就有两个蓝色大圆钮让你继续设置,上面有简单提示,基本很容易看明白。 有发送消息,也有跳转到图文消息。 未认证的订阅号只能发送图片,语音,,或是跳转到图文消息。 设置好之后,先预览,确认无误,再去发布。
静脉曲张只有一条腿有症状,穿一只还是穿一双?
一双
发表评论