diff --git a/app/adminapi/controller/v1/Card.php b/app/adminapi/controller/v1/Card.php
index a8a38b8..2633091 100644
--- a/app/adminapi/controller/v1/Card.php
+++ b/app/adminapi/controller/v1/Card.php
@@ -10,39 +10,34 @@ use app\common\lib\Aes;
class Card extends ApiController
{
public function addPrecard(){
- $req=input();
- //取得prefix
- $agent = Db::name('agent')
- ->where('id',$req['agent_id'])
- ->find();
+ $req=input('post.');
$aes = new Aes([]);
for($i=0;$iencrypt('user_id='.$user_id.'&verify_code='.$verify_code));
// $nfcUrl = genQrCode(getUrl().'/card/?params='.$params,$user_id,'nfc');
$data[]=[
- // 'user_id'=>$user_id,
- 'agent_id'=>$req['agent_id'],
- 'try_days'=>7,
+ 'agent_id'=>0,
+ 'name'=>$req['name'],
+ 'days'=>$req['days'],
+ 'serial_no' => '',
'verify_code'=>'',
'expire_time'=>$req['expire_time'],
'status'=>0,
- ];
-
+ ];
}
try{
Db::name('precard')
->insertAll($data);
}catch(\Exception $e){
- print_r($e);
- return $this->error('新增失敗');
+ return $this->error($e->getMessage());
}
return $this->success('新增成功');
@@ -80,7 +75,6 @@ class Card extends ApiController
// $aes = new Aes([]);
// $nfc_url = 'user_id='.$val['user_id'].'&verify_code='.$val['verify_code'];
// $result[$key]['params'] = getUrl().'/card/'.urlencode($aes->encrypt($nfc_url));
- $result[$key]['agent_name'] = Db::name('agent')->where('id',$val['agent_id'])->value('name');
$result[$key]['expire'] = date('Y-m-d',$val['expire_time']);
switch($val['status']){
case 0:
@@ -98,9 +92,9 @@ class Card extends ApiController
}
$aes = new Aes([]);
- $params = urlencode($aes->encrypt('verify_code='.$val['verify_code']));
+ $params = urlencode($aes->encrypt('sno='.$val['serial_no']));
$result[$key]['nfcurl']= getUrl().'/card/?params='.$params;
- // $nfcUrl = genQrCode('https://'.$_SERVER['HTTP_HOST'].'/card/?params='.$params,$data['user_id'],'nfc');
+ // $result[$key]['qrcode'] = genQrCode($result[$key]['nfcurl'],'nfc');
}
$rtn=[
@@ -139,18 +133,20 @@ class Card extends ApiController
public function updateVerifyCode(){
$id=input('id');
- $verify_code=strtoupper(input('code'));
+ $serial_no=strtoupper(input('code'));
+ //TODO:
$is_user = Db::name('user')
- ->where('uniqid',$verify_code)
+ ->where('uniqid',$serial_no)
->count();
if($is_user){
return $this->error('卡片已綁定會員');
}
+
$is_precard = Db::name('precard')
- ->where('verify_code',$verify_code)
+ ->where('serial_no',$serial_no)
->count();
if($is_precard){
@@ -160,9 +156,13 @@ class Card extends ApiController
try{
$result=Db::name('precard')
->where('id',$id)
- ->update(['verify_code'=>$verify_code,'status'=>1]);
-
- return $this->success('設定成功');
+ ->update(['serial_no'=>$serial_no,'status'=>1]);
+
+ $aes = new Aes([]);
+ $params = urlencode($aes->encrypt('sno='.$serial_no));
+ $nfcurl= $_SERVER['HTTP_HOST'].'/card/?params='.$params;
+
+ return $this->success($nfcurl);
}catch(\Exception $e){
return $this->error('系統錯誤');
}
diff --git a/app/api/controller/v1/Auth.php b/app/api/controller/v1/Auth.php
index 11b09a7..d476f76 100644
--- a/app/api/controller/v1/Auth.php
+++ b/app/api/controller/v1/Auth.php
@@ -7,12 +7,16 @@ use app\common\lib\Aes;
class Auth extends ApiController
{
function test(){
- echo genSerialNo();
+ $token='32UQBG%2BcpJ2AnvBDCR9gEix6a2ysc1Ro5pXg5%2Fvaang%3D';
+ $aes = new Aes([]);
+ print_r($aes->descrypt($token));
+ // parse_str($aes->descrypt($token),$params);
+ // print_r($params);
}
function testAes(){
$aes = new Aes([]);
- echo urlencode($aes->encrypt('user_id=tg123467890&verify_code=1111'));
+ echo ($aes->encrypt('sno=1234567890'));
}
function testDec(){
diff --git a/app/appapi/controller/v1/Auth.php b/app/appapi/controller/v1/Auth.php
index 5531e59..2c78a35 100644
--- a/app/appapi/controller/v1/Auth.php
+++ b/app/appapi/controller/v1/Auth.php
@@ -25,7 +25,6 @@ class Auth extends ApiController
$id_token = input('token');
$line_id = input('line_id');
-
// $profile = (new Parser())->parse($id_token);
// print_r($token->getClaim('name'));
@@ -346,7 +345,37 @@ class Auth extends ApiController
return $this->Success($avatar);
}
- public function test(){
- Vcard::genVcf('mc63de2a162b218');
+ public function verifyActivationToken(){
+ $token = input('token');
+
+ if(!$token){
+ return $this->error('參數錯誤');
+ }
+
+ $aes = new Aes([]);
+ parse_str($aes->descrypt($token),$params);
+
+ if(!isset($params['sno'])){
+ return $this->error('參數錯誤');
+ }
+
+ $precard = Db::name('precard')
+ ->where('serial_no',$params['sno'])
+ ->find();
+
+ if(!$precard){
+ return $this->error('查無預開卡');
+ }
+ //檢查到期日
+ if($precard['expire_time']!=0 && $precard['expire_time']