你好。之前提问过增加微信自动登陆的问题。 目前需要用户自行注册,绑定。而我要在用户执行微信页面时,直接注册一个账号,以便减少用户的操作。 所以我需要修改 /customer/login/wxindex 对应的代码部分。
/customer/login/wxindex
我目前使用composer安装的程序,修改这段代码的时候,需要注意以后升级不影响到此处。 所以我需要知道如何修改或复写此处代码。但我在开发文档中未能找到相关的介绍。 是否可以给出来一个解决方案?
https://github.com/fecshop/yii2_fecshop/blob/master/services/Customer.php#L843 我希望能够修改这个代码,如何未能找到openid的用户,直接在此处创建一个账号。但不影响后续升级
/** * @param $openid | string * 通过微信的openid 得到 user */ protected function actionGetByWxOpenid($openid) { $one = $this->_customerModel->findOne(['wx_openid' => $openid]); if(!$one){ $model = $this->_customerRegisterModel; $model->type='wx'; $model->password=rand(111111,99999); $model->wx_openid=$openid; $model->created_at = time(); $model->updated_at = time(); $model->save(); } $one = $this->_customerModel->findOne(['wx_openid' => $openid]); $primaryKey = $this->getPrimaryKey(); if ($one[$primaryKey]) { return $one; } return null; }
临时修改为如上所示,暂时可以直接创建账号并直接登陆。 希望能够提供一个不影响以后升级的解决方案。
二开重写文档:http://www.fecmall.com/doc/fecshop-guide/develop/cn-2.0/guide-fecmall-rewrite-func.html