OpenController.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  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. LogHelper::writeLog($admin_id,$data['id'],'OpenDelete','删除开户用户');
  168. $rs = Open::deleteAll(['id' => $data['id']]);
  169. return $this->outJson(1, $rs);
  170. }
  171. /**
  172. * 审核开户申请
  173. * @return \yii\web\Response
  174. */
  175. public function actionOpenAction()
  176. {
  177. $data = Yii::$app->getRequest()->get();
  178. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  179. $data['type'] = isset($data['type']) ? (int)$data['type'] : '';
  180. $open = Open::findOne(['id' => $data['id']]);
  181. if (empty($data['type']) || empty($data['id'])) {
  182. return $this->outJson(0, [], '参数错误');
  183. }
  184. if($open->type == 2 || $open->type == 3){
  185. return $this->outJson(0,[],'操作超时,请刷新页面重试');
  186. }
  187. $open->type = $data['type'];
  188. if ($data['type'] == 1) {
  189. $open->mt4_login_pwd = RandomHelper::getRandomStringForMt4();
  190. $open->mt4_view_pwd = RandomHelper::getRandomStringForMt4();
  191. }
  192. if ($data['type'] == 3) {
  193. $config = Config::findOne(1);
  194. $paramArray = [
  195. 'name' => $open->name,
  196. ];
  197. // 发送邮件
  198. MailHelper::sendMail("账号申请审核通知", $open->email, $paramArray, '', $config->mail_reject_apply);
  199. }
  200. $rs = $open->save();
  201. return $this->outJson(1, $rs);
  202. }
  203. /**
  204. * 开通MT4账户
  205. * @return \yii\web\Response
  206. */
  207. public function actionOpenAccount()
  208. {
  209. $data = Yii::$app->getRequest()->post();
  210. $data['login'] = isset($data['login']) ? (int)$data['login'] : '';
  211. $data['group'] = isset($data['group']) ? $data['group'] : '';
  212. $data['lever'] = isset($data['lever']) ? (int)$data['lever'] : '';
  213. $data['openId'] = isset($data['openId']) ? (int)$data['openId'] : '';
  214. $open = Open::findOne(['id' => $data['openId']]);
  215. if (!empty($open) && $open->mt4_login != null) {
  216. return $this->outJson(0, [], '已开户,请刷新页面');
  217. }
  218. if ($data['login'] == null) {
  219. $data['login'] = 0;
  220. }
  221. if (empty($data['lever'])) {
  222. return $this->outJson(0, [], '请选择杠杆');
  223. }
  224. $password = $data['mt4LoginPwd'];
  225. $passwordInvestor = $data['mt4ViewPwd'];
  226. if (empty($password)) {
  227. return $this->outJson(0, [], '请填写登录密码');
  228. }
  229. if (empty($passwordInvestor)) {
  230. return $this->outJson(0, [], '请填写观摩密码');
  231. }
  232. //如果是代理
  233. /*
  234. if ($open->open_type == 2) {
  235. $rid = $open->rid;
  236. if (!$rid) {
  237. return $this->outJson(0, [], '上级代理不能为空');
  238. }
  239. $membereInfo = Member::findByLogin($rid);
  240. if (!$membereInfo) {
  241. return $this->outJson(0, [], '上级代理不存在');
  242. }
  243. //开户组别设置跟上级一样
  244. $data['group'] = $membereInfo['group_sn'];
  245. }
  246. */
  247. $rid = $open->rid;
  248. if (!$rid) {
  249. return $this->outJson(0, [], '上级代理不能为空');
  250. }
  251. $membereInfo = Member::findByLogin($rid);
  252. if (!$membereInfo) {
  253. return $this->outJson(0, [], '上级代理不存在');
  254. }
  255. //开户组别设置跟上级一样
  256. $data['group'] = $membereInfo['group_sn'];
  257. $configData = Config::find()->asArray()->one();
  258. $mt4ManagerIp = trim($configData['mt4_manager_ip']);
  259. $mt4ManagerPort = trim($configData['mt4_manager_port']);
  260. $passwordPhone = $open->mt4_view_pwd;
  261. $email = $open->email;
  262. $phone = "";
  263. $leverage = $data['lever'];
  264. $country = "中国";
  265. $ie = new IdCardInfoExtractorHelper($open->id_card);
  266. $state = $ie->getProvince();
  267. $city = "";
  268. $address = $open->address;
  269. $zipCode = "";
  270. $id = $open->id_card;
  271. $agentAccount = 0;
  272. // $login = 0;
  273. $login = MtKit::openUser($mt4ManagerIp, $mt4ManagerPort, $data['login'], $password, $passwordInvestor, $passwordPhone, $open->name,
  274. $data['group'], $email, $phone, $leverage, $country, $state, $city, $address, $zipCode, $id, $agentAccount);
  275. if ($login != 0) {
  276. $open->mt4_login = $login;
  277. $open->mt4_login_pwd = $password;
  278. $open->mt4_view_pwd = $passwordInvestor;
  279. if ($open->save()) {
  280. return $this->outJson(1, ['id' => $open->id], '操作成功');
  281. }
  282. }
  283. return $this->outJson(0, $login, '开户失败');
  284. }
  285. /**
  286. * 加入xtrader账户
  287. * @return \yii\web\Response
  288. */
  289. public function actionOpenMember()
  290. {
  291. $request = \Yii::$app->getRequest()->post();
  292. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  293. $username = isset($request['username']) ? $request['username'] : '';
  294. $password = isset($request['password']) ? $request['password'] : '';
  295. $name = isset($request['name']) ? $request['name'] : '';
  296. $idNo = isset($request['idNo']) ? $request['idNo'] : '';
  297. $isSendMail = isset($request['isSendMail']) ? $request['isSendMail'] : '';
  298. $isSendSms = isset($request['isSendSms']) ? $request['isSendSms'] : '';
  299. $address = isset($request['address']) ? $request['address'] : '';
  300. $groupSn = isset($request['group_sn']) ? $request['group_sn'] : '';
  301. $open = Open::findOne(['id' => $openId]);
  302. if (empty($username) || empty($password) || empty($name) || empty($idNo)) {
  303. return $this->outJson(0, [], '请填写完整表单');
  304. }
  305. if (!(new IdcardValidatorHelper())->checkIdCard($idNo)) {
  306. // return $this->outJson(0, [], '身份证号码格式错误');
  307. }
  308. $rid = $open->rid;
  309. if ($rid) {
  310. $membereInfo = Member::findByLogin($rid);
  311. if (!$membereInfo) {
  312. return $this->outJson(0, [], '上级代理不存在');
  313. }
  314. }
  315. $member = new Member();
  316. $m = $member->findByUserName($username, null);
  317. if ($m != null) {
  318. return $this->outJson(0, [], '邮箱已经存在');
  319. }
  320. $member->type = 1;
  321. $member->logins = (string)$open->mt4_login;
  322. $member->username = strtolower($username);
  323. $member->password = md5($password);
  324. $member->name = $name;
  325. $member->id_no = $idNo;
  326. $ie = new IdCardInfoExtractorHelper($idNo);
  327. $member->birthday = $ie->getBirthday();
  328. $member->group_sn = ($groupSn) ? $groupSn : $membereInfo['group_sn'];
  329. if (($ie->getGender()) == "男") {
  330. $member->gender = 1;
  331. } else {
  332. $member->gender = 2;
  333. }
  334. if (empty($address)) {
  335. $member->address = $ie->getProvince();
  336. } else {
  337. $member->address = $address;
  338. }
  339. $member->in_time = DateTimeHelper::microtime_float();
  340. //开启事务
  341. $tr = Member::getDb()->beginTransaction();
  342. try {
  343. if (!$member->save()) {
  344. throw new \Exception($member->getErrors());
  345. }
  346. //更新开户信息
  347. $ret = Open::updateAll(['member_id' =>$member->id, 'type' => 2 ], "id={$open->id}");
  348. if(!$ret) {
  349. throw new \Exception($open->getErrors());
  350. }
  351. //保存直客信息
  352. if ($rid) {
  353. $membereInfo = Member::findByLogin($rid);
  354. $userMebere = new UserMember();
  355. $userMebere->login = $open->mt4_login;
  356. $userMebere->member_id = $membereInfo['id'];
  357. $userMebere->name = $membereInfo['name'];
  358. $userMebere->in_time = DateTimeHelper::microtime_float();
  359. if (!$userMebere->save()) {
  360. throw new \Exception($userMebere->getErrors());
  361. }
  362. }
  363. //提交事务
  364. $tr->commit();
  365. } catch (\Exception $e) {
  366. //回滚
  367. $tr->rollBack();
  368. return $this->outJson(0, [], $e->getMessage());
  369. }
  370. $config = Config::findOne(1);
  371. if (!empty($isSendMail)) {
  372. $paramArray = [
  373. 'email' => $username,
  374. 'name' => $name,
  375. 'mt4Login' => $open->mt4_login,
  376. 'mt4LoginPwd' => $open->mt4_login_pwd,
  377. 'mt4ViewPwd' => $open->mt4_view_pwd,
  378. 'xTradePwd' => $password,
  379. ];
  380. // 发送邮件
  381. MailHelper::sendMail("恭喜您,您的账户已成功开通", $username, $paramArray, '', $config->mail_open);
  382. }
  383. return $this->outJson(1, $member, '操作成功');
  384. }
  385. /**
  386. * 加入xbroker账户
  387. * @return \yii\web\Response
  388. */
  389. public function actionOpenIbMember()
  390. {
  391. $request = \Yii::$app->getRequest()->post();
  392. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  393. $ibOldLoginName = isset($request['ib_old_login_name']) ? $request['ib_old_login_name'] : '';
  394. $logins = isset($request['logins']) ? $request['logins'] : '';
  395. $username = isset($request['username']) ? $request['username'] : '';
  396. $password = isset($request['password']) ? $request['password'] : '';
  397. $name = isset($request['name']) ? $request['name'] : '';
  398. $idNo = isset($request['idNo']) ? $request['idNo'] : '';
  399. $ref_id = isset($request['ref_id']) ? $request['ref_id'] : '';
  400. $address = isset($request['address']) ? $request['address'] : '';
  401. $bankName = isset($request['bank_name']) ? $request['bank_name'] : '';
  402. $bankProvince = isset($request['bank_province']) ? $request['bank_province'] : '';
  403. $bankCity = isset($request['bank_city']) ? $request['bank_city'] : '';
  404. $bankDistrict = isset($request['bank_district']) ? $request['bank_district'] : '';
  405. $bankBranch = isset($request['bank_branch']) ? $request['bank_branch'] : '';
  406. $bankCardNo = isset($request['bank_card_no']) ? $request['bank_card_no'] : '';
  407. $collectName = isset($request['collect_name']) ? $request['collect_name'] : '';
  408. $bankSwiftCode = isset($request['bank_swift_code']) ? $request['bank_swift_code'] : '';
  409. $isSendMail = isset($request['isSendMail']) ? $request['isSendMail'] : '';
  410. $groupSn = isset($request['group_sn']) ? $request['group_sn'] : '';
  411. $open = Open::findOne(['id' => $openId]);
  412. if (empty($logins) || empty($ibOldLoginName) || empty($username) || empty($password) || empty($name) || empty($idNo) || empty($ref_id)) {
  413. return $this->outJson(0, [], '请填写完整表单');
  414. }
  415. if (!(new IdcardValidatorHelper())->checkIdCard($idNo)) {
  416. //return $this->outJson(0, [], '身份证号码格式错误');
  417. }
  418. $member = new Member();
  419. $m = $member->findByUserName($username, null);
  420. if ($m != null) {
  421. return $this->outJson(0, [], '邮箱已经存在');
  422. }
  423. $ref = Member::find()->where(['id' => $ref_id])->limit(1)->asArray()->one();
  424. $member->type = 2;
  425. $member->logins = (string)$logins;
  426. $member->username = strtolower($username);
  427. $member->password = md5($password);
  428. $member->name = $name;
  429. $member->id_no = $idNo;
  430. $member->ref_id = $ref_id;
  431. $member->ref_path = $ref['ref_path'] . $ref_id . ',';
  432. $member->ib_old_login_name = $ibOldLoginName;
  433. $ie = new IdCardInfoExtractorHelper($idNo);
  434. $member->birthday = $ie->getBirthday();
  435. $member->group_sn = ($groupSn) ? $groupSn : $ref['group_sn'];
  436. if (($ie->getGender()) == "男") {
  437. $member->gender = 1;
  438. } else {
  439. $member->gender = 2;
  440. }
  441. if (empty($address)) {
  442. $member->address = $ie->getProvince();
  443. } else {
  444. $member->address = $address;
  445. }
  446. $member->in_time = DateTimeHelper::microtime_float();
  447. //开启事务
  448. $tr = Member::getDb()->beginTransaction();
  449. try {
  450. if (!$member->save()){
  451. throw new \Exception($member->getErrors());
  452. }
  453. //更新开户信息
  454. $ret = Open::updateAll(['member_id' =>$member->id, 'type' => 2 ], "id={$open->id}");
  455. if(!$ret) {
  456. throw new \Exception($open->getErrors());
  457. }
  458. //保存代理信息
  459. if ($open->rid) {
  460. $membereInfo = Member::findByLogin($open->rid);
  461. $userMebere = new UserMember();
  462. $userMebere->login = $open->mt4_login;
  463. $userMebere->member_id = $membereInfo['id'];
  464. $userMebere->name = $membereInfo['name'];
  465. $userMebere->in_time = DateTimeHelper::microtime_float();
  466. if (!$userMebere->save()) {
  467. throw new \Exception($userMebere->getErrors());
  468. }
  469. }
  470. // 代理商-member-银行卡信息
  471. if ($bankName && $bankBranch && $collectName) {
  472. $memberBank = new MemberBankInfo();
  473. $memberBank->member_id = 82950;
  474. $memberBank->is_enable = 1;
  475. $memberBank->bank_name = $bankName;
  476. $memberBank->bank_branch = $bankBranch;
  477. $memberBank->bank_swift_code = $bankSwiftCode;
  478. $memberBank->bank_card_no = $bankCardNo;
  479. $memberBank->bank_province = $bankProvince;
  480. $memberBank->bank_city = $bankCity;
  481. $memberBank->bank_district = $bankDistrict;
  482. $memberBank->name = $collectName;
  483. $memberBank->create_time = DateTimeHelper::microtime_float();
  484. if (!$memberBank->save()) {
  485. throw new \Exception($memberBank->getErrors());
  486. }
  487. }
  488. //提交事务
  489. $tr->commit();
  490. } catch (\Exception $e) {
  491. //回滚
  492. $tr->rollBack();
  493. return $this->outJson(0, [], $e->getMessage());
  494. }
  495. $config = Config::findOne(1);
  496. if (!empty($isSendMail)) {
  497. $paramArray = [
  498. 'email' => $username,
  499. 'name' => $name,
  500. 'mt4Login' => $open->mt4_login,
  501. 'mt4LoginPwd' => $open->mt4_login_pwd,
  502. 'mt4ViewPwd' => $open->mt4_view_pwd,
  503. 'xBrokerPwd' => $password,
  504. 'login' => $logins,
  505. 'id' => $member->id,
  506. ];
  507. // 发送邮件
  508. MailHelper::sendMail("代理商".$name." X Broker后台开设成功通知", $username, $paramArray, '', $config->mail_ib_open);
  509. }
  510. return $this->outJson(1, $member, '操作成功');
  511. }
  512. public function actionUpdateOpen()
  513. {
  514. $request = \Yii::$app->getRequest()->post();
  515. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  516. $login = $request['login'] ? (int)$request['login'] : null;
  517. $mt4LoginPwd = isset($request['mt4LoginPwd']) ? $request['mt4LoginPwd'] : '';
  518. $mt4ViewPwd = isset($request['mt4ViewPwd']) ? $request['mt4ViewPwd'] : '';
  519. $open = Open::findOne(['id' => $openId]);
  520. if ($open->mt4_login != null) {
  521. return $this->outJson(0, [], '已开户,请刷新当前页');
  522. }
  523. $open->mt4_login = $login;
  524. $open->mt4_login_pwd = $mt4LoginPwd;
  525. $open->mt4_view_pwd = $mt4ViewPwd;
  526. $open->save();
  527. $this->outJson(1, ['id' => $openId], '提交成功');
  528. }
  529. /**
  530. * 银行code和银行名称的对应
  531. * @param $bank_code
  532. * @return string
  533. */
  534. protected function bankNameByBankCode($bank_code)
  535. {
  536. $bank_name = '';
  537. switch ($bank_code) {
  538. case '102':
  539. $bank_name = '工商银行';
  540. break;
  541. case '103':
  542. $bank_name = '农业银行';
  543. break;
  544. case '104':
  545. $bank_name = '中国银行';
  546. break;
  547. case '105':
  548. $bank_name = '建设银行';
  549. break;
  550. case '308':
  551. $bank_name = '招商银行';
  552. break;
  553. case '301':
  554. $bank_name = '交通银行';
  555. break;
  556. case '305':
  557. $bank_name = '民生银行';
  558. break;
  559. case '302':
  560. $bank_name = '中信银行';
  561. break;
  562. case '303':
  563. $bank_name = '光大银行';
  564. break;
  565. case '309':
  566. $bank_name = '兴业银行';
  567. break;
  568. case '4031000':
  569. $bank_name = '北京银行';
  570. break;
  571. case '306':
  572. $bank_name = '广发银行';
  573. break;
  574. case '304':
  575. $bank_name = '华夏银行';
  576. break;
  577. case '403':
  578. $bank_name = '邮储银行';
  579. break;
  580. case '310':
  581. $bank_name = '浦发银行';
  582. break;
  583. case '4105840':
  584. $bank_name = '平安银行';
  585. break;
  586. case '4012900':
  587. $bank_name = '上海银行';
  588. break;
  589. case '4233310':
  590. $bank_name = '杭州银行';
  591. break;
  592. case '316':
  593. $bank_name = '浙商银行';
  594. break;
  595. case '4504520':
  596. $bank_name = '青岛银行';
  597. break;
  598. case '4083320':
  599. $bank_name = '宁波银行';
  600. break;
  601. case '4341100':
  602. $bank_name = '天津银行';
  603. break;
  604. case '4478210':
  605. $bank_name = '兰州银行';
  606. break;
  607. case '4243010':
  608. $bank_name = '南京银行';
  609. break;
  610. case '4296510':
  611. $bank_name = '成都银行';
  612. break;
  613. case '322':
  614. $bank_name = '上海农商银行';
  615. break;
  616. case '4021000':
  617. $bank_name = '北京农村商业银行';
  618. break;
  619. }
  620. return $bank_name;
  621. }
  622. }