AuthDeviceController.php 3.73 KB
<?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;
   }
}