王者荣耀暴烈之甲被动有什么用 暴烈之甲适合什么英雄

laravel+easywechat 开发微信公众号
在laravel中使用easywechat
1.安装包文件:
composer require "overtrue/laravel-wechat:~3.0"
注册ServiceProvider:在config下的app.php中的 providers 数组中添加:
Overtrue\LaravelWechat\ServiceProvider::class,
创建配置文件:在命令行中执行
php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"
然后修改config/wechat.php中对应的参数
=& env('WECHAT_APPID', ''),
// AppID 'secret'
=& env('WECHAT_SECRET', ''),
// AppSecret 'token'
=& env('WECHAT_TOKEN', ''),
// Token 'aes_key' =& env('WECHAT_AES_KEY', ''),
'log' =& [
'level' =& env('WECHAT_LOG_LEVEL', 'debug'),
=& env('WECHAT_LOG_FILE', storage_path('logs/wechat.log')),],
'oauth' =& [
'only_wechat_browser' =& false,
=& ['snsapi_userinfo'],
'callback' =& '',],然后在控制器中定义一个路由 Route::any('/wechat','WechatController@serve');
然后创建控制器&WechatController:
namespace App\Http\C
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()改成类似下面的:
public function serve(){
Log::info('request arrived.');
$app = app('wechat');
$app-&server-&setMessageHandler(function($message) use ($app){
if ($message-&MsgType=='event') {
$user_openid = $message-&FromUserN
if ($message-&Event=='subscribe') {        //下面是你点击关注时,进行的操作
$user_info['unionid'] = $message-&ToUserN
$user_info['openid'] = $user_
$userService = $app-&
$user = $userService-&get($user_info['openid']);
$user_info['subscribe_time'] = $user['subscribe_time'];
$user_info['nickname'] = $user['nickname'];
$user_info['avatar'] = $user['headimgurl'];
$user_info['sex'] = $user['sex'];
$user_info['province'] = $user['province'];
$user_info['city'] = $user['city'];
$user_info['country'] = $user['country'];
$user_info['is_subscribe'] = 1;
if (WxStudent::weixin_attention($user_info)) {
return '欢迎关注';
return '您的信息由于某种原因没有保存,请重新关注';
}else if ($message-&Event=='unsubscribe') {        //取消关注时执行的操作,(注意下面返回的信息用户不会收到,因为你已经取消关注,但别的操作还是会执行的&如:取消关注的时候,要把记录该用户从记录微信用户信息的表中删掉&)
if (WxStudent::weixin_cancel_attention($user_openid)) {
return '已取消关注';
Log::info('return response.');
return $app-&server-&serve();}这时,更新服务器上的代码后,应该达到,你关注该公众号的时候,会提示你欢迎关注&&&&注:微信公众号的菜单设置:
* 添加菜单
menu_add(){//
$app = app('wechat');//
$menu = $app-&//
$buttons = [//
"type"=&"view",//
"name"=&"进入课堂",//
"url"=&BASE_URL."/wx_student#/main"//
$menu-&add($buttons);//
* 删除菜单
menu_destroy(){//
$app = app('wechat');//
$menu = $app-&//
$menu-&destroy();//
/** * 查看微信公众号当前的菜单 */public
menu_current(){
$app = app('wechat');
$menu = $app-&
$menus = $menu-&all();
var_dump($menus);}
这个具体文档上面都有,将这些方法加到一个控制器中,注册路由,上传到云服务器上,然后使用浏览器访问一下这些方法,就会出相应的结果微信授权:注:使用微信网页授权之前,一定要检查一下你所使用的微信公众号是否有网页授权接口的权限在laravel版的easywechat中自带一个微信授权的中间件,使用非常简单只需要在配置文件将有关授权的配置填写完整,然后在laravel
中注册一下,例:
然后在&路由中使用该中间件(注:使用web中间件是为了防止出现session不共享的情况)
就可以在session中获取授权用户的信息
例:这是一个关于检测登录的中间件
public function handle($request,Closure $next, $guard = null){
if (empty(session("id"))){
$user = session('wechat.oauth_user');
$openid = $user['id'];      //检测数据库中用户账号和微信号是否绑定
$result = WxStudent::check_boundwechat($openid);
if ($result=='200'){
return $next($request);
return response("请登录", 403)-&header("X-CSRF-TOKEN", csrf_token());
} else if(!empty(session("id"))) {
return $next($request);
}}这样授权部分的就介绍完了,下面来说一下微信公众号向已关注的用户推送模板消息模板消息ps:要先看一下微信公众号是否支持模板消息接口,然后要先把该模板消息的摸板添加到你的微信公众号上(通过公众号后台),然后要知道你要使用模板消息的模板id如:$template_id = 'XQ3uJilYd5elz-TUHzkvKF4-nfB6Yu3WBm0B45dRtbY';    
示例:    
      $app = app('wechat');      $notice = $app-&
  $template_id = 'XQ3uJilYd5elz-TUHzkvKF4-nfB6Yu3WBm0B45dRtbY';  //消息模板的id      $url = BASE_URL.'/wx_student#/bulletininfo/'.$course_id.'/'.$bu_   //点击模板消息的跳转的地址
            //循环给多个用户发送消息//
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.'发布了一个新的班级公告',//
"keyword1"=&'',//
"keyword2"=&'',//
"remark"=&'请及时查看班级公告',//
$notice-&uses($template_id)-&withUrl($url)-&andData($data)-&andReceiver($open_id)-&send();//
模板消息如果发不出去的话,你要检查一下微信公众号是否有该接口的权限,这个接口的调用次数好像是有限制下面来说一下调用微信的扫码接口这个是微信的jssdk1.先在html里面引入
&script src="http://res./open/js/jweixin-1.0.0.js" type="text/javascript" charset="utf-8"&&/script&&script type="text/javascript" charset="utf-8"&
wx.config(&?php echo app('wechat')-&js-&config(array('scanQRCode'), false) ?&);&/script&
然后在js中加上这个方法
scan_code(){
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
success: function (res) {
var result = res.resultS // 当needResult 为 1 时,扫码返回的结果
然后再对你扫到的内容进行相应的处理即可。
阅读(...) 评论()2438人阅读
我们需要响应微信发来的普通消息(Message)和事件推送(Event)。
一、接受和响应普通消息:
用于接受的消息对应org.easywechat.msg.req包中继承自BaseReqMsg的类,目前共有六种。
你的应用想要处理哪种类型的消息,就要在继承WeixinServletSupport的类中重写相应的方法。
消息类型 涉及的对象
需要重写的方法
1 文本消息 TextReqMsg handleTextMsg(TextReqMsg msg)
2 图片消息 ImageReqMsg handleImageMsg(ImageReqMsg msg)
3 语音消息 VoiceRegMsg handleVoiceMsg(VoiceReqMsg msg)
4 视频消息 VideoReqMsg handleVideoMsg(VideoReqMsg msg)
5 地理位置消息 LocationReqMsg handleLocationMsg(LocationReqMsg msg)
6 链接消息 LinkReqMsg handleLinkMsg(LinkReqMsg msg)
以下面的程序为例进行讲解:
public class Wechat extends WeixinServletSupport {
//Override getToken()
protected BaseMsg handleTextMsg(TextReqMsg msg) {
return new TextMsg(&你说了:& + msg.getContent());
protected BaseMsg handleImageMsg(ImageReqMsg msg) {
return new TextMsg(&你发送的是图片信息&);
}上面的程序重写了handleTextMsg和handleImageMsg方法,表示其会对文本消息和图片消息进行处理并回应。
如果用户发送了其他类型的消息,例如一段声音,而上面的程序没有重写用于处理语音消息handleVoiceMsg方法。这时WeixinServletSuppport类就会调用handleDefaultMsg方法,该方法的默认行为是不向用户发送任何消息。当然,handleDefaultMsg方法也可以被重写:
protected BaseMsg handleDefaultMsg(BaseReqMsg msg) {
String resp = &您发送的消息类型是:& + msg.getMsgType();
return new TextMsg(resp);
}如果在第一个例子中加上上面这段代码,则程序会响应用户发送的所有类型消息。效果是:对于用户发送文本消息和图片消息,按照相应的handleXxx方法进行处理;对于用户发送的其他类型的消息,告诉用户消息类型。
二、接受和响应事件推送:
用于接受的事件对应org.easywechat.msg.req包中继承自BaseEvent的类。
接受事件推送与接受普通消息极为相似,就是重写相应的handleXxxEvent(XxxEvent event)方法
1 关注/取消关注事件&
处理关注事件,需要重写handleSubscribe方法;
处理取消关注事件,需要重写handleUnsubscribe方法。
2 扫描带参数二维码事件 QrCodeEvent
需要重写handleQrCodeEvent方法。
3 上报地理位置事件 LocationEvent
需要重写handleLocationEvent方法。
4 自定义菜单事件 MenuEvent
处理点击菜单拉取消息时的事件推送,需重写handleMenuClickEvent方法;
处理点击菜单跳转链接时的事件推送,需重写handleMenuViewEvent方法。
与处理消息类似,如果事件推送在你的程序里没有找到相应的重写方法,那么会交给handleBaseEvent来处理,即不进行响应。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28946次
排名:千里之外
评论:21条tp 应该能使用easyWeChat吧,为什么一直token验证不成功呢 - ThinkPHP框架
奇怪,求大神给个答案啊
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

我要回帖

更多关于 王者荣耀暴烈之甲被动 的文章

 

随机推荐