32], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => 'Mall ID', 'order_no' => 'Order No', 'user_id' => 'User ID', 'pay_price' => 'Pay Price', 'hi_bei' => 'Hi Bei', 'price_setting_method' => 'Price Setting Method', 'pay_type' => 'Pay Type', 'is_pay' => 'Is Pay', 'pay_at' => 'Pay At', 'is_delete' => 'Is Delete', 'created_at' => 'Created At', 'deleted_at' => 'Deleted At', 'updated_at' => 'Updated At', ]; } public static function createOrder($params) { try { $recharge = Yii::$app->services->setting->addons->get($params['mall_id'], HiGoEnum::ADDONS_NAME, 'recharge'); $hi_bei = 0; if ($params['price_setting_method'] == 1) { $hi_bei = bcmul($params['pay_price'], bcdiv($recharge['price_setting_ratio'], 100, 10), 10); } if ($params['price_setting_method'] == 0) { $price_ladder = isset($recharge['price_ladder']) ? json_decode($recharge['price_ladder'], true) : []; foreach ($price_ladder as $item) { if ($item['uuid'] == $params['uuid']) { $hi_bei = $item['give']; break; } } } if ($hi_bei <= 0) { throw new Exception('系统充值设置异常,请稍后再试'); } if ($hi_bei != $params['hi_bei']) { throw new Exception('系统充值设置异常,请联系系统管理员处理'); } $wallet_text = HiGoEnum::getHigoWalletText($params['mall_id']); $hi_bei_name = $wallet_text[HiGoEnum::WALLET_TYPE_HI_BEI]; $model = new self(); $model->mall_id = $params['mall_id']; $model->pay_price = $params['pay_price']; $model->hi_bei = $params['hi_bei']; $model->order_no = HiGoEnum::generateOrderNo('HIRE'); $model->user_id = $params['user_id']; $model->price_setting_method = $params['price_setting_method']; $model->status = StatusEnum::ENABLED; $model->pay_type = self::PAY_TYPE_ON_LINE; $model->save(); $order_trade_info[] = [ 'order_no' => $model->order_no, 'amount' => $model->pay_price, 'title' => '充值' . $hi_bei_name, 'notify_class' => 'addons\HiGo\common\logic\notify\RechargeNotify', 'order_type' => HiGoEnum::ADDONS_NAME . '_Recharge' ]; //生成支付流水 return \Yii::$app->services->pay->createTrade($params['mall_id'], $params['user_id'], $order_trade_info); } catch (Exception $e) { self::$static_error = $e->getMessage(); return false; } } public static function check($params): bool { $order_no_arr = $params['order_no_arr']; $payment_order_list = $params['payment_order_list']; $counts = self::find()->where(['order_no' => $order_no_arr, 'is_pay' => 0])->count(); if ($counts != count($payment_order_list)) { self::$static_error = '充值订单不一致'; return false; } return true; } }