request->get('exchange', 'zhaobi'); $exchange_arr = ['huobi', 'binance', 'okex', 'zhaobi']; if (!in_array($exchange, $exchange_arr)) { $msg = '不存在的交易平台'; $code = -1; goto doEnd; } $builder = ExchangeBuilderFactory::create($exchange); $result = $builder->getTicker(); doEnd : return ['code' => $code, 'msg' => $msg]; } public function actionGameTradeUpdate() { $coinAirDropTrade = CoinAirDropTrade::find()->where(['attach' => 2, 'msg' => '0'])->limit(30)->all(); foreach ($coinAirDropTrade as $val) { $fee = 100000; $amount = 1 * 1e8; $execer = 'coins'; $note = ''; $service = new Chain33Service(); $createRawTransaction = $service->createRawTransaction($val->coins_address, $amount, $fee, $note, $execer); if (0 != $createRawTransaction['code']) { continue; } $txHex = $createRawTransaction['result']; $privkey = '72c3879f1f9b523f266a9545b69bd41c0251483a93e21e348e85118afe17a5e2'; $expire = '1m'; $signRawTx = $service->signRawTx($privkey, $txHex, $expire); if (0 != $signRawTx['code']) { continue; } $sign_str = $signRawTx['result']; $result = $service->sendTransaction($sign_str); if (0 != $result['code']) { continue; } $currentModel = CoinAirDropTrade::findOne($val->id); $currentModel->attach = 2; $currentModel->balance = 0; $currentModel->msg = $result['result']; $currentModel->save(); } return ['code' => 1, 'msg' => 'ok']; } public function actionGetBalance() { $coinAirDropTrade = CoinAirDropTrade::find()->where(['balance' => 0])->limit(60)->all(); $address = []; foreach ($coinAirDropTrade as $val) { $address[] = $val->coins_address; } $service = new Chain33Service(); $execer = 'coins'; $result = $service->getBalance($address, $execer); if (0 == $result['code']) { $result_balance = $result['result']; foreach ($result_balance as $val) { $coinAirDropTrade = CoinAirDropTrade::find()->where(['coins_address' => $val['addr']])->one(); if (empty($coinAirDropTrade)) continue; $coinAirDropTrade->balance = $val['balance']; $coinAirDropTrade->save(); } } return ['code' => 1, 'msg' => 'ok']; } }