OpenController.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. <?php
  2. namespace backend\controllers;
  3. use backend\helpers\DateTimeHelper;
  4. use backend\helpers\IdCardInfoExtractorHelper;
  5. use backend\helpers\IdcardValidatorHelper;
  6. use backend\helpers\MailHelper;
  7. use backend\helpers\PaginationHelper;
  8. use backend\helpers\RandomHelper;
  9. use backend\helpers\ValidatorHelper;
  10. use backend\models\Config;
  11. use backend\models\forms\OpenDemoForm;
  12. use backend\models\IbOpenRecord;
  13. use backend\models\Member;
  14. use backend\models\MemberBankInfo;
  15. use backend\models\Open;
  16. use backend\models\UserMember;
  17. use common\helpers\MtKit;
  18. use backend\helpers\LogHelper;
  19. use Yii;
  20. class OpenController extends BaseController
  21. {
  22. /**
  23. * 真实账户申请
  24. * @return \yii\web\Response
  25. */
  26. public function actionOpen()
  27. {
  28. $model = new Open();
  29. $model->setScenario('frontend');
  30. $data = Yii::$app->getRequest()->post();
  31. foreach (['type', 'in_time', 'mt4_login', 'mt4_login_pwd', 'member_id'] as $field) {
  32. unset($data[$field]);
  33. }
  34. $model->setAttributes($data);
  35. $model->type = 0;
  36. $model->in_time = DateTimeHelper::microtime_float();
  37. if ($model->save()) {
  38. return $this->outJson(1, $model->getAttributes(), 'OK');
  39. } else {
  40. return $this->outJson(0, [], $model->getErrors());
  41. }
  42. }
  43. /**
  44. * 模拟账户申请
  45. * @return \yii\web\Response
  46. */
  47. public function actionOpendemo()
  48. {
  49. $model = new OpenDemoForm();
  50. $data = Yii::$app->getRequest()->post();
  51. $model->setAttributes($data);
  52. if ($model->openDemo()) {
  53. return $this->outJson(1, ['login' => $model->getLogin(), 'password' => $model->getPassword()], 'OK');
  54. } else {
  55. return $this->outJson(0, [], $model->getErrors());
  56. }
  57. }
  58. /**
  59. * 代理商开户申请附属表记录
  60. * @return \yii\web\Response
  61. */
  62. public function actionOpenRecord()
  63. {
  64. $model = new IbOpenRecord();
  65. $data = Yii::$app->getRequest()->post();
  66. $model->setAttributes($data);
  67. $model->in_time = DateTimeHelper::microtime_float();
  68. if ($model->save()) {
  69. return $this->outJson(1, $model->getAttributes(), 'OK');
  70. } else {
  71. return $this->outJson(0, [], $model->getErrors());
  72. }
  73. }
  74. /**
  75. * 开户申请列表
  76. */
  77. public function actionGetOpenList()
  78. {
  79. $data = \Yii::$app->getRequest()->get();
  80. $data['page'] = isset($data['page']) ? max(intval($data['page']), 1) : 1;
  81. $data['pageSize'] = isset($data['pageSize']) ? intval($data['pageSize']) : 20;
  82. $data['search'] = isset($data['search']) ? trim($data['search']) : '';
  83. $data['orderBy'] = isset($data['orderBy']) ? trim($data['orderBy']) : 'id desc';
  84. $data = ValidatorHelper::validateData($data, [
  85. ['page', 'integer', 'min' => 1],
  86. ['pageSize', 'integer', 'min' => 1],
  87. ['orderBy', 'string'],
  88. ], $errors);
  89. if ($data == false) {
  90. return $this->outJson(0, '', $errors);
  91. }
  92. $query = Open::find()->orderBy($data['orderBy']);
  93. if (!empty($data['search'])) {
  94. $query->andFilterWhere([
  95. 'or',
  96. ['like', 'email', $data['search']],
  97. ['like', 'name', $data['search']],
  98. ['like', 'rid', $data['search']],
  99. ]);
  100. }
  101. $result = PaginationHelper::queryPage($query, $data['page'], $data['pageSize']);
  102. return $this->outJson(1, $result);
  103. }
  104. /**
  105. * 查看开户申请详情
  106. * @return \yii\web\Response
  107. */
  108. public function actionView()
  109. {
  110. $rs = [];
  111. $data = Yii::$app->getRequest()->get();
  112. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  113. $data['open_type'] = isset($data['open_type']) ? (int)$data['open_type'] : '';
  114. if ($data['open_type'] == 1) {
  115. $open = Open::find()->where(['id' => $data['id']])->one();
  116. $rs['open'] = $open;
  117. if (!empty($open['member_id'])) {
  118. $member = Member::find()->where(['id' => $open['member_id']])->one();
  119. $rs['member'] = $member;
  120. }
  121. $config = Config::findOne(1);
  122. $rs['levers'] = explode(',', $config->lever);
  123. $rs['groups'] = explode(',', $config->mt4_groups);
  124. $rs['randomCode'] = RandomHelper::getRandomString(6);
  125. } else {
  126. $openQuery = Open::find()->alias('op')
  127. ->select([
  128. 'op.*',
  129. 'opr.ref_id',
  130. 'opr.bank_name',
  131. 'opr.bank_province',
  132. 'opr.bank_city',
  133. 'opr.bank_district',
  134. 'opr.bank_branch',
  135. 'opr.bank_card_no',
  136. 'opr.collect_name',
  137. 'opr.bank_swift_code'
  138. ])
  139. ->leftJoin(IbOpenRecord::tableName().' opr', 'op.id = opr.open_id')
  140. ->andWhere(['op.id' => $data['id']])
  141. ->asArray()
  142. ->one();
  143. if ($openQuery) {
  144. $openQuery['bank_name'] = $this->bankNameByBankCode($openQuery['bank_name']);
  145. }
  146. $rs['open'] = $openQuery;
  147. if (!empty($openQuery['member_id'])) {
  148. $member = Member::find()->where(['id' => $openQuery['member_id']])->one();
  149. $rs['member'] = $member;
  150. }
  151. $config = Config::findOne(1);
  152. $rs['levers'] = explode(',', $config->lever);
  153. $rs['groups'] = explode(',', $config->mt4_groups);
  154. $rs['randomCode'] = RandomHelper::getRandomString(6);
  155. }
  156. return $this->outJson(1, $rs);
  157. }
  158. /**
  159. * 删除开户申请
  160. * @return \yii\web\Response
  161. */
  162. public function actionOpenDelete()
  163. {
  164. $data = Yii::$app->getRequest()->post();
  165. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  166. $admin_id = isset($data['admin_id']) ? (int)$data['admin_id'] : '';
  167. $open_info = Open::findById($data['id']);
  168. $open_info = json_encode($open_info);
  169. LogHelper::writeLog($admin_id,$data['id'],'Open/delete','删除开户用户',$open_info);
  170. $rs = Open::deleteAll(['id' => $data['id']]);
  171. return $this->outJson(1, $rs);
  172. }
  173. /**
  174. * 审核开户申请
  175. * @return \yii\web\Response
  176. */
  177. public function actionOpenAction()
  178. {
  179. $data = Yii::$app->getRequest()->get();
  180. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  181. $data['type'] = isset($data['type']) ? (int)$data['type'] : '';
  182. $open = Open::findOne(['id' => $data['id']]);
  183. if (empty($data['type']) || empty($data['id'])) {
  184. return $this->outJson(0, [], '参数错误');
  185. }
  186. if($open->type == 2 || $open->type == 3){
  187. return $this->outJson(0,[],'操作超时,请刷新页面重试');
  188. }
  189. $open->type = $data['type'];
  190. if ($data['type'] == 1) {
  191. $open->mt4_login_pwd = RandomHelper::getRandomStringForMt4();
  192. $open->mt4_view_pwd = RandomHelper::getRandomStringForMt4();
  193. }
  194. if ($data['type'] == 3) {
  195. $config = Config::findOne(1);
  196. $paramArray = [
  197. 'name' => $open->name,
  198. ];
  199. // 发送邮件
  200. MailHelper::sendMail("账号申请审核通知", $open->email, $paramArray, '', $config->mail_reject_apply);
  201. }
  202. $rs = $open->save();
  203. return $this->outJson(1, $rs);
  204. }
  205. /**
  206. * 开通MT4账户
  207. * @return \yii\web\Response
  208. */
  209. public function actionOpenAccount()
  210. {
  211. $data = Yii::$app->getRequest()->post();
  212. $data['login'] = isset($data['login']) ? (int)$data['login'] : '';
  213. $data['group'] = isset($data['group']) ? $data['group'] : '';
  214. $data['lever'] = isset($data['lever']) ? (int)$data['lever'] : '';
  215. $data['openId'] = isset($data['openId']) ? (int)$data['openId'] : '';
  216. $open = Open::findOne(['id' => $data['openId']]);
  217. if (!empty($open) && $open->mt4_login != null) {
  218. return $this->outJson(0, [], '已开户,请刷新页面');
  219. }
  220. if ($data['login'] == null) {
  221. $data['login'] = 0;
  222. }
  223. if (empty($data['lever'])) {
  224. return $this->outJson(0, [], '请选择杠杆');
  225. }
  226. $password = $data['mt4LoginPwd'];
  227. $passwordInvestor = $data['mt4ViewPwd'];
  228. if (empty($password)) {
  229. return $this->outJson(0, [], '请填写登录密码');
  230. }
  231. if (empty($passwordInvestor)) {
  232. return $this->outJson(0, [], '请填写观摩密码');
  233. }
  234. //如果是代理
  235. /*
  236. if ($open->open_type == 2) {
  237. $rid = $open->rid;
  238. if (!$rid) {
  239. return $this->outJson(0, [], '上级代理不能为空');
  240. }
  241. $membereInfo = Member::findByLogin($rid);
  242. if (!$membereInfo) {
  243. return $this->outJson(0, [], '上级代理不存在');
  244. }
  245. //开户组别设置跟上级一样
  246. $data['group'] = $membereInfo['group_sn'];
  247. }
  248. */
  249. $rid = $open->rid;
  250. if (!$rid) {
  251. return $this->outJson(0, [], '上级代理不能为空');
  252. }
  253. $membereInfo = Member::findByLogin($rid);
  254. if (!$membereInfo) {
  255. return $this->outJson(0, [], '上级代理不存在');
  256. }
  257. //开户组别设置跟上级一样
  258. $data['group'] = $membereInfo['group_sn'];
  259. $configData = Config::find()->asArray()->one();
  260. $mt4ManagerIp = trim($configData['mt4_manager_ip']);
  261. $mt4ManagerPort = trim($configData['mt4_manager_port']);
  262. $passwordPhone = $open->mt4_view_pwd;
  263. $email = $open->email;
  264. $phone = "";
  265. $leverage = $data['lever'];
  266. $country = "中国";
  267. $ie = new IdCardInfoExtractorHelper($open->id_card);
  268. $state = $ie->getProvince();
  269. $city = "";
  270. $address = $open->address;
  271. $zipCode = "";
  272. $id = $open->id_card;
  273. $agentAccount = 0;
  274. // $login = 0;
  275. $login = MtKit::openUser($mt4ManagerIp, $mt4ManagerPort, $data['login'], $password, $passwordInvestor, $passwordPhone, $open->name,
  276. $data['group'], $email, $phone, $leverage, $country, $state, $city, $address, $zipCode, $id, $agentAccount);
  277. if ($login != 0) {
  278. $open->mt4_login = $login;
  279. $open->mt4_login_pwd = $password;
  280. $open->mt4_view_pwd = $passwordInvestor;
  281. if ($open->save()) {
  282. return $this->outJson(1, ['id' => $open->id], '操作成功');
  283. }
  284. }
  285. return $this->outJson(0, $login, '开户失败');
  286. }
  287. /**
  288. * 加入xtrader账户
  289. * @return \yii\web\Response
  290. */
  291. public function actionOpenMember()
  292. {
  293. $request = \Yii::$app->getRequest()->post();
  294. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  295. $username = isset($request['username']) ? $request['username'] : '';
  296. $password = isset($request['password']) ? $request['password'] : '';
  297. $name = isset($request['name']) ? $request['name'] : '';
  298. $idNo = isset($request['idNo']) ? $request['idNo'] : '';
  299. $isSendMail = isset($request['isSendMail']) ? $request['isSendMail'] : '';
  300. $isSendSms = isset($request['isSendSms']) ? $request['isSendSms'] : '';
  301. $address = isset($request['address']) ? $request['address'] : '';
  302. $groupSn = isset($request['group_sn']) ? $request['group_sn'] : '';
  303. $open = Open::findOne(['id' => $openId]);
  304. if (empty($username) || empty($password) || empty($name) || empty($idNo)) {
  305. return $this->outJson(0, [], '请填写完整表单');
  306. }
  307. if (!(new IdcardValidatorHelper())->checkIdCard($idNo)) {
  308. // return $this->outJson(0, [], '身份证号码格式错误');
  309. }
  310. $rid = $open->rid;
  311. if ($rid) {
  312. $membereInfo = Member::findByLogin($rid);
  313. if (!$membereInfo) {
  314. return $this->outJson(0, [], '上级代理不存在');
  315. }
  316. }
  317. $member = new Member();
  318. $m = $member->findByUserName($username, null);
  319. if ($m != null) {
  320. return $this->outJson(0, [], '邮箱已经存在');
  321. }
  322. $member->type = 1;
  323. $member->logins = (string)$open->mt4_login;
  324. $member->username = strtolower($username);
  325. $member->password = md5($password);
  326. $member->name = $name;
  327. $member->id_no = $idNo;
  328. $ie = new IdCardInfoExtractorHelper($idNo);
  329. $member->birthday = $ie->getBirthday();
  330. $member->group_sn = ($groupSn) ? $groupSn : $membereInfo['group_sn'];
  331. if (($ie->getGender()) == "男") {
  332. $member->gender = 1;
  333. } else {
  334. $member->gender = 2;
  335. }
  336. if (empty($address)) {
  337. $member->address = $ie->getProvince();
  338. } else {
  339. $member->address = $address;
  340. }
  341. $member->in_time = DateTimeHelper::microtime_float();
  342. //开启事务
  343. $tr = Member::getDb()->beginTransaction();
  344. try {
  345. if (!$member->save()) {
  346. throw new \Exception($member->getErrors());
  347. }
  348. //更新开户信息
  349. $ret = Open::updateAll(['member_id' =>$member->id, 'type' => 2 ], "id={$open->id}");
  350. if(!$ret) {
  351. throw new \Exception($open->getErrors());
  352. }
  353. //保存直客信息
  354. if ($rid) {
  355. $membereInfo = Member::findByLogin($rid);
  356. $userMebere = new UserMember();
  357. $userMebere->login = $open->mt4_login;
  358. $userMebere->member_id = $membereInfo['id'];
  359. $userMebere->name = $membereInfo['name'];
  360. $userMebere->in_time = DateTimeHelper::microtime_float();
  361. if (!$userMebere->save()) {
  362. throw new \Exception($userMebere->getErrors());
  363. }
  364. }
  365. //提交事务
  366. $tr->commit();
  367. } catch (\Exception $e) {
  368. //回滚
  369. $tr->rollBack();
  370. return $this->outJson(0, [], $e->getMessage());
  371. }
  372. $config = Config::findOne(1);
  373. if (!empty($isSendMail)) {
  374. $paramArray = [
  375. 'email' => $username,
  376. 'name' => $name,
  377. 'mt4Login' => $open->mt4_login,
  378. 'mt4LoginPwd' => $open->mt4_login_pwd,
  379. 'mt4ViewPwd' => $open->mt4_view_pwd,
  380. 'xTradePwd' => $password,
  381. ];
  382. // 发送邮件
  383. MailHelper::sendMail("恭喜您,您的账户已成功开通", $username, $paramArray, '', $config->mail_open);
  384. }
  385. return $this->outJson(1, $member, '操作成功');
  386. }
  387. /**
  388. * 加入xbroker账户
  389. * @return \yii\web\Response
  390. */
  391. public function actionOpenIbMember()
  392. {
  393. $request = \Yii::$app->getRequest()->post();
  394. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  395. $ibOldLoginName = isset($request['ib_old_login_name']) ? $request['ib_old_login_name'] : '';
  396. $logins = isset($request['logins']) ? $request['logins'] : '';
  397. $username = isset($request['username']) ? $request['username'] : '';
  398. $password = isset($request['password']) ? $request['password'] : '';
  399. $name = isset($request['name']) ? $request['name'] : '';
  400. $idNo = isset($request['idNo']) ? $request['idNo'] : '';
  401. $ref_id = isset($request['ref_id']) ? $request['ref_id'] : '';
  402. $address = isset($request['address']) ? $request['address'] : '';
  403. $bankName = isset($request['bank_name']) ? $request['bank_name'] : '';
  404. $bankProvince = isset($request['bank_province']) ? $request['bank_province'] : '';
  405. $bankCity = isset($request['bank_city']) ? $request['bank_city'] : '';
  406. $bankDistrict = isset($request['bank_district']) ? $request['bank_district'] : '';
  407. $bankBranch = isset($request['bank_branch']) ? $request['bank_branch'] : '';
  408. $bankCardNo = isset($request['bank_card_no']) ? $request['bank_card_no'] : '';
  409. $collectName = isset($request['collect_name']) ? $request['collect_name'] : '';
  410. $bankSwiftCode = isset($request['bank_swift_code']) ? $request['bank_swift_code'] : '';
  411. $isSendMail = isset($request['isSendMail']) ? $request['isSendMail'] : '';
  412. $groupSn = isset($request['group_sn']) ? $request['group_sn'] : '';
  413. $open = Open::findOne(['id' => $openId]);
  414. if (empty($logins) || empty($ibOldLoginName) || empty($username) || empty($password) || empty($name) || empty($idNo) || empty($ref_id)) {
  415. return $this->outJson(0, [], '请填写完整表单');
  416. }
  417. if (!(new IdcardValidatorHelper())->checkIdCard($idNo)) {
  418. //return $this->outJson(0, [], '身份证号码格式错误');
  419. }
  420. $member = new Member();
  421. $m = $member->findByUserName($username, null);
  422. if ($m != null) {
  423. return $this->outJson(0, [], '邮箱已经存在');
  424. }
  425. $ref = Member::find()->where(['id' => $ref_id])->limit(1)->asArray()->one();
  426. $member->type = 2;
  427. $member->logins = (string)$logins;
  428. $member->username = strtolower($username);
  429. $member->password = md5($password);
  430. $member->name = $name;
  431. $member->id_no = $idNo;
  432. $member->ref_id = $ref_id;
  433. $member->ref_path = $ref['ref_path'] . $ref_id . ',';
  434. $member->ib_old_login_name = $ibOldLoginName;
  435. $ie = new IdCardInfoExtractorHelper($idNo);
  436. $member->birthday = $ie->getBirthday();
  437. $member->group_sn = ($groupSn) ? $groupSn : $ref['group_sn'];
  438. if (($ie->getGender()) == "男") {
  439. $member->gender = 1;
  440. } else {
  441. $member->gender = 2;
  442. }
  443. if (empty($address)) {
  444. $member->address = $ie->getProvince();
  445. } else {
  446. $member->address = $address;
  447. }
  448. $member->in_time = DateTimeHelper::microtime_float();
  449. //开启事务
  450. $tr = Member::getDb()->beginTransaction();
  451. try {
  452. if (!$member->save()){
  453. throw new \Exception($member->getErrors());
  454. }
  455. //更新开户信息
  456. $ret = Open::updateAll(['member_id' =>$member->id, 'type' => 2 ], "id={$open->id}");
  457. if(!$ret) {
  458. throw new \Exception($open->getErrors());
  459. }
  460. //保存代理信息
  461. if ($open->rid) {
  462. $membereInfo = Member::findByLogin($open->rid);
  463. $userMebere = new UserMember();
  464. $userMebere->login = $open->mt4_login;
  465. $userMebere->member_id = $membereInfo['id'];
  466. $userMebere->name = $membereInfo['name'];
  467. $userMebere->in_time = DateTimeHelper::microtime_float();
  468. if (!$userMebere->save()) {
  469. throw new \Exception($userMebere->getErrors());
  470. }
  471. }
  472. // 代理商-member-银行卡信息
  473. if ($bankName && $bankBranch && $collectName) {
  474. $memberBank = new MemberBankInfo();
  475. $memberBank->member_id = 82950;
  476. $memberBank->is_enable = 1;
  477. $memberBank->bank_name = $bankName;
  478. $memberBank->bank_branch = $bankBranch;
  479. $memberBank->bank_swift_code = $bankSwiftCode;
  480. $memberBank->bank_card_no = $bankCardNo;
  481. $memberBank->bank_province = $bankProvince;
  482. $memberBank->bank_city = $bankCity;
  483. $memberBank->bank_district = $bankDistrict;
  484. $memberBank->name = $collectName;
  485. $memberBank->create_time = DateTimeHelper::microtime_float();
  486. if (!$memberBank->save()) {
  487. throw new \Exception($memberBank->getErrors());
  488. }
  489. }
  490. //提交事务
  491. $tr->commit();
  492. } catch (\Exception $e) {
  493. //回滚
  494. $tr->rollBack();
  495. return $this->outJson(0, [], $e->getMessage());
  496. }
  497. $config = Config::findOne(1);
  498. if (!empty($isSendMail)) {
  499. $paramArray = [
  500. 'email' => $username,
  501. 'name' => $name,
  502. 'mt4Login' => $open->mt4_login,
  503. 'mt4LoginPwd' => $open->mt4_login_pwd,
  504. 'mt4ViewPwd' => $open->mt4_view_pwd,
  505. 'xBrokerPwd' => $password,
  506. 'login' => $logins,
  507. 'id' => $member->id,
  508. ];
  509. // 发送邮件
  510. MailHelper::sendMail("代理商".$name." X Broker后台开设成功通知", $username, $paramArray, '', $config->mail_ib_open);
  511. }
  512. return $this->outJson(1, $member, '操作成功');
  513. }
  514. public function actionUpdateOpen()
  515. {
  516. $request = \Yii::$app->getRequest()->post();
  517. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  518. $login = $request['login'] ? (int)$request['login'] : null;
  519. $mt4LoginPwd = isset($request['mt4LoginPwd']) ? $request['mt4LoginPwd'] : '';
  520. $mt4ViewPwd = isset($request['mt4ViewPwd']) ? $request['mt4ViewPwd'] : '';
  521. $open = Open::findOne(['id' => $openId]);
  522. if ($open->mt4_login != null) {
  523. return $this->outJson(0, [], '已开户,请刷新当前页');
  524. }
  525. $open->mt4_login = $login;
  526. $open->mt4_login_pwd = $mt4LoginPwd;
  527. $open->mt4_view_pwd = $mt4ViewPwd;
  528. $open->save();
  529. $this->outJson(1, ['id' => $openId], '提交成功');
  530. }
  531. /**
  532. * 银行code和银行名称的对应
  533. * @param $bank_code
  534. * @return string
  535. */
  536. protected function bankNameByBankCode($bank_code)
  537. {
  538. $bank_name = '';
  539. switch ($bank_code) {
  540. case '102':
  541. $bank_name = '工商银行';
  542. break;
  543. case '103':
  544. $bank_name = '农业银行';
  545. break;
  546. case '104':
  547. $bank_name = '中国银行';
  548. break;
  549. case '105':
  550. $bank_name = '建设银行';
  551. break;
  552. case '308':
  553. $bank_name = '招商银行';
  554. break;
  555. case '301':
  556. $bank_name = '交通银行';
  557. break;
  558. case '305':
  559. $bank_name = '民生银行';
  560. break;
  561. case '302':
  562. $bank_name = '中信银行';
  563. break;
  564. case '303':
  565. $bank_name = '光大银行';
  566. break;
  567. case '309':
  568. $bank_name = '兴业银行';
  569. break;
  570. case '4031000':
  571. $bank_name = '北京银行';
  572. break;
  573. case '306':
  574. $bank_name = '广发银行';
  575. break;
  576. case '304':
  577. $bank_name = '华夏银行';
  578. break;
  579. case '403':
  580. $bank_name = '邮储银行';
  581. break;
  582. case '310':
  583. $bank_name = '浦发银行';
  584. break;
  585. case '4105840':
  586. $bank_name = '平安银行';
  587. break;
  588. case '4012900':
  589. $bank_name = '上海银行';
  590. break;
  591. case '4233310':
  592. $bank_name = '杭州银行';
  593. break;
  594. case '316':
  595. $bank_name = '浙商银行';
  596. break;
  597. case '4504520':
  598. $bank_name = '青岛银行';
  599. break;
  600. case '4083320':
  601. $bank_name = '宁波银行';
  602. break;
  603. case '4341100':
  604. $bank_name = '天津银行';
  605. break;
  606. case '4478210':
  607. $bank_name = '兰州银行';
  608. break;
  609. case '4243010':
  610. $bank_name = '南京银行';
  611. break;
  612. case '4296510':
  613. $bank_name = '成都银行';
  614. break;
  615. case '322':
  616. $bank_name = '上海农商银行';
  617. break;
  618. case '4021000':
  619. $bank_name = '北京农村商业银行';
  620. break;
  621. }
  622. return $bank_name;
  623. }
  624. }