一、原理
1、粉丝如何成为平台会员:后台可以控制;前台用户可以注册(领会员卡)为平台会员
2、平台会员才能成为模块会员
3、平台会员表mc_members
4、粉丝表及分析会员映射表mc_mapping_fans
二、模块会员注册
1、根据当前用户的openid获取uid
2、如果平台会员没有头像,就获取粉丝表中的用户头像
3、如果是新添加,createtime ;如果是修改则根据用户可以修改的昵称、头像将数据保存
4、保存到数据表后,再根据openid从表中读取此会员信息返回
public function update(){
global $_W;
//未登录、未授权直接退出
if(empty($_W['openid'])){
return '';
}
//加载mc会员管理模型库
load()->model('mc');
//转换成会员id
$uid = mc_openid2uid($_W['openid']);
//从平台会员表中获取昵称、头像、姓名、电话、性别、城市省份
$user = mc_fetch($uid,array('nickname','avatar','realname','mobile','gender','residecity','resideprovince'));
//file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/test.txt",$user);
//如果平台会员头像为空,就采用微信授权方式获取会员的头像、昵称
if(empty($user['avatar'])){
$user = mc_oauth_userinfo();
}
//file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/test1.txt",$user);
//从应用(微擎模块)会员中获取会员信息
$member = M('member')->getInfo($_W['openid']);
if(empty($member)){
$data = array();
$data['uniacid'] = $_W['uniacid'];
$data['openid'] = $_W['openid'];
$data['nickname'] = $user['nickname'];
$data['avatar'] = tomedia($user['avatar']);
$data['create_time'] = time();
$data['uid'] = $uid;
pdo_insert($this->table,$data);
}else{
$data = array();
if(!empty($user['nickname'])){
$data['nickname'] = trim($user['nickname']);
}
if(!empty($user['avatar'])){
$data['avatar'] = tomedia(trim($user['avatar']));
}
if(!empty($uid)){
$data['uid'] = intval($uid);
}
unset($data['id']);
if(!empty($data)){
pdo_update($this->table,$data,array('id'=>$member['id']));
}
}
$sql = "SELECT * FROM ".tablename($this->table)." WHERE uniacid = :uniacid AND openid = :openid";
$params = array(':uniacid'=>$_W['uniacid'],':openid'=>$_W['openid']);
$member = pdo_fetch($sql,$params);
$user = array_merge($user,$member);
return $user;
}