AuthDeviceController.php
3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
namespace app\api\controllers;
use Yii;
use yii\base\Exception;
use yii\log\Logger;
use yii\helpers\HtmlPurifier;
use yii\db\Query;
use common\business\MarketingCoupon;
use common\business\RepairOrderPriceRule;
use common\business\WarrantyLevelRule;
use common\helpers\AppErrorLog;
use common\helpers\Log as AppLog;
use common\helpers\ImageManager;
use common\helpers\Utils;
use common\models\Address as AddressModel;
use common\models\BindDeviceApply as BindDeviceApplyModel;
use common\models\ClientUser as ClientUserModel;
use common\models\CouponActivity as CouponActivityModel;
use common\models\DeviceFault as DeviceFaultModel;
use common\models\GuestDevice as GuestDeviceModel;
use common\models\Owner as OwnerModel;
use common\models\Qrcode as QrcodeModel;
use common\models\RegionFeeSetting as RegionFeeSettingModel;
use common\models\RepairOrder as RepairOrderModel;
use common\models\RepairOrderRepairPlans as RepairOrderRepairPlansModel;
use common\models\SysSetting as SysSettingModel;
use common\models\UserDevice as UserDeviceModel;
use common\models\UserDeviceFav as UserDeviceFavModel;
use common\models\UserDeviceLog as UserDeviceLogModel;
use common\models\RedpackActivity as RedpackActivityModel;
use common\models\UserRedpacks as UserRedpacksModel;
use common\models\User as UserModel;
use common\models\RedpackAmount as RedpackAmountModel;
use common\models\RepairPlan as RepairPlanModel;
use common\helpers\MinaHelper;
use common\exts\wxpay\Log as WxpayLog;
use domain\device\DeviceCatRepository;
use domain\device\DeviceCat;
use domain\device\models\ModelsDeviceFaults as ModelsDeviceFaultsModel;
use domain\trade\RepairOrderUserOp;
use domain\trade\RepairOrderStatus;
use domain\trade\RepairOrderChannel;
use domain\trade\RepairOrderClaimRepository;
use domain\marketing\userads\UserAdsRepository;
use stdClass;
use function sizeof;
use function date;
use function count;
use function time;
/**
* 设备授权-控制器
* Class AuthDeviceController
* @package app\api\controllers
* manufacture 厂商ID string 是个数字字符串,例如“001”代表 XX厂商
device_id 设备id string 设备的ID
project 项目ID string 项目ID
model 型号ID string 例如 001
timestamp 时间戳 int 例如 2019-10-10 01:01:01
sign 签名 string 用来认证请求是否合法 签名组合为 md5(manufacture + project+ model + production + timestamp + salt) salt 为客户端和服务器约定的key
production 生产日期ID string 日期 例如001
*
*/
class AuthDeviceController extends ScopeUserController
{
const SIGN_SALT = '13456';
/**
* 设备授权接口
* @return stdClass
*/
public function actionIndex()
{
$req = Yii::$app->request;
$manufacture = $req->post('manufacture');
$device_id = $req->post('device_id');
$project = $req->post('project');
$model = $req->post('model');
$sign = $req->post('sign');
$production = $req->post('production');
$timestamp = $req->post('timestamp');
$e = new stdClass();
$e->status = 0;
$e->message = 'fail';
$e->serial_no = '';;
$e->mca = '';
$salt = self::SIGN_SALT;
$makeSign = md5($manufacture . $project. $model . $production . $timestamp . $salt);
if ($sign != $makeSign) {
$e->message = 'sign 有误';
return $e;
}
$e->status = 1;
$e->message = '授权成功';
$e->mac = Utils::macGenerate();
return $e;
}
}