叶炳拥

叶炳拥

这家伙有点懒,还没写个性签名!

  • 财富值10
  • 威望值0
  • 总积分110

个人信息

  • 收藏了教程
    Yii 2.0 rules 验证规则大全
  • 赞了回答

    个人觉得这个智力、领悟能力都有关系 反正我是看不下去

  • 收藏了教程
    Yii 行为简单应用
  • 提出了问题
    ar的组合条件查询问题
  • 赞了回答

    `<?php
    namespace backend\controllers;

    use Yii;
    use \yii\web\Controller;
    use yii\web\HttpException;
    use backend\models\WechatUser;
    use EasyWeChat\Server\BadRequestException;

    class WebchatController extends Controller
    {

    public $enableCsrfValidation = false; //取消_csrf 数据验证
    
    /**
     * actionIndex 微信验证
     * @return mixed
     */
    public function actionIndex()
    {
    
        try{
            $app    = Yii::$app->wechat->getApp();
    
            $server = $app->server;
    
            $server->setMessageHandler(function ($message) {
                // $message->FromUserName // 用户的 openid
                // $message->MsgType // 消息类型:event, text....
                switch ($message->MsgType) {
                    case 'event':
                        //订阅公众号
                        if($message->Event == 'subscribe'){
                            return $this->subscribe($message);
                        }
    
                        //取消订阅事件
                        if($message->Event == 'unsubscribe'){
                            return $this->unsubscribe($message);
                        }
    
                        //已经订阅事件
                        if($message->Event == 'SCAN'){
                            //return $this->unsubscribe($message);
                        }
    
                        return '收到事件消息';
                        break;
                    case 'text':
                        return '收到文字消息';
                        break;
                    case 'image':
                        return '收到图片消息';
                        break;
                    case 'voice':
                        return '收到语音消息';
                        break;
                    case 'video':
                        return '收到视频消息';
                        break;
                    case 'location':
                        return '收到坐标消息';
                        break;
                    case 'link':
                        return '收到链接消息';
                        break;
                    // ... 其它消息
                    default:
                        return '收到其它消息';
                        break;
                }
            });
    
            $response = $server->serve();
    
            return $response->send();
        }catch (BadRequestException $e){
    
            if($e->getMessage() === 'Invalid request.'){
                throw  new HttpException(404);
            }
    
        }
    
    }
    
    /**
     * subscribe 微信订阅事件
     * @param $message
     */
    private function subscribe($message)
    {
        $userInfo = WechatUser::findUserByOpenId($message->FromUserName);
    
        if(!$userInfo){ //添加关注的用户到数据库中
            $app    = Yii::$app->wechat->getApp();
    
            $userService = $app->user;
    
            $userInfo = $userService->get($message->FromUserName);
    
            if($userInfo->subscribe){
                Yii::$app->db->createCommand()->insert(WechatUser::tableName(),[
                    'openid'        => $userInfo->openid,
                    'unionid'       => $userInfo->unionid,
                    'nickname'      => $userInfo->nickname,
                    'sex'           => $userInfo->sex,
                    'headimgurl'    => $userInfo->headimgurl,
                    'country'       => $userInfo->country,
                    'province'      => $userInfo->province,
                    'city'          => $userInfo->city,
                    'language'      => $userInfo->language,
                ])->execute();
            }
    
        }else{
            $userInfo->sataus = 10;
            $userInfo->save();
        }
    
        return Yii::$app->params['WeChatMessage']['subscribe'];
    }
    
    /**
     * unsubscribe 微信取消订阅事件
     * @param $message
     */
    private function unsubscribe($message)
    {
        $userInfo = WechatUser::findUserByOpenId($message->FromUserName);
        if($userInfo){
            $userInfo->status = 0;
    
            $userInfo->save();
        }
    
        return '';
    }
    

    }`

  • 你好,为啥前台的样式都没有加载进来??是路径问题吗

  • 2017-10-02 已签到
    连续签到1天,获得了5个金钱
  • 1495684631(1).png
    插入一个菜单栏,就炸了,后面去数据库又删了,还是一样,后台就不能用了

助理 等级规则
110/200
资料完整度
10/100
用户活跃度
0/100

Ta的关注

2

Ta的粉丝

2

Ta的访客

5