| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace client\controllers;
- use biz\user\services\UserAssetService;
- use biz\user\services\UserService;
- use Yii;
- use common\components\util;
- use yii\helpers\Json;
- class UserController extends BaseController
- {
-
- //获取登陆客户的资产 shish 2019.11.22
- public function actionAsset()
- {
- $asset = UserAssetService::getByUserId($this->userId);
- util::success($asset);
- }
-
- //获取登陆客户的优惠情况 shish 2019.12.3
- public function actionDiscount()
- {
- $userId = Yii::$app->params['userId'];
- $discount = UserAssetService::getDiscount($userId);
- util::success($discount);
- }
-
- //小程序用户完整信息 shish 2019.12.12
- public function actionMiniFullInfo()
- {
- $post = Yii::$app->request->post();
- $iv = isset($post['iv']) ? $post['iv'] : '';
- $encryptedData = isset($post['encryptedData']) ? $post['encryptedData'] : '';
- $appId = $this->merchant['miniAppId'];
- $merchantId = $this->merchantId;
- $miniOpenId = $this->user['miniOpenId'];
- if (empty($miniOpenId)) {
- util::fail('mini_open_id empty');
- }
- $cacheKey = 'MINI_SESSION_KEY_' . $miniOpenId;
- $sessionKey = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
- $wxMiniSecret = Yii::getAlias("@vendor/weixinMiniSecret");
- require_once($wxMiniSecret . '/wxBizDataCrypt.php');
- $pc = new \WXBizDataCrypt($appId, $sessionKey);
- $errCode = $pc->decryptData($encryptedData, $iv, $result);
- if ($errCode != 0) {
- Yii::info($result . ' ' . $errCode);
- util::fail('获取用户信息失败');
- }
- Yii::info('小程序获取用户信息:' . $result);
- $originalInfo = Json::decode($result);
- $source = UserService::$userSourceId['mini']['name'];
- $user = UserService::replaceUser($originalInfo, $source, $merchantId);
- $userId = $user['id'];
- $userInfo = UserService::getUserInfo($userId);
- util::success($userInfo);
- }
-
- //小程序用户手机号
- public function actionMiniMobile()
- {
- $post = Yii::$app->request->post();
- $iv = $post['iv'];
- $encryptedData = $post['encryptedData'];
- $merchantId = $this->merchantId;
- $merchant = $this->merchant;
- $appId = $merchant['miniAppId'];
- $miniOpenId = $this->user['miniOpenId'];
- $user = $this->user;
- if (!empty($user) && !empty($user['mobile'])) {
- $userId = $user['id'];
- UserService::updateById($userId, ['isMember' => 1]);
- UserAssetService::updateByUserId($userId, ['isMember' => 1]);
- util::successInfo('操作成功', 'A0001', ['mobile' => $user['mobile']]);
- }
- $cacheKey = 'MINI_SESSION_KEY_' . $miniOpenId;
- $sessionKey = Yii::$app->redis->executeCommand('GET', [$cacheKey]);
- if (empty($sessionKey)) {
- util::fail('sesstion key empty');
- }
- $wxMiniSecret = Yii::getAlias("@vendor/weixinMiniSecret");
- require_once($wxMiniSecret . '/wxBizDataCrypt.php');
-
- $pc = new \WXBizDataCrypt($appId, $sessionKey);
- $errCode = $pc->decryptData($encryptedData, $iv, $result);
- if ($errCode != 0) {
- util::fail('解密失败');
- }
- $arr = Json::decode($result);
- $mobile = isset($arr['purePhoneNumber']) ? $arr['purePhoneNumber'] : '';
- $userId = $user['id'];
- /**升级成为会员**/
- UserService::upgradeToMember($userId, $merchantId, ['mobile' => $mobile]);
- util::success(['mobile' => $mobile]);
- }
-
- }
|