bztang-admin/app/frontend/modules/member/controllers/SyncController.php

74 lines
2.1 KiB
PHP

<?php
/**
* Created by PhpStorm.
* Author:
* Date: 17/2/22
* Time: 上午11:56
*/
namespace app\frontend\modules\member\controllers;
use app\common\components\BaseController;
use app\common\helpers\Url;
use app\common\services\Session;
use app\frontend\modules\member\models\MemberModel;
use app\frontend\modules\member\models\SubMemberModel;
class SyncController extends BaseController
{
public function index()
{
$token = \YunShop::request()->token;
$type = \YunShop::request()->type ?: 7;
$servceSet = \Setting::get('plugins.sync-land');
if (! $servceSet['encryption']){
return $this->errorJson('加密key为空');
}
$key = $servceSet['encryption'];
if ($token) {
$decrypt = $this->decrypt($key, $token);
$uid = $decrypt ? explode('_', $decrypt) : 0;
$uid = $uid ? $uid[0] : 0;
$member = SubMemberModel::getMemberShopInfo($uid);
if (!$member) {
$member = MemberModel::getMemberById($uid);
if (!$member) {
return $this->errorJson('会员不存在');
}
SubMemberModel::insertData(array(
'member_id' => $member->uid,
'uniacid' => $member->uniacid,
'parent_id' => 0,
'group_id' => $member->groupid,
'level_id' => 0,
'pay_password' => '',
'salt' => '',
'invite_code' => MemberModel::generateInviteCode(),
'yz_openid' => 0,
));
}
Session::set('member_id', $uid);
$url = yzAppFullUrl('home', ['i'=> $member->uniacid, 'type' => $type]);
redirect($url)->send();
}
return $this->errorJson('参数有误');
}
private function decrypt($key, $plain_text)
{
$decrypted = openssl_decrypt(hex2bin($plain_text), 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
return $decrypted;
}
}