TimestampBehavior::class ] ]; } // 人脸核身任务是否已完成 /** * 人脸核身任务是否已完成:未完成 */ const FACE_NO_FINISH = 0; /** * 人脸核身任务是否已完成:完成 */ const FACE_FINISH = 1; //0. 未开始;1. 等待中;2. 失败;3. 成功。返回的 is_finish 字段为 true 时,face_status 才是最终状态。 /** * 人脸核身任务状态枚举:未完成 */ const FACE_STATUS_INIT = 0; /** * 人脸核身任务状态枚举:等待中 */ const FACE_STATUS_WAITING = 1; /** * 人脸核身任务状态枚举:失败 */ const FACE_STATUS_FAIL = 2; /** * 人脸核身任务状态枚举:成功 */ const FACE_STATUS_SUCCESS = 3; const FACE_STATUS_NAME = [ self::FACE_STATUS_INIT => '人脸核身任务状态:未开始', self::FACE_STATUS_WAITING => '人脸核身任务状态:等待中', self::FACE_STATUS_FAIL => '人脸核身任务状态:失败', self::FACE_STATUS_SUCCESS => '人脸核身任务状态:成功', ]; // 发起时 along_with_auth 填 true 时有效:9. 认证短信核验通过 // 9. 认证短信核验通过 const ALONG_WITH_AUTH_SUCCESS = 9; //未短信核验 const ALONG_WITH_AUTH_NO = 0; /** * 获取任务流程状态名称:未开启任务流程 */ const PROCEDURE_STATUS_NOT_START = 0; /** * 获取任务流程状态名称:等待支付认证审核费用 */ const PROCEDURE_STATUS_AUTH_PAY_LOADING = 15; /** * 获取任务流程状态名称:认证审核费用支付成功 */ const PROCEDURE_STATUS_AUTH_PAY_SUCCESS = 16; /** * 获取任务流程状态名称:认证审核中 */ const PROCEDURE_STATUS_AUTH_AUDIT = 17; /** * 获取任务流程状态名称:认证审核驳回 */ const PROCEDURE_STATUS_AUTH_AUDIT_REJECT = 18; /** * 获取任务流程状态名称:认证审核通过 */ const PROCEDURE_STATUS_AUTH_AUDIT_SUCCESS = 19; /** * 获取任务流程状态名称:认证审核最终失败(不能再修改) */ const PROCEDURE_STATUS_AUTH_AUDIT_FINAL_FAIL = 20; /** * 获取任务流程状态名称:创建备案审核单失败 */ const PROCEDURE_STATUS_ICP_AUDIT_FAIL = 21; /** * 获取任务流程状态名称:备案平台审核中 */ const PROCEDURE_STATUS_ICP_PLATFORM_AUDIT = 22; /** * 获取任务流程状态名称:备案平台审核驳回 */ const PROCEDURE_STATUS_ICP_PLATFORM_AUDIT_REJECT = 23; /** * 获取任务流程状态名称:备案管局审核中 */ const PROCEDURE_STATUS_ICP_GOVERNMENT_AUDIT = 24; /** * 获取任务流程状态名称:管局审核驳回 */ const PROCEDURE_STATUS_ICP_GOVERNMENT_AUDIT_REJECT = 25; /** * 获取任务流程状态名称:认证及备案完成 */ const PROCEDURE_STATUS_SUCCESS = 26; /** * 获取任务流程状态名称 * @param $status * @return string[] */ const PROCEDURE_STATUS_NAME = [ self::PROCEDURE_STATUS_NOT_START => '人身核验通过 认证资料未填写或提交', self::PROCEDURE_STATUS_AUTH_PAY_LOADING => '等待支付认证审核费用', self::PROCEDURE_STATUS_AUTH_PAY_SUCCESS => '认证审核费用支付成功', self::PROCEDURE_STATUS_AUTH_AUDIT => '认证审核中', self::PROCEDURE_STATUS_AUTH_AUDIT_REJECT => '认证审核驳回', self::PROCEDURE_STATUS_AUTH_AUDIT_SUCCESS => '认证审核通过', self::PROCEDURE_STATUS_AUTH_AUDIT_FINAL_FAIL => '认证审核最终失败(不能再修改)', self::PROCEDURE_STATUS_ICP_AUDIT_FAIL => '创建备案审核单失败', self::PROCEDURE_STATUS_ICP_PLATFORM_AUDIT => '备案平台审核中', self::PROCEDURE_STATUS_ICP_PLATFORM_AUDIT_REJECT => '备案平台审核驳回', self::PROCEDURE_STATUS_ICP_GOVERNMENT_AUDIT => '管局审核中', self::PROCEDURE_STATUS_ICP_GOVERNMENT_AUDIT_REJECT => '管局审核驳回', self::PROCEDURE_STATUS_SUCCESS => '认证及备案完成', ]; //,仅当任务流程状态为 24(备案管局审核中)的时候才有效。1:等待核验中,2:核验完成,3:核验超时。 const SMS_VERIFY_STATUS_VERIFY_INIT = 0; const SMS_VERIFY_STATUS_VERIFY = 1; const SMS_VERIFY_STATUS_SUCCESS = 2; const SMS_VERIFY_STATUS_TIMEOUT = 3; /** * 获取短信核验状态名称 仅当任务流程状态为 24(备案管局审核中) * @param $status * @return string[] */ const SMS_VERIFY_STATUS_NAME = [ self::SMS_VERIFY_STATUS_VERIFY_INIT => '未开始管局备案', self::SMS_VERIFY_STATUS_VERIFY => '等待核验中', self::SMS_VERIFY_STATUS_SUCCESS => '核验完成', self::SMS_VERIFY_STATUS_TIMEOUT => '核验超时', ]; /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'store_id' => '商城ID', 'mini_id' => '小程序ID', 'task_id' => '人脸核身任务id', 'face_is_finish' => '人脸核身任务是否已完成', 'face_status' => '人脸核身任务状态枚举', 'face_along_with_auth_result' => '人脸核身任务', 'face_verify_url' => '人脸核身任务Url', 'face_verify_qrcode_url' => '人脸核身任务本地二维码Url', 'data' => '表单数据', 'hints' => '表单提交后错误提示', 'procedure_id' => '小程序认证及备案任务流程 id', 'pay_url' => '小程序认证认证审核费用付费链接', 'pay_qrcode_url' => '小程序认证认证审核费用付费链接二维码地址', 'ocr_data' => '营业执照身份证正反面数据 用作ocr识别使用', 'procedure_status' => '任务流程状态枚举', 'orderid' => '小程序后台展示的认证订单号', 'refill_reason' => '小程序认证审核单被驳回(procedure_status 为 18)时有效', 'fail_reason' => '小程序认证审核最终失败的原因(procedure_status 为 20)时有效', 'icp_audit' => '小程序备案相关信息错误原因', 'sms_verify_status' => '管局短信核验状态', 'is_use_service' => '是否使用服务商代缴模式', 'is_delete' => '', 'created_at' => '', 'updated_at' => '', ]; } public function afterSave($insert, $changedAttributes) { parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub //扣减商城认证次数 if (isset($changedAttributes['is_use_service']) && intval($changedAttributes['is_use_service'])) { $store = Store::findOne($this->store_id); $store->mini_auth_num -= 1; if (!$store->save()) { debug_log(['errors' => $store->errors], 'wechatAuth.log'); } } //如果失败就增加商城认证次数 if (intval($this->procedure_status) === self::PROCEDURE_STATUS_AUTH_AUDIT_FINAL_FAIL && intval($this->is_use_service)) { $store = Store::findOne($this->store_id); $store->mini_auth_num += 1; if (!$store->save()) { debug_log(['errors' => $store->errors], 'wechatAuth.log'); } } //如果是新增的话 就给原认证以及备案表增加认证以及备案数据 if ($changedAttributes['procedure_status'] && intval($this->procedure_status)) { $miniAuth = StoreMiniAuth::findOne(['store_id' => $this->store_id, 'mini_id' => $this->mini_id]); if (!$miniAuth) { $miniAuth = new StoreMiniAuth(); $miniAuth->store_id = $this->store_id; $miniAuth->mini_id = $this->mini_id; } $data = []; if ($this->data) { $data = json_decode($this->data, true); } if (!empty($data['auth_data'])) { $data['auth_data']['qualification'] = [ 'media_id' => '', 'url' => '' ]; $miniAuth->auth_form = json_encode($data['auth_data'], JSON_UNESCAPED_UNICODE); } //认证未成功 开始修改值 if ($miniAuth->apply_status != 4) { //用大于等于是觉得哪个状态可能没及时处理到 if ($this->procedure_status >= self::PROCEDURE_STATUS_AUTH_PAY_LOADING) { $miniAuth->task_status = 15; $miniAuth->apply_status = 1; } if ($this->procedure_status >= self::PROCEDURE_STATUS_AUTH_AUDIT) { $miniAuth->task_status = 12; $miniAuth->apply_status = 2; } if ($this->procedure_status >= self::PROCEDURE_STATUS_AUTH_AUDIT_REJECT) { $miniAuth->task_status = 12; $miniAuth->apply_status = 3; } if ($this->procedure_status >= self::PROCEDURE_STATUS_AUTH_AUDIT_SUCCESS && $this->procedure_status != self::PROCEDURE_STATUS_AUTH_AUDIT_FINAL_FAIL) { $miniAuth->task_status = 12; $miniAuth->apply_status = 4; } if ($this->procedure_status == self::PROCEDURE_STATUS_AUTH_AUDIT_FINAL_FAIL) { $miniAuth->task_status = 12; $miniAuth->apply_status = 5; } } $miniAuth->save(); if ($this->procedure_status > self::PROCEDURE_STATUS_AUTH_AUDIT_FINAL_FAIL) { $miniIcp = StoreMiniIcp::findOne(['store_id' => $this->store_id, 'mini_id' => $this->mini_id]); if (!$miniIcp) { $miniIcp = new StoreMiniIcp(); $miniIcp->store_id = $this->store_id; $miniIcp->mini_id = $this->mini_id; } $miniIcp->face_status = 3; $miniIcp->is_finish = 1; if (!empty($data['auth_data'])) { unset($data['auth_data'], $data['mini_id']); $data['icp_subject']['personal_info'] = [ 'residence_permit' => [ 'url' => '', 'media_id' => '' ] ]; $miniIcp->icp_form = json_encode($data, JSON_UNESCAPED_UNICODE); } if ($miniIcp->icp_audit_status != 6) { if ($this->procedure_status >= self::PROCEDURE_STATUS_ICP_AUDIT_FAIL) { $miniIcp->icp_audit_status = -1; } if ($this->procedure_status >= self::PROCEDURE_STATUS_ICP_PLATFORM_AUDIT) { $miniIcp->icp_audit_status = 2; } if ($this->procedure_status >= self::PROCEDURE_STATUS_ICP_PLATFORM_AUDIT_REJECT) { $miniIcp->icp_audit_status = 3; } if ($this->procedure_status >= self::PROCEDURE_STATUS_ICP_GOVERNMENT_AUDIT) { $miniIcp->icp_audit_status = 4; } if ($this->procedure_status >= self::PROCEDURE_STATUS_ICP_GOVERNMENT_AUDIT_REJECT) { $miniIcp->icp_audit_status = 5; } if ($this->procedure_status >= self::PROCEDURE_STATUS_SUCCESS) { $miniIcp->icp_audit_status = 6; } } $miniIcp->save(); } } } }