[TOC]
#### 統一用戶中心說明
為了更好的管理公眾號的用戶,微擎系統引入了統一用戶機制。引入統一用戶中心(下稱 **用戶中心**)有以下好處:
* 方便統一管理用戶的基本資料和積分信息
* 方便從不同的渠道平臺(下稱**渠道平臺**。指:微信,易信,來往或者自有的CRM等不同的用戶系統)同步和共享用戶資源
操作流程如下:

#### Openid與Uid的關系
這里的Openid可以泛指從微信、易信或是其它平臺進入的粉絲,當這些這些粉絲進入模塊或是微站時,在系統中是不產生任何資料數據。
僅當這些粉絲完成綁定、注冊操作時在系統中產生一個uid與之對應,才可以存儲一些額外資料(包括真實姓名,性別等等)和積分數據,系統也允許多個Opendid對應同一個Uid。
#### 驗證粉絲身份信息
當模塊或是系統需要獲取會員資料或是積分時,可以使用 **checkauth()** 函數來判斷會員是否進行登錄(未登錄時會跳轉至登錄頁面),以便可以使用其資料和積分數據。例如:
~~~
//需要使用會員積分數據
//此函數會判斷當前會員是否進登錄,如果沒有登錄跳轉至登錄頁面
checkauth();
print_r($_W['member']);
~~~
#### 會員的積分資料
微擎系統內置5類積分數據,其實積分,余額,貢獻為系統內置的,系統很多功能都依賴此數據。
可以通過 功能選項 – 積分設置 來管理積分名稱和是否啟用
| 變量名稱 | 說明 |
| credit1 | 積分 |
| credit2 | 余額 |
| credit3 | 貢獻 |
| credit4 | 缺省 |
| credit5 | 缺省 |
#### 會員基本資料
微擎系統內置了會員常用的資料信息來滿足各功能的需求。
可以通過 功能選項 – 會員字段管理 來管理資料名稱和是否啟用
| 變量名稱 | 說明 |
| realname | 真實姓名 |
| nickname | 昵稱 |
| avatar | 頭像 |
| qq | QQ號 |
| mobile | 手機號碼 |
| vip | VIP級別 |
| gender | 性別 |
| birthyear | 出生生日 |
| constellation | 星座 |
| zodiac | 生肖 |
| telephone | 固定電話 |
| idcard | 證件號碼 |
| studentid | 學號 |
| grade | 班級 |
| address | 郵寄地址 |
| zipcode | 郵編 |
| nationality | 國家 |
| resideprovince | 居住地址 |
| graduateschool | 畢業學校 |
| company | 公司 |
| education | 學歷 |
| occupation | 職業 |
| position | 職位 |
| revenue | 年收入 |
| affectivestatus | 情感狀態 |
| lookingfor | 交友目的 |
| bloodtype | 血型 |
| height | 身高 |
| weight | 體重 |
| alipay | 支付寶帳號 |
| msn | MSN |
| email | 電子郵箱 |
| taobao | 阿里旺旺 |
| site | 主頁 |
| bio | 個人介紹 |
| interest | 興趣愛好 |
| workerid | 工號 |
#### 積分
當模塊有獎勵積分時(credit1,credit2)應該寫入個人中心積分日志

#### 會員積分操作
系統提供一系列的方法供開發者變更會員的積分數據,大家在開發的時候應該避免直接數據操作積分數據。保持各功能之間的數據互通。下面具體說一下操作會員積分的方法
#### 獲取會員積分數據
獲取積分數據時,要銜使用 **checkauth()** 函數來檢查會員是否登錄,以便來獲取其積分數據。\
會員登錄成功后,獲取會員積分數據通過系統 **$_W[‘member’]** 全局變量可以獲取到,具體的數據結構如下:
~~~
Array
(
[uid] => 10128
[realname] => 用戶昵稱
[mobile] => 手機號碼
[email] => 郵箱
[groupid] => 用戶組ID
[groupname] => 用戶組名稱
[credit1] => 積分
[credit2] => 余額
[credit3] => 其它積分
[credit4] => 其它積分
[credit5] => 其它積分
[credit6] => 其它積分
)
~~~
#### 更新用戶積分數據
~~~
boolean mc_credit_update($uid, $credittype, $creditval, $log = array());
~~~
* **$uid** 要變更數據會員的uid
* **$credittype** 要變更積分數據的類型,分為credit1, credit2, credit3, credit4, credit5,credit6
* **$creditval** 要增減積分的值,正數為增,負數為減
* **$log** 積分操作日志,具體含義如下
~~~
$log = array(
0 => 操作管理員uid
1 => 增減積分備注
2 => 模塊標識,例如:we7_store
3 => 店員uid
4 => 門店id
5 => 1(線上操作) 2(系統后臺,公眾號管理員和操作員) 3(店員)
);
~~~
示例:
~~~
load()->model('mc');
$uid = mc_openid2uid($fromuser);
mc_credit_update($uid, 'credit1', '10', array(0, '使用砸蛋模塊未中獎,贈送10積分'));
~~~
~~~
load()->model('mc');
//代金券和折扣券的兌換記錄,
mc_credit_update($_W['member']['uid'], 'credit1', -20, array($_W['member']['uid'], '禮品兌換: Iphone手機 消耗積分:20'));
~~~