store_id; if (!empty($store_id)) { $store_mini = StoreAliMini::find()->where(['store_id' => $store_id])->orderBy('id desc')->one(); if (!empty($store_mini->id)) { $this->mini_id = $store_mini->id; } $this->store_mini = $store_mini; $this->mini_version = StoreAliMiniVersion::find()->where(['mini_id' => $store_mini->id])->orderBy('id desc')->one(); } //获取二维码信息 $qrcode_id = $this->qrcode_id; if (!empty($qrcode_id)) { $qrcode = AggregateQrcode::findOne($qrcode_id); if (empty($qrcode)) { return [ 'code' => 1, 'msg' => "二维码不存在" ]; } if ($qrcode->ali_status == 1) { return [ 'code' => 1, 'msg' => "二维码已经被使用" ]; } $this->qrcode = $qrcode; } } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage() ]; } } public function registerMiniStatus() { try { $result = $this->inits(); if ($result['code'] === 1) { return $result; } /** * 小程序注册 * status = 0 没有注册小程序信息 * status = 1 小程序注册待确认或签约审核中 * status = 2 小程序注册已拒绝 */ //商城ID $store_id = $this->store_id; //小程序ID $mini_id = $this->mini_id; //小程序Model $store_mini = $this->store_mini; //小程序版本信息 $mini_version = $this->mini_version; //获取店铺信息 $store = Store::findOne($store_id); //申请店铺进件信息 // $store_schedule = StoreSchedule::find()->where(['store_id' => $store_id])->asArray()->one(); // //获取注册信息 // $merchant_info = json_decode($store_schedule['merchant_info'], true); // //获取营业执照信息 // $license_info = $merchant_info['subject_info']['business_license_info']; //注册小程序信息 $data = [ "license_name" => $store_mini->license_name ?: '', "license_no" => $store_mini->license_no ?: '', "app_name" => $store_mini->app_name ?: $store->name, "service_phone" => $store_mini->service_phone, "license_pic" => $store_mini->license_pic ?: '', "alipay_account" => $store_mini->alipay_account, "legal_personal_name" => $store_mini->legal_personal_name ?: '', "contact_name" => $store_mini->legal_personal_name ?: '' ]; if (empty($store_mini->license_no) || ((int)$store_mini->order_cancel === 1)) { $token_log = StoreMiniToken::findOne(['store_id' => $store_id]); if (((int)$store_mini->is_merchant === 1) || ($token_log->id && ((int)$token_log->status === 1))) { return [ 'code'=>0, 'msg'=>"需要注册小程序信息", 'data'=>[ 'status' => 0, 'mini_info' => $data, 'bind_store_id' => $store_id, 'progress' => 0, 'business_model' => $store->business_model ], ]; } elseif ($token_log->id && (int)$token_log->status === 0) { return [ 'code'=>0, 'msg'=>"正在认证", 'data'=>[ 'status' => -1, 'mini_info' => $data, 'bind_store_id' => $store_id, 'progress' => 0, 'business_model' => $store->business_model ], ]; } elseif ((empty($store_mini->is_merchant)) && (empty($token_log->id) || (int)$token_log->status === 2)) { return [ 'code'=>0, 'msg'=>"需要认证", 'data'=>[ 'status' => -2, 'mini_info' => $data, 'bind_store_id' => $store_id, 'progress' => 0, 'business_model' => $store->business_model ], ]; } } $form = new RegisterMiniForm(); $form->mini_id = $mini_id; if (empty($store_mini->auth_app_id) && !empty($store_mini->order_no)) { $result = $form->getFastRegisterStatus(); if ($result['code'] != 0) { throw new \Exception($result['msg']); } return [ 'code'=>0, 'msg'=>"小程序注册待确认或签约审核中", 'data'=>[ 'status' => 1, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 0, 'business_model' => $store->business_model ], ]; } if ($store_mini->order_cancel == 1) { return [ 'code'=>0, 'msg'=>"小程序注册已拒绝", 'data'=>[ 'status' => 2, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 0, 'business_model' => $store->business_model ] ]; } if ($store_mini->auth_app_id) { $result = $form->getAesKey(); if ($result['code'] != 0) { throw new \Exception($result['msg']); } } return $this->perfectMiniStatus(); } catch (\Exception $e) { return [ 'code' => 0, 'msg' => $e->getMessage(), 'data'=>[ 'status' => 1, 'progress' => 0, 'business_model' => $store->business_model ] ]; } } /** * 完善信息 */ public function perfectMiniStatus() { try { /** * 小程序完善信息 * status = 0 小程序资料需要完善 */ //商城ID $store_id = $this->store_id; //小程序ID $mini_id = $this->mini_id; //小程序Model $store_mini = $this->store_mini; //小程序版本信息 $mini_version = $this->mini_version; $store = Store::findOne($store_id); //配置前端展示数据 $form = new PerfectMiniForm(); // $all_categories = $form->getAllCategory(); // $all_category = []; // $old_category = []; // if ($all_categories['code'] === 0) { // $all_category = $all_categories['data']; // $old_category = $all_categories['old_data']; // } $form->mini_id = $mini_id; $data = [ "app_name" => $store_mini['app_name'] ?: $store->name, "app_english_name" => $store_mini['app_english_name'], "app_slogan" => $store_mini['app_slogan'], "license_no" => $store_mini['license_no'], "license_pic" => $store_mini['license_pic'], "license_name" => $store_mini['license_name'], "license_date" => $store_mini['license_date'], "is_long_effective" => $store_mini['is_long_effective'], "app_logo" => $store_mini['app_logo'] ?: $store->logo, "app_desc" => $store_mini['app_desc'], "service_phone" => $store_mini['service_phone'], "service_email" => $store_mini['service_email'], 'other_data' => json_decode($store_mini['other_data']) ?: [] ]; if ($mini_version->is_submit == 0 && ( empty($store_mini['app_name']) || empty($store_mini['app_english_name']) || empty($store_mini['app_slogan']) || empty($store_mini['app_logo']) || empty($store_mini['app_desc']) || empty($store_mini['service_phone']) || empty($store_mini['service_email']) )) { return [ 'code'=>0, 'msg'=>"小程序资料需要完善", 'data'=>[ 'status' => 0, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 1, 'business_model' => $store->business_model ] ]; } return $this->submitMiniStatus($data); } catch (\Exception $e) { return [ 'code' => 0, 'msg' => $e->getMessage(), 'data' => [ 'progress' => 1, 'status' => 1 ] ]; } } public function submitMiniStatus($data = []) { try { /** * 小程序提交审核资料、发布 * status = 0 小程序待审核 * status = 1 小程序审核中 * status = 2 小程序审核失败 * status = 3 小程序待发布 */ //小程序版本信息 $mini_version = $this->mini_version; $store_id = $this->store_id; //获取店铺信息 $store = Store::findOne($store_id); $mini_id = $this->mini_id; $form = new SubmitMiniForm(); $form->mini_id = $mini_id; if ($mini_version->is_submit == 0 && $mini_version->is_back == 0 && $mini_version->create_time < strtotime(date("Y-m-d"))) { return [ 'code' => 0, 'msg' => "小程序更新模板",//可以审核 'data' => [ 'status' => 3, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 2, 'business_model' => $store->business_model ] ]; } if($mini_version->is_submit == 0) { return [ 'code' => 0, 'msg' => $mini_version->is_back == 0 ? "小程序待审核" : $mini_version->fail_reason,//可以审核 'data' => [ 'status' => 0, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 2, 'business_model' => $store->business_model ] ]; } if ($mini_version->is_submit == 1) { return [ 'code'=>0, 'msg'=>"小程序审核中", 'data'=>[ 'status'=>1, 'mini_info'=>$data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 2, 'business_model' => $store->business_model ] ]; } if ($mini_version->is_submit == 3) { $result = $form->backPerfect(); if ($result != 0) { throw new \Exception($result['msg']); } return [ 'code'=>0, 'msg'=>"小程序审核失败", 'data'=>[ 'status' => 3, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 2, 'business_model' => $store->business_model ] ]; } if ($mini_version->is_submit == 2) { return [ 'code'=>0, 'msg'=>"小程序待发布",//可以发布 'data'=>[ 'status' => 2, 'mini_info' => $data, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 2, 'business_model' => $store->business_model ] ]; } return $this->faceMiniStatus(); } catch (\Exception $e) { return [ 'code' => 0, 'msg' => $e->getMessage(), 'data' => [ 'progress' => 2, 'status' => 3 ] ]; } } //签约当面付 public function faceMiniStatus() { try { /** * 签约当面付 * status = 0 需要创建事务 * status = 1 需要签约当面付 * status = 2 审核当面付 * status = 3 审核中 * status = 4 等待商户确认 * status = 5 审核失败 */ //商城ID $store_id = $this->store_id; $store = Store::findOne($store_id); //小程序ID $mini_id = $this->mini_id; //小程序Model $store_mini = $this->store_mini; //小程序版本信息 $mini_version = $this->mini_version; $form = new FaceMiniForm(); $form->mini_id = $mini_id; if (!empty($store_mini->batch_no) && $store_mini->batch_status != 6) { $result = $form->openAgentOrderStatus(); if ($result['code'] != 0) { throw new \Exception($result['msg']); } $result = $result['data']; } if ($store_mini->batch_status == 0 || $store_mini->batch_status == 7 || empty($store_mini->batch_no)) {//没有创建事务 return [ 'code'=>0, 'msg'=>"需要创建事务", 'data'=>[ 'status' => 0, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 3, 'business_model' => $store->business_model ] ]; } elseif ($store_mini->batch_status == 1 || $store_mini->batch_status == 4) {//创建事务成功 return [ 'code'=>0, 'msg'=>"需要签约当面付", 'data'=>[ 'status'=>1, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 3, 'business_model' => $store->business_model ] ]; } elseif ($store_mini->batch_status == 2) {//签约当面付成功 return [ 'code'=>0, 'msg'=>"需要审核当面付", 'data'=>[ 'status'=>2, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 3, 'business_model' => $store->business_model ] ]; } elseif ($store_mini->batch_status == 3) {//审核中 return [ 'code'=>0, 'msg'=>"审核中", 'data'=>[ 'status'=>3, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 3, 'business_model' => $store->business_model ] ]; } elseif ($store_mini->batch_status == 5) {//等待商户确认 return [ 'code'=>0, 'msg'=>"等待商户确认", 'data'=>[ 'status'=>5, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 3, 'business_model' => $store->business_model ] ]; } if ($store_mini->batch_status == 8) {//审核失败 return [ 'code'=>0, 'msg'=>"审核失败", 'data'=>[ 'status' => 6, 'reason' => $result->reject_reason, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 3, 'business_model' => $store->business_model ] ]; } return $this->phoneMiniStatus(); } catch (\Exception $e) { return [ 'code' => 0, 'msg' => $e->getMessage(), 'data' => [ 'progress' => 3, 'status' => 7 ] ]; } } public function phoneMiniStatus() { try { /** * 手机号字段申请 * status = 0 需要获取手机号权限 * status = 1 手机号权限申请中 * status = 2 申请失败 */ //商城ID goto Register; $store_id = $this->store_id; $store = Store::findOne($store_id); // if ((int)$store->business_model !== 1) { // goto Register; // } //小程序ID $mini_id = $this->mini_id; //小程序Model $store_mini = $this->store_mini; //小程序版本信息 $mini_version = $this->mini_version; $form = new PhoneMiniForm(); $form->mini_id = $mini_id; $field = $form->getField(); if ($field['code'] != 0) { throw new \Exception($field['msg']); } $result = $form->getPhoneStatus(); if ($result['code'] != 0) { throw new \Exception($result['msg']); } //获取手机号申请资料 $apply_phone_msg = json_decode($store_mini->apply_phone_msg ,true) ?: []; if ($store_mini->is_get_phone == 0) { return [ 'code' => 0, 'msg' => "需要申请接入手机号权限", 'data' => [ 'status' => 0, 'field' => $field['data'], 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 4, 'data' => $apply_phone_msg, 'business_model' => $store->business_model ] ]; } if ($result['status'] === "AUDIT") { return [ 'code' => 0, 'msg' => "手机号权限申请中", 'data' => [ 'status' => 1, 'field' => $field['data'], 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 4, 'data' => $apply_phone_msg, 'business_model' => $store->business_model ] ]; } if ($result['status'] === "REJECT" || $result['status'] === "INVALID") { return [ 'code' => 0, 'msg' => "申请失败" . $store_mini->apply_phone_fail, 'data' => [ 'status' => 2, 'reason' => $store_mini->apply_phone_fail, 'field' => $field['data'], 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 4, 'data' => $apply_phone_msg, 'business_model' => $store->business_model ] ]; } Register: return $this->qrcodeMiniStatus(); } catch (\Exception $e) { return [ 'code' => 0, 'msg' => $e->getMessage(), 'data' => [ 'progress' => 4, 'status' => 3, ] ]; } } public function qrcodeMiniStatus() { try { /** * 二维码绑定 * status = 0 未绑定聚合码 * status = 1 已完成 */ //商城ID $store_id = $this->store_id; $store = Store::findOne($store_id); if ((int)$store->business_model !== 1) { goto Register; } //小程序ID $mini_id = $this->mini_id; $AggregateQrcode = AggregateQrcode::find()->where(['or', ['ali_mini_id' => $mini_id], ['store_id' => $store_id]])->one(); if (empty($AggregateQrcode->ali_status)) { return [ 'code'=>0, 'msg'=>"未绑定聚合码", 'data'=>[ 'status' => 0, 'bind_store_id' => $store_id, 'mini_id' => $mini_id, 'progress' => 5, 'business_model' => $store->business_model, 'qrcode_id' => $AggregateQrcode->id ] ]; } if ($AggregateQrcode->ali_status == 1) { Register: $merchant_info = MerchantInfo::findOne(['bind_store_id' => $store_id, 'is_delete' => 0]); if (!empty($merchant_info->app_status)) { $app_status = $merchant_info->app_status; $app_status = str_replace('2', '', $app_status); $merchant_info->app_status = $app_status; $merchant_info->save(); } return [ 'code'=>0, 'msg'=>"完成", 'data'=>[ 'status' => 1, 'bind_store_id' => $store_id, 'mini_id' => $mini_id ?? 0, 'progress' => 6, 'business_model' => $store->business_model ] ]; } throw new \Exception("参数错误"); } catch (\Exception $e) { return [ 'code' => 1, 'msg' => $e->getMessage(), 'data' => [ 'progress' => 5, 'status' => 1, ] ]; } } }