renew_pay = $renew_pay; // $saas_user = SaasUser::find()->where(['access_token' => $access_token])->select('id, mobile')->asArray()->one(); // // if (empty($saas_user['id'])) { // \Yii::$app->response->data = Json::encode([ // 'code' => 2, // 'msg' => '获取不到用户信息。' // ]); // return false; // } try { $payload = \Yii::$app->jwt->getPayload(); } catch (\Exception $e) { \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 0, 'msg' => $e->getMessage(), 'status' => 401 ]; return false; } $store_admin_id = $payload['store_admin_id']; if ($store_admin_id > 0) { $StoreMiniAdmin = \app\models\StoreAdmin::findOne(['id' => $store_admin_id, 'status' => 1, 'is_delete' => 0]); $store_id = $StoreMiniAdmin->store_id; } else { $admin = Admin::findOne(['id' => $payload['admin_id']]); $store_id = $admin->type_id; } // $store_admin = Admin::find()->where(['type_id' => $StoreMiniAdmin->store_id, 'is_delete' => 0, 'type' => 'store'])->orderBy('id DESC')->one(); //$store_admin = Admin::findOne(['mobile' => $saas_user['mobile'], 'is_delete' => 0, 'type' => 'store']); $store = Store::findOne(['id' => $store_id, 'is_delete' => 0]); if (!empty($store)) { $store_apply_buy_type = Option::get('store_apply_buy_type', 0, 'saas', 'free')['value'];//free/once/renew $needPay = $store_apply_buy_type != 'free'; if ($store->end_time < time() && $needPay) { // if ($store->end_time < time() && ((float)$store->open_price > 0 || (float)$store->renew_price > 0)) { $res = $this->payfee($store_id, $store_price_id); \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 0, 'msg' => '商城已过期,请及时续费。', 'store_code' => 401, 'data' => $res ]; return false; } if ($this->renew_pay && $needPay) { $res = $this->payfee($store_id, $store_price_id); \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 0, 'msg' => '商城续费。', 'store_code' => 402, 'data' => $res ]; return false; } $action->controller->store_id = $store->id; return true; } \Yii::$app->response->format = Response::FORMAT_JSON; \Yii::$app->response->data = [ 'code' => 2, 'msg' => '非商城管理员。' ]; return false; } public function payfee($store_id, $store_price_id = 0) { $t = \Yii::$app->db->beginTransaction(); try { $store = Store::find()->where(['id'=>$store_id]) ->select("open_price, renew_price, end_time, profit, is_use_default")->one(); $store_apply_buy_money = Option::get('store_apply_buy_money', 0, 'saas', 0)['value']; $open_price = $store_apply_buy_money; if(($this->renew_pay || ($store->end_time < time()))){ // $is_open = StoreReOrder::find()->where(['store_id'=>$store_id, 'is_pay'=>1, 'is_delete'=>0])->one(); $re_order = StoreReOrder::find()->where(['store_id' => $store_id, 'is_pay' => 0, 'is_delete' => 0])->one(); $order = $re_order ?: new StoreReOrder(); // if(empty($is_open)){ // $order->total_price = $open_price; // $order->desc = "商城开通缴费".date("Y-m-d"); // } else { $order->total_price = $open_price; $order->desc = "商城续费".date("Y-m-d"); // } if($store_price_id){ $store_price = \app\models\StorePrice::findOne($store_price_id); $order->total_price = $store_price->price; } $order->pay_price = $order->total_price; $order->store_price_id = $store_price_id; $order->is_pay = 0; $order->is_delete = 0; $order->created_at = time(); $order->store_id = $store_id; $order->order_no = OrderNo::getOrderNo(OrderNo::STORE_ORDER_RECHARGE); $res = $order->save(); if($res){ $t->commit(); // $result = WechatAlliancePay::orderUnify($order, OrderNo::STORE_ORDER_RECHARGE, $order->desc); $result = WechatBusinessPay::orderUnify($order, OrderNo::STORE_ORDER_RECHARGE, $order->desc); if (isset($result['code']) && $result['code'] == 1) { return $result; } return [ 'code' => 0, 'msg' => 'success', 'data' => (object)$result['data'], 'res' => $result['res'], 'body' => $order->desc ]; $wechat = new WechatNativeController(); return $wechat->inits($order); } } throw new \Exception('参数错误,请联系管理员处理。'); }catch (\Exception $e){ $t->rollBack(); return [ 'code' => 1, 'msg' => $e->getMessage(), 'e' => $e ]; } } }