| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\client\models\v1\third\ali;
- use app\models\AggregateQrcode;
- use app\models\MerchantInfo;
- use app\models\Store;
- use app\models\StoreAliMini;
- use app\models\StoreAliMiniVersion;
- use app\models\StoreMiniToken;
- use app\models\StoreSchedule;
- class ProgressMiniForm extends BaseForm
- {
- public function inits()
- {
- try {
- $store_id = $this->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
- ],
- ];
- } 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
- ],
- ];
- } 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
- ],
- ];
- }
- }
- $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
- ],
- ];
- }
- 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
- ]
- ];
- }
- 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
- ]
- ];
- }
- }
- /**
- * 完善信息
- */
- 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,
- 'all_categories' => $all_category,
- 'old_categories' => $old_category
- ]
- ];
- }
- 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;
- $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
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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;
- //小程序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
- ]
- ];
- } 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
- ]
- ];
- } elseif ($store_mini->batch_status == 2) {//签约当面付成功
- return [
- 'code'=>0,
- 'msg'=>"需要审核当面付",
- 'data'=>[
- 'status'=>2,
- 'bind_store_id' => $store_id,
- 'mini_id' => $mini_id,
- 'progress' => 3
- ]
- ];
- } elseif ($store_mini->batch_status == 3) {//审核中
- return [
- 'code'=>0,
- 'msg'=>"审核中",
- 'data'=>[
- 'status'=>3,
- 'bind_store_id' => $store_id,
- 'mini_id' => $mini_id,
- 'progress' => 3
- ]
- ];
- } elseif ($store_mini->batch_status == 5) {//等待商户确认
- return [
- 'code'=>0,
- 'msg'=>"等待商户确认",
- 'data'=>[
- 'status'=>5,
- 'bind_store_id' => $store_id,
- 'mini_id' => $mini_id,
- 'progress' => 3
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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
- $store_id = $this->store_id;
- //小程序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
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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
- ]
- ];
- }
- 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;
- //小程序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,
- 'qrcode_id' => $AggregateQrcode->id
- ]
- ];
- }
- if ($AggregateQrcode->ali_status == 1) {
- $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
- ]
- ];
- }
- throw new \Exception("参数错误");
- } catch (\Exception $e) {
- return [
- 'code' => 1,
- 'msg' => $e->getMessage(),
- 'data' => [
- 'progress' => 5,
- 'status' => 1,
- ]
- ];
- }
- }
- }
|