request; if (!$request->isPost) { $msg = '请求错误!'; goto doEnd; } $post = $request->post(); if (2 != count($post['txs'])) { $msg = '交易笔数错误!'; goto doEnd; } $data['is_with_draw'] = $post['isWithdraw']; $data['address'] = $post['address']; $data['transfer_number'] = date('YmdHis') . self::getrandnums(); $isExist = CoinCrossChain::find() ->where(['address' => $post['address'], 'is_with_draw' => CoinCrossChain::RECHARGE]) ->andWhere(['query_result' => '0']) ->asArray()->all(); if ($isExist) { $msg = '存在未完成的交易!'; goto doEnd; } foreach ($post['txs'] as $key => $val) { $model = new CoinCrossChain(); $data['txhex'] = $val['tx']; $data['transfer_url'] = $val['url']; $model->load($data, ''); $model->save(); } $code = 0; $msg = 'success'; doEnd : return ['code' => $code, 'msg' => $msg]; } public function actionTransferStatus() { $code = -1; $msg = 'fail'; $data = null; $request = Yii::$app->request; if (!$request->isGet) { $msg = '请求错误!'; goto doEnd; } $address = $request->get('address', ''); $is_with_draw = $request->get('isWithdraw', ''); if (empty($address)) { $msg = '参数错误!'; goto doEnd; } $model = CoinCrossChain::find()->where(['address' => $address, 'is_with_draw' => $is_with_draw])->orderBy("id desc")->limit(2)->asArray()->all(); if (empty($model)) { $msg = '数据不存在!'; goto doEnd; } sort($model); $step = 0; foreach ($model as $key => $val) { if (0 == $key) { if (false == $val['send_result'] && false == $val['query_result'] && false == $val['msg']) { $data = [ 'step' => $key ]; $code = 0; $msg = '第一笔交易尚未执行'; goto doEnd; } if (true == $val['send_result'] && false == $val['query_result'] && false == $val['msg']) { $data = [ 'step' => $key + 1 ]; $code = 0; $msg = $val['send_result']; goto doEnd; } if (false == $val['send_result'] && false == $val['query_result'] && true == $val['msg']) { $data = [ 'step' => $key + 1 ]; $code = -1; $msg = $val['msg']; goto doEnd; } if (true == $val['send_result'] && true == $val['query_result'] && false == $val['msg']) { continue; } } if (1 == $key) { if (false == $val['send_result'] && false == $val['query_result'] && false == $val['msg']) { $data = [ 'step' => $key + 1 ]; $code = 0; $msg = '第二笔交易尚未执行'; goto doEnd; } if (true == $val['send_result'] && false == $val['query_result'] && false == $val['msg']) { $data = [ 'step' => $key + 1 ]; $code = 0; $msg = $val['send_result']; goto doEnd; } if (false == $val['send_result'] && false == $val['query_result'] && true == $val['msg']) { $data = [ 'step' => $key + 1 ]; $code = -1; $msg = $val['msg']; goto doEnd; } if (true == $val['send_result'] && true == $val['query_result'] && false == $val['msg']) { $data = [ 'step' => 3 ]; $code = 0; $msg = $val['send_result']; goto doEnd; } } } doEnd : return ['code' => $code, 'msg' => $msg, 'data' => $data]; } public static function getrandnums() { $arr = array(); while (count($arr) < 6) { $arr[] = rand(0, 9); $arr = array_unique($arr); } return implode("", $arr); } }