$this->saas_user_id, 'id' => $id]); $bind = 0; $store_info = []; if($model['store_id']){ $store = Store::findOne($model['store_id']); $store_info = [ 'name' => $store->name, 'logo' => $store->logo, 'contact_tel' => $store->contact_tel, ]; }else{ $store_info = [ 'name' => $model->getParams('mini_nickname'), 'logo' => $model->getParams('store_logo'), 'contact_tel' => $model->getParams('legal_persona_phone'), ]; } $saas_user = null; if($model->store_id){ $admin = Admin::findOne([ 'type' => 'store', 'type_id' => $model->store_id, ]); if($admin->saas_user_id){ $bind = 1; $saas_user_ = SaasUser::findOne($admin->saas_user_id); $saas_user = [ 'name' => $saas_user_->name, 'avatar' => $saas_user_->avatar ]; } } $extData = []; $model = $this->checkUpdatStatus($model, $extData); $store_params = json_decode($model->store_params, true); $store_info['is_food'] = $store_params['is_food']; $store_info['plat_alipay'] = $store_params['plat_alipay']; $store_info['plat_wechat'] = $store_params['plat_wechat']; return [ 'code' => 0, 'data' => $model, 'bind' => $bind, 'store_info' => $store_info, 'saas_user' => $saas_user, 'mini_pay_sign_url' => $extData['mini_pay_sign_url'], //商户扫码验证 ]; } public function checkUpdatStatus($model, &$extData = []) { $mini_pay_sign_url = ''; //更新微信小程序状态 if(!empty($model->store_mini_id) && empty($model->store_mini_appid)){ $form = new WechatThirdForm(); $form->store_id = $model->store_id; $res = $form->getRegisterStatus($model->store_mini_id); $model->store_mini_errmsg = WechatThirdForm::staticGetZnMsg($res); $model->save(); } //更新微信小程序基础信息状态 if(!empty($model->store_mini_appid) && empty($model->store_mini_info)){ $form = new WechatThirdForm(); $form->store_id = $model->store_id; $res = $form->getMiniInfo('', $model->store_mini_appid); if($res['code'] == 0){ $item = $res['store_mini']; if (!empty($item['signature']) && !empty($item['mini_url']) && !empty($item['mini_nickname'] && !empty($item['categories']))) { $model->store_mini_info = 1; $model->store_mini_info_errmsg = '已完成'; $model->save(); } } } //更新进件状态 if($model->store_mini_pay_apply_id && empty($model->store_mini_pay_sub_mchid)){ $Merchant = new Merchant(); $pay_apply_info = $Merchant->queryApplyment($model->store_mini_pay_apply_id); debug_log([__METHOD__, $model->id, $pay_apply_info], __CLASS__ . '.log'); if (!isset($pay_apply_info['code']) && !isset($pay_apply_info['msg'])) { if($pay_apply_info['applyment_state'] == 'APPLYMENT_STATE_TO_BE_SIGNED'){ $mini_pay_sign_url = $pay_apply_info['sign_url']; } if($pay_apply_info['applyment_state_msg'] && $model->store_mini_pay_errmsg != $pay_apply_info['applyment_state_msg']){ $model->store_mini_pay_errmsg = $pay_apply_info['applyment_state_msg']; if($pay_apply_info['applyment_state'] == 'APPLYMENT_STATE_FINISHED'){ $model->store_mini_pay_sub_mchid = $pay_apply_info['sub_mchid']; $this->wxMiniPayIsUse($model); } $model->save(); } } } //更新支付宝小程序状态 if(!empty($model->store_ali_mini_id) && empty($model->store_ali_mini_appid)){ $form = new AlipayThirdForm(); $form->mini_id = $model->store_ali_mini_id; $getMiniShenheStatus = $form->getMiniShenheStatus($form->mini_id); if(is_object($getMiniShenheStatus)){ if($getMiniShenheStatus->min_app_id){ $model->store_ali_mini_appid = $getMiniShenheStatus->min_app_id; $model->store_ali_mini_errmsg = '已完成'; $model->save(); } if(!$getMiniShenheStatus->min_app_id && $getMiniShenheStatus->status == 'PROCESS' && $model->store_ali_mini_errmsg != '待确认'){ $model->store_ali_mini_errmsg = '待确认'; $model->save(); } } } //更新支付宝当面付状态 if(!empty($model->store_ali_mini_appid) && empty($model->store_ali_mini_pay)){ $form = new AlipayThirdForm(); $form->mini_id = $model->store_ali_mini_id; $signstatus = $form->signstatusOk($model->store_ali_mini_pid, 'I1011000100000000001'); if($signstatus){ $model->store_ali_mini_pay = 1; $model->store_ali_mini_pay_errmsg = '已完成'; $model->save(); } } //更新支付宝门店状态 if(!empty($model->store_ali_mini_appid) && empty($model->store_ali_mini_shop_id)){ $form = new AlipayThirdForm(); $form->mini_id = $model->store_ali_mini_id; $antMerchantExpandShop = $form->antMerchantExpandShop(); if(is_object($antMerchantExpandShop)){ $model = SalesmanNewStore::findOne(['salesman_saas_id' => $this->saas_user_id, 'id' => $model->id]); } } $extData['mini_pay_sign_url'] = $mini_pay_sign_url; return $model; } //业务员新建商家 public function save($id, $data, $type = 0) { $t = \Yii::$app->db->beginTransaction(); if($data){ if(is_string($data)){ $data = json_decode($data, true); } foreach($this->store_params_fields as $k){ if(!isset($data[$k])){ return [ 'code' => 1, 'msg' => '参数缺失,' . $k, ]; } } } $msgExt = []; $model = $id ? SalesmanNewStore::findOne($id) : new SalesmanNewStore(); $model->salesman_saas_id = $this->saas_user_id; if($data){ $model->store_params = json_encode($data, JSON_UNESCAPED_UNICODE); } $model->type = $type; if(!$model->save()){ return [ 'code' => 1, 'msg' => '数据保存失败,' . array_shift($model->getFirstErrors()), ]; } if($type == 0){ $initSaasUser = $this->initSaasUser($model, $msgExt); if(isset($initSaasUser['code']) && $initSaasUser['code'] != 0){ return $initSaasUser; } $saas_user = $initSaasUser['data']; $initStore = $this->initStore($model, $saas_user, $msgExt); if(isset($initStore['code']) && $initStore['code'] != 0){ return $initStore; } $notRollback = 0; if($model->getParams('plat_wechat')){ $wxFastRegisterMini = $this->wxFastRegisterMini($model); if(isset($wxFastRegisterMini['code']) &&$wxFastRegisterMini['code'] != 0){ // $model->store_mini_errmsg = $wxFastRegisterMini['msg']; return $wxFastRegisterMini; } $notRollback = 1; } if($model->getParams('plat_alipay')){ $isvCreateMini = $this->isvCreateMini($model); if(isset($isvCreateMini['code']) &&$isvCreateMini['code'] != 0){ if($notRollback){ $model->store_ali_mini_errmsg = $isvCreateMini['msg']; $model->save(); }else{ return $isvCreateMini; } } } } $t->commit(); return [ 'code' => 0, 'msg' => '操作成功。' . implode(',', $msgExt), 'data' => $model, ]; } public function wxFastRegisterMini($model, &$msgExt = [], $refresh = 0){ if(!empty($model->store_mini_id) && !$refresh){ return; } $form = new WechatThirdForm(); $form->store_id = $model->store_id; $form->name = $model->getParams('license_name'); $form->code = $model->getParams('code'); $form->code_type = $model->getParams('code_type'); $form->legal_persona_wechat = $model->getParams('legal_persona_wechat'); $form->license_pic = $model->getParams('license_copy'); $form->legal_persona_name = $model->getParams('legal_persona_name'); $res = $form->fastRegisterMini($refresh); debug_log([__METHOD__, $model->id, $refresh, $res], __CLASS__ . '.log'); if($res['code'] == 0){ $store_mini_id = $res['data']; $model->store_mini_id = $store_mini_id; $model->store_mini_errmsg = '注册审核中'; if(!$model->save()){ return [ 'code' => 1, 'msg' => 'store_mini_id数据保存失败,' . array_shift($model->getFirstErrors()), ]; } $msgExt[] = 'store_mini_id关联成功'; } debug_log([__METHOD__, $model->id, $refresh, $msgExt], __CLASS__ . '.log'); return $res; } public static function setMiniInfo($model, $refresh = 0){ if(!empty($model->store_mini_info) && !$refresh){ return; } if(!$model->store_mini_appid){ return [ 'code' => 1, 'msg' => '请先完成小程序创建', ]; } $item = StoreMini::findOne($model->store_mini_id); $self = new self(); $return = [ 'code' => 0, 'msg' => '', ]; if(empty($item['mini_nickname'])){ $res = $self->setNickname($model); if($res['code'] != 0){ $return['code'] = 1; $return['msg'] .= $res['msg'] . '。'; } } if(empty($item['mini_url'])){ $res = $self->setHeadImage($model); if($res['code'] != 0){ $return['code'] = 1; $return['msg'] .= $res['msg'] . '。'; } } if(empty($item['signature'])){ $res = $self->setSignature($model); if($res['code'] != 0){ $return['code'] = 1; $return['msg'] .= $res['msg'] . '。'; } } if(empty($item['categories'])){ $res = $self->addCategory($model); if($res['code'] != 0){ $return['code'] = 1; $return['msg'] .= $res['msg'] . '。'; } } $res = $return; if($res['code'] == 0){ $model->store_mini_info = 1; $model->store_mini_info_errmsg = '已完成'; }else{ $model->store_mini_info_errmsg = $res['msg']; } $model->save(); return $res; } /** * 修改头像 */ public function setHeadImage($model){ $form = new WechatThirdForm(); $form->mini_id = $model->store_mini_id; $form->head_img_media_id = $model->getParams('store_logo'); $form->x1 = 0; $form->y1 = 0; $form->x2 = 1; $form->y2 = 1; $res = $form->setHeadImage(); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); return $res; } /** * 设置名称 * 使用各项media_id,设置名称 */ public function setNickname($model){ $form = new WechatThirdForm(); $form->mini_id = $model->store_mini_id; $form->mini_nickname = $model->getParams('mini_nickname'); $form->id_card = $model->getParams('id_card_copy'); $form->license = $model->getParams('license_copy'); $res = $form->setMiniNianname(); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); return $res; } /** * 修改简介 */ public function setSignature($model){ $form = new WechatThirdForm(); $form->mini_id = $model->store_mini_id; $form->signature = $model->getParams('mini_nickname'); $res = $form->setSignature(); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); return $res; } /** * 添加类目 */ public function addCategory($model){ $form = new WechatThirdForm(); $form->mini_id = $model->store_mini_id; if($model->getParams('is_food')){ $form->categories = [ [ 'first' => '220', 'second' => '632', 'certicates' => [ [ 'key' => '食品经营许可证', 'value' => $model->getParams('qualify'), ] ], ], ]; }else{ $form->categories = [ [ 'first' => '287', 'second' => '298', ], [ 'first' => '150', 'second' => '670', ] ]; } $res = $form->addCategory(); return $res; } public function initSaasUser($model, &$msgExt = []) { $phone = $model->getParams('legal_persona_phone'); $saas_user = SaasUser::find()->where(['mobile' => $phone, 'is_delete' => 0])->one(); if (!$saas_user) { $saas_user = new SaasUser(); $saas_user->access_token = \Yii::$app->security->generateRandomString(); $saas_user->name = substr_replace($phone, '******', 3, 6); $saas_user->mobile = $phone; $saas_user->bytedance_open_id = ''; $saas_user->platform_open_id = ''; $saas_user->avatar = \Yii::$app->request->hostInfo . \Yii::$app->request->baseUrl . '/web/v1/statics/images/avatar.png'; $saas_user->store_id = -1; if(!$saas_user->save()){ return [ 'code' => 1, 'msg' => 'saas_user数据保存失败,' . array_shift($saas_user->getFirstErrors()), ]; } $msgExt[] = 'saas_user创建成功'; } return [ 'code' => 0, 'data' => $saas_user, ]; } public function initStore($model, $saas_user, &$msgExt = []) { if(!empty($model->store_id)){ return; } $phone = $model->getParams('legal_persona_phone'); $area = $model->getParams('md_area'); $form = new StoreForm(); $storeAdd = $form->add($model->getParams('mini_nickname'), '', 'cyy'.$phone, $area, 0); if($storeAdd['code'] != 0){ return $storeAdd; } $msgExt[] = 'store创建成功'; $model->store_id = $storeAdd['store']['id']; if(!$model->save()){ return [ 'code' => 1, 'msg' => 'store_id数据保存失败,' . array_shift($model->getFirstErrors()), ]; } $store = Store::findOne($storeAdd['store']['id']); $salesman = Salesman::findOne(['saas_user_id' => $model->salesman_saas_id, 'is_delete' => 0]); $store->salesman_id = $salesman->id; if(!$store->save()){ return [ 'code' => 1, 'msg' => 'store_id数据保存失败,' . json_encode($store->errors, JSON_UNESCAPED_UNICODE), ]; } $msgExt[] = 'store_id关联成功'; $this->upStore($model); } public function upStore($model) { debug_log([__METHOD__, $model->id], __CLASS__ . '.log'); Option::setGroup('store', [ [ 'name' => 'logo', 'value' => $model->getParams('store_logo'), ], [ 'name' => 'coordinate', 'value' => $model->getParams('md_location_lat') . ',' . $model->getParams('md_location_lng'), ], [ 'name' => 'address_info', 'type' => 'address_info', 'value' => [ "province_id" => $model->getParams('md_area')['province_id'], "city_id" => $model->getParams('md_area')['city_id'], "district_id" => $model->getParams('md_area')['district_id'] ], ], [ 'name' => 'address', 'value' => $model->getParams('md_address'), ], [ 'name' => 'contact_tel', 'value' => $model->getParams('legal_persona_phone'), ], ], $model->store_id); \app\modules\admin\models\SettingForm::staticUpStore($model->store_id); } public static function wechatPush($msg, $store_mini) { debug_log([__METHOD__, $msg, $store_mini->id], __CLASS__ . '.log'); $model = SalesmanNewStore::findOne(['store_mini_id' => $store_mini->id]); if(!$model){ return; } if(!$msg['appid']){ $msg['errcode'] = $msg['status']; $msg['errmsg'] = $msg['msg']; $model->store_mini_errmsg = WechatThirdForm::staticGetZnMsg($msg); }else{ $model->store_mini_errmsg = '注册成功'; $model->store_mini_appid = $msg['appid']; } if(!$model->save()){ \Yii::error([__METHOD__, $msg, $store_mini->id, array_shift($model->getFirstErrors())]); } if($msg['appid']){ $form = new self(); $wechatPayApply = $form->wechatPayApply($model); $setMiniInfo = self::setMiniInfo($model); } } //微信进件 public function wechatPayApply($model, $refresh = 0) { if(!empty($model->store_mini_pay_apply_id) && !$refresh){ return; } if($refresh && !$model->store_mini_appid){ return [ 'code' => 1, 'msg' => '请先完成小程序创建', ]; } $Merchant = new Merchant(); $contact_info = [ "contact_name" => $model->getParams('legal_persona_name'), "contact_id_number" => $model->getParams('legal_persona_id_card_number'), "mobile_phone" => $model->getParams('legal_persona_phone'), "contact_email" => $model->getParams('contact_email'), ]; $subject_info = [ "subject_type" => $model->getParams('subject_type'), "business_license_info" => [ "license_copy" => $model->getParams('license_copy'), "license_number" => $model->getParams('code'), "merchant_name" => $model->getParams('license_name'), "legal_person" => $model->getParams('legal_persona_name'), "period_end" => $model->getParams('code_is_long') ? '长期' : $model->getParams('period_end'), "is_long" => $model->getParams('code_is_long'), "period_begin" => $model->getParams('period_begin'),"2022-12-14" ], "organization_info" => [ "is_composite" => 1, "organization_copy" => "", "organization_code" => "", "org_period_begin" => "", "org_period_end" => "", "is_long" => 0 ], "certificate_info" => [ "is_long" => 0, "cert_copy" => "", "cert_type" => "", "cert_number" => "", "merchant_name" => "", "company_address" => "", "legal_person" => "", "period_begin" => "", "period_end" => "" ], "identity_info" => [ "is_long" => 0, "id_doc_type" => "IDENTIFICATION_TYPE_IDCARD", "id_card_info" => [ "id_card_copy" => $model->getParams('id_card_copy'), "id_card_national" => $model->getParams('id_card_national'), "id_card_name" => $model->getParams('legal_persona_name'), "id_card_number" => $model->getParams('legal_persona_id_card_number'), "card_period_begin" => $model->getParams('card_period_begin'), "card_period_end" => $model->getParams('card_is_long') ? '长期' : $model->getParams('card_period_end'), "id_card_address" => $model->getParams('id_card_address'), ], "id_doc_info" => [ "id_doc_copy" => "", "id_doc_name" => "", "id_doc_number" => "", "doc_period_begin" => "", "doc_period_end" => "" ], "owner" => true ] ]; $business_info = [ "merchant_shortname" => $model->getParams('mini_nickname'), "service_phone" => $model->getParams('legal_persona_phone'), "sales_info" => [ "sales_scenes_type" => [ "SALES_SCENES_MINI_PROGRAM" ], "mini_program_info" => [ "mini_program_sub_appid" => $model->store_mini_appid ] ] ]; $bank_account_info = [ "bank_account_type" => $model->getParams('bank_account_type'), "account_name" => $model->getParams('bank_account_name'), "account_bank" => $model->getParams('bank_name'), "bank_name" => $model->getParams('bank_address_name'), "code_list" => $model->getParams('bank_address_code_list'), "address_list" => $model->getParams('bank_address_list'), "account_number" => $model->getParams('bank_account_no'), "bank_address_code" => $model->getParams('bank_address_code'), ]; $Merchant->submitErrRollback = 1; $res = $Merchant->submit($contact_info, $subject_info, $business_info, $bank_account_info, 0, $model->store_mini_appid, $model->store_id); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); if($res['code'] == 0){ $merchant_info = $res['data']; $model->store_mini_pay_apply_id = $merchant_info->applyment_id; $model->store_mini_pay_errmsg = '审核中'; }else{ $model->store_mini_pay_errmsg = $res['msg']; } $model->save(); return $res; } // 微信进件开始使用/暂停使用 public function wxMiniPayIsUse($model){ try{ $count = MerchantInfo::find()->where(['bind_store_id' => $model->store_id, 'is_delete' => 0])->count(); if($count == 0 || $count >= 2){ return; } $merchantInfo = MerchantInfo::findOne(['applyment_id' => $model->store_mini_pay_apply_id, 'bind_store_id' => $model->store_id, 'is_delete' => 0]); if($merchantInfo && $merchantInfo->is_use == 2){ $form = new WechatMiniMerchantForm(); $form->id = $merchantInfo->id; $form->is_use = 1; $res = $form->unbind(); return $res; } } catch (Exception $ex) { } } //业务员新建商家列表 public function getList($type = 0, $data = []) { $query = SalesmanNewStore::find()->where(['is_delete' => 0, 'salesman_saas_id' => $this->saas_user_id]); if($type > -1){ $query->andWhere(['type' => $type]); } if(isset($data['begin_time']) && $data['begin_time'] > -1){ $query->andWhere(['>', 'created_at', strtotime($data['begin_time'])]); } if(isset($data['end_time']) && $data['end_time'] > -1){ $query->andWhere(['<', 'created_at', strtotime($data['end_time'])]); } //audit_statuc if(isset($data['audit_statuc']) && $data['audit_statuc'] > -1){ //审核完成 if($data['audit_statuc'] == 1){ $query->andWhere([ 'and', 'JSON_EXTRACT(store_params, "$.plat_wechat") = 1', ['>', 'store_mini_appid', 0], ['>', 'store_mini_pay_sub_mchid', 0], ]); $query->andWhere([ 'and', 'JSON_EXTRACT(store_params, "$.plat_alipay") = 1', ['>', 'store_ali_mini_appid', 0], ['>', 'store_ali_mini_shop_id', 0], ]); } //审核中 if($data['audit_statuc'] == 3){ $query->andWhere([ 'or', ['=', 'store_mini_appid', 0], ['=', 'store_mini_pay_sub_mchid', 0], ['=', 'store_ali_mini_appid', 0], ['=', 'store_ali_mini_shop_id', 0], ]); } } if(isset($data['is_food']) && $data['is_food'] > -1){ if($data['is_food'] == 1){ $query->andWhere('JSON_EXTRACT(store_params, "$.is_food") = 1'); }else{ $query->andWhere('JSON_EXTRACT(store_params, "$.is_food") = 0'); } } if(isset($data['plat_wechat']) && $data['plat_wechat'] > -1){ if($data['plat_wechat'] == 1){ $query->andWhere('JSON_EXTRACT(store_params, "$.plat_wechat") = 1'); }else{ $query->andWhere('JSON_EXTRACT(store_params, "$.plat_wechat") = 0'); } } if(isset($data['plat_alipay']) && $data['plat_alipay'] > -1){ if($data['plat_alipay'] == 1){ $query->andWhere('JSON_EXTRACT(store_params, "$.plat_alipay") = 1'); }else{ $query->andWhere('JSON_EXTRACT(store_params, "$.plat_alipay") = 0'); } } if(isset($data['sort_time']) && $data['sort_time'] > -1){ if($data['sort_time'] == 1){ $query->orderBy('created_at ASC'); }else{ $query->orderBy('created_at DESC'); } } if(isset($data['store_name']) && $data['store_name']){ $querystore_name = (new \yii\db\Query())->select('id')->from(Store::tableName())->where(['like', 'name', trim($data['store_name'])]); $query->andWhere(['store_id' => $querystore_name]); } debug_log($query->createCommand()->getRawSql(), 'sal.log'); $list = pagination_make($query); foreach($list['list'] as &$item){ if($item['store_id']){ $store = Store::findOne($item['store_id']); $item['store_info'] = [ 'name' => $store->name, 'logo' => $store->logo, 'contact_tel' => $store->contact_tel, ]; }else{ $store_params = json_decode($item['store_params'], true); $item['store_info'] = [ 'name' => $store_params['mini_nickname'] ?? '', 'logo' => $store_params['store_logo'] ?? '', 'contact_tel' => $store_params['legal_persona_phone'] ?? '', ]; } unset($item['store_params']); } return [ 'code' => 0, 'data' => $list, 'msg' => 'ok', 'q' => $query->createCommand()->getRawSql(), ]; } //业务员新建商家绑定商户二维码 public function qr($id) { $model = SalesmanNewStore::findOne(['salesman_saas_id' => $this->saas_user_id, 'id' => $id]); $_time = microtime(true); $cacheKey = 'SalesmanNewStore_qr' . $_time; $cacheV = [ 'salesman_saas_id' => $this->saas_user_id, 'store_id' => $model->store_id, 'id' => $model->id, ]; cache()->set($cacheKey, $cacheV, 120); $scene = "cyyk:" . $_time; $res = ShareQrcode::wxQrcode('pages/index/index', $scene, 600, true, true); // $res = ShareQrcode::wxQrcode('salesman/salesman/applyShop', $scene, 600, true, true); if (isset($res['code']) && $res['code'] == 1) { return $res; } return [ 'code' => 0, 'data' => [ 'qr_url' => $res['url_path'] ] ]; } //业务员新建商家扫码绑定商户(商户扫码) public function qrBind($id = 0) { $_time = post_params('cyyk', 0); $cacheKey = 'SalesmanNewStore_qr' . $_time; $cache = cache()->get($cacheKey); if(!$cache){ return [ 'code' => 1, 'msg' => '参数错误,请重新扫码', ]; } $id = $cache['id']; $salesman_saas_id = $cache['salesman_saas_id']; $store_id = $cache['store_id']; $model = SalesmanNewStore::findOne(['salesman_saas_id' => $salesman_saas_id, 'id' => $id]); $store_id = $model->store_id; $form = new StoreForm(); $setPassword = $form->setPassword($store_id, '', '', '', $this->saas_user_id); if($setPassword['code'] != 0){ return $setPassword; } cache()->delete($cacheKey); return [ 'code' => 0, 'msg' => 'ok', ]; } //支付宝 //快速注册小程序 public function isvCreateMini($model, &$msgExt = [], $refresh = 0){ if(!empty($model->store_ali_mini_id) && !$refresh){ return; } $form = new AlipayThirdForm(); $form->bind_store_id = $model->store_id; $form->alipay_account = $model->getParams('alipay_account'); $form->legal_personal_name = $model->getParams('legal_persona_name'); $form->license_name = $model->getParams('license_name'); $form->license_no = $model->getParams('code'); $form->license_pic = $model->getParams('license_copy'); $form->AppName = $model->getParams('mini_nickname'); $form->ServicePhone = $model->getParams('legal_persona_phone'); $form->contact_name = $model->getParams('legal_persona_name'); $res = $form->isvCreateMini(); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); if($res['code'] == 0){ $store_mini_id = $res['id']; $model->store_ali_mini_id = $store_mini_id; $model->store_ali_mini_errmsg = '注册审核中'; if(!$model->save()){ return [ 'code' => 1, 'msg' => 'store_ali_mini_id数据保存失败,' . array_shift($model->getFirstErrors()), ]; } $msgExt[] = 'store_ali_mini_id关联成功'; } debug_log([__METHOD__, $model->id, $msgExt], __CLASS__ . '.log'); return $res; } public static function aliPush($msg, $store_ali_mini) { debug_log([__METHOD__, $msg, $store_ali_mini->id], __CLASS__ . '.log'); $model = SalesmanNewStore::findOne(['store_ali_mini_id' => $store_ali_mini->id]); if(!$model){ return; } if(!$msg['min_app_id']){ $model->store_ali_mini_errmsg = '商家拒绝或超时'; }else{ $model->store_ali_mini_errmsg = '注册成功'; $model->store_ali_mini_appid = $msg['min_app_id']; $model->store_ali_mini_pid = $msg['pid']; $form = new self(); $signFaceToFace = $form->signFaceToFace($model); $aliCreatedShop = $form->aliCreatedShop($model); } if(!$model->save()){ \Yii::error([__METHOD__, $msg, $store_ali_mini->id, array_shift($model->getFirstErrors())]); } } public static function aliPushFaceToFace($msg, $store_ali_mini) { debug_log([__METHOD__, $msg, $store_ali_mini->id], __CLASS__ . '.log'); $model = SalesmanNewStore::findOne(['store_ali_mini_id' => $store_ali_mini->id]); if(!$model){ return; } $status = $msg->order_status; switch ($status) { case "MERCHANT_INFO_HOLD": //异常单 4 $store_ali_mini_pay_errmsg = '异常单'; break; case "MERCHANT_AUDITING": //审核中 3 $store_ali_mini_pay_errmsg = '审核中'; break; case "MERCHANT_CONFIRM": //待确认 5 $store_ali_mini_pay_errmsg = '待确认'; break; case "MERCHANT_CONFIRM_SUCCESS": //商户确认成功 6 $store_ali_mini_pay_errmsg = '商户确认成功'; break; case "MERCHANT_CONFIRM_TIME_OUT": //商户超时未确认 7 $store_ali_mini_pay_errmsg = '商户超时未确认'; break; case "MERCHANT_APPLY_ORDER_CANCELED": //审核失败或商户拒绝 8 $store_ali_mini_pay_errmsg = '审核失败或商户拒绝'; break; } if($store_ali_mini_pay_errmsg != $model->store_ali_mini_pay_errmsg){ $model->store_ali_mini_pay_errmsg = $store_ali_mini_pay_errmsg; if(!$model->save()){ \Yii::error([__METHOD__, $msg, $store_ali_mini->id, array_shift($model->getFirstErrors())]); } } } public static function aliPushAntShop($msg, $store_ali_mini) { debug_log([__METHOD__, $msg, $store_ali_mini->id], __CLASS__ . '.log'); $model = SalesmanNewStore::findOne(['store_ali_mini_id' => $store_ali_mini->id]); if(!$model || $model->store_ali_mini_shop_id){ return; } $shop_id = $msg->shop_id; $model->store_ali_mini_shop_id = $shop_id; $model->store_ali_mini_shop_errmsg = '创建成功'; if(!$model->save()){ \Yii::error([__METHOD__, $msg, $store_ali_mini->id, array_shift($model->getFirstErrors())]); } } //签约当面付 public function signFaceToFace($model, $refresh = 0){ if(!empty($model->store_ali_mini_shop_id) && !$refresh){ return; } if(!$model->store_ali_mini_appid){ return [ 'code' => 1, 'msg' => '请先完成小程序创建', ]; } debug_log([__METHOD__, $model->id], __CLASS__ . '.log'); $form = new AlipayThirdForm(); $form->mini_id = $model->store_ali_mini_id; $form->params_data = [ "alipay_account" => $model->getParams('alipay_account'), "contact_name" => $model->getParams('license_name'), "service_phone" => $model->getParams('legal_persona_phone'), "service_email" => $model->getParams('contact_email'), "app_logo" => $model->getParams('md_logo'), ]; $res = $form->agentCreate($model->store_ali_mini_id); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); if($res['code'] == 0){ $model->store_ali_mini_pay_errmsg = '审核中'; }else{ $model->store_ali_mini_pay_errmsg = $res['msg']; } $model->save(); return $res; } //params_data mini_id 创建门店 public function aliCreatedShop($model, $refresh = 0) { if(!empty($model->store_ali_mini_shop_id) && !$refresh){ return; } if(!$model->store_ali_mini_appid){ return [ 'code' => 1, 'msg' => '请先完成小程序创建', ]; } debug_log([__METHOD__, $model->id], __CLASS__ . '.log'); $form = new AlipayThirdForm(); $form->mini_id = $model->store_ali_mini_id; $form->attributes = [ "mini_id" => $model->store_ali_mini_id, "params_data" => [ "business_address" => [ "city_code" => District::getAdcodeById($model->getParams('md_area')['city_id']), "district_code" => District::getAdcodeById($model->getParams('md_area')['district_id']), "province_code" => District::getAdcodeById($model->getParams('md_area')['province_id']), "longitude" => $model->getParams('md_location_lng'), "latitude" => $model->getParams('md_location_lat'), "address" => $model->getParams('md_address'), ], "store_id" => "", "shop_category" => ["A0002","B0043"], "shop_name" => $model->getParams('license_name'), "shop_type" => "01", "qualifications" => [ "industry_qualification_image" => "", "industry_qualification_type" => "" ], "out_door_images" => $model->getParams('md_logo'), ] ]; $res = $form->AntMerchantExpandShopCreate(); debug_log([__METHOD__, $model->id, $res], __CLASS__ . '.log'); if($res['code'] == 0){ $model->store_ali_mini_shop_errmsg = '审核中'; }else{ $model->store_ali_mini_shop_errmsg = $res['msg']; } $model->save(); return $res; } }