小叮当的肚兜

小叮当的肚兜

https://www.easydo.work/

  • 财富值40290
  • 威望值270
  • 总积分43950

个人信息

  • 2017-12-24 已签到
    连续签到21天,获得了20个金钱
  • 你去重写一个类继承一下,或者在源代码里直接改了这个默认配置嘛
    QQ截图20171223182854.png
    建议重写一个类继承,只改这一个选项即可.

  • 客户端验证功能指的是什么?

    'enableClientValidation' => false, 这个配置不行吗?

  • 2017-12-23 已签到
    连续签到20天,获得了20个金钱
  • `<?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-12-22 已签到
    连续签到19天,获得了20个金钱
副董事长 等级规则
43950/50000
资料完整度
60/100
用户活跃度
100/100

Ta的关注

11

Ta的粉丝

13

Ta的访客

148