BankCardHelper2.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. namespace common\helpers;
  3. /**
  4. * @see https://github.com/zhuzhichao/bank-card-info
  5. */
  6. class BankCardHelper2
  7. {
  8. private static $cardType = [
  9. 'CC' => '信用卡',
  10. 'DC' => '储蓄卡'
  11. ];
  12. private static $bankInfo = [
  13. "SRCB" => "深圳农村商业银行",
  14. "BGB" => "广西北部湾银行",
  15. "SHRCB" => "上海农村商业银行",
  16. "BJBANK" => "北京银行",
  17. "WHCCB" => "威海市商业银行",
  18. "BOZK" => "周口银行",
  19. "KORLABANK" => "库尔勒市商业银行",
  20. "SPABANK" => "平安银行",
  21. "SDEB" => "顺德农商银行",
  22. "HURCB" => "湖北省农村信用社",
  23. "WRCB" => "无锡农村商业银行",
  24. "BOCY" => "朝阳银行",
  25. "CZBANK" => "浙商银行",
  26. "HDBANK" => "邯郸银行",
  27. "BOC" => "中国银行",
  28. "BOD" => "东莞银行",
  29. "CCB" => "中国建设银行",
  30. "ZYCBANK" => "遵义市商业银行",
  31. "SXCB" => "绍兴银行",
  32. "GZRCU" => "贵州省农村信用社",
  33. "ZJKCCB" => "张家口市商业银行",
  34. "BOJZ" => "锦州银行",
  35. "BOP" => "平顶山银行",
  36. "HKB" => "汉口银行",
  37. "SPDB" => "上海浦东发展银行",
  38. "NXRCU" => "宁夏黄河农村商业银行",
  39. "NYBANK" => "广东南粤银行",
  40. "GRCB" => "广州农商银行",
  41. "BOSZ" => "苏州银行",
  42. "HZCB" => "杭州银行",
  43. "HSBK" => "衡水银行",
  44. "HBC" => "湖北银行",
  45. "JXBANK" => "嘉兴银行",
  46. "HRXJB" => "华融湘江银行",
  47. "BODD" => "丹东银行",
  48. "AYCB" => "安阳银行",
  49. "EGBANK" => "恒丰银行",
  50. "CDB" => "国家开发银行",
  51. "TCRCB" => "江苏太仓农村商业银行",
  52. "NJCB" => "南京银行",
  53. "ZZBANK" => "郑州银行",
  54. "DYCB" => "德阳商业银行",
  55. "YBCCB" => "宜宾市商业银行",
  56. "SCRCU" => "四川省农村信用",
  57. "KLB" => "昆仑银行",
  58. "LSBANK" => "莱商银行",
  59. "YDRCB" => "尧都农商行",
  60. "CCQTGB" => "重庆三峡银行",
  61. "FDB" => "富滇银行",
  62. "JSRCU" => "江苏省农村信用联合社",
  63. "JNBANK" => "济宁银行",
  64. "CMB" => "招商银行",
  65. "JINCHB" => "晋城银行JCBANK",
  66. "FXCB" => "阜新银行",
  67. "WHRCB" => "武汉农村商业银行",
  68. "HBYCBANK" => "湖北银行宜昌分行",
  69. "TZCB" => "台州银行",
  70. "TACCB" => "泰安市商业银行",
  71. "XCYH" => "许昌银行",
  72. "CEB" => "中国光大银行",
  73. "NXBANK" => "宁夏银行",
  74. "HSBANK" => "徽商银行",
  75. "JJBANK" => "九江银行",
  76. "NHQS" => "农信银清算中心",
  77. "MTBANK" => "浙江民泰商业银行",
  78. "LANGFB" => "廊坊银行",
  79. "ASCB" => "鞍山银行",
  80. "KSRB" => "昆山农村商业银行",
  81. "YXCCB" => "玉溪市商业银行",
  82. "DLB" => "大连银行",
  83. "DRCBCL" => "东莞农村商业银行",
  84. "GCB" => "广州银行",
  85. "NBBANK" => "宁波银行",
  86. "BOYK" => "营口银行",
  87. "SXRCCU" => "陕西信合",
  88. "GLBANK" => "桂林银行",
  89. "BOQH" => "青海银行",
  90. "CDRCB" => "成都农商银行",
  91. "QDCCB" => "青岛银行",
  92. "HKBEA" => "东亚银行",
  93. "HBHSBANK" => "湖北银行黄石分行",
  94. "WZCB" => "温州银行",
  95. "TRCB" => "天津农商银行",
  96. "QLBANK" => "齐鲁银行",
  97. "GDRCC" => "广东省农村信用社联合社",
  98. "ZJTLCB" => "浙江泰隆商业银行",
  99. "GZB" => "赣州银行",
  100. "GYCB" => "贵阳市商业银行",
  101. "CQBANK" => "重庆银行",
  102. "DAQINGB" => "龙江银行",
  103. "CGNB" => "南充市商业银行",
  104. "SCCB" => "三门峡银行",
  105. "CSRCB" => "常熟农村商业银行",
  106. "SHBANK" => "上海银行",
  107. "JLBANK" => "吉林银行",
  108. "CZRCB" => "常州农村信用联社",
  109. "BANKWF" => "潍坊银行",
  110. "ZRCBANK" => "张家港农村商业银行",
  111. "FJHXBC" => "福建海峡银行",
  112. "FJNX" => "福建省农村信用社联合社",
  113. "ZJNX" => "浙江省农村信用社联合社",
  114. "LZYH" => "兰州银行",
  115. "JSB" => "晋商银行",
  116. "BOHAIB" => "渤海银行",
  117. "CZCB" => "浙江稠州商业银行",
  118. "YQCCB" => "阳泉银行",
  119. "SJBANK" => "盛京银行",
  120. "XABANK" => "西安银行",
  121. "BSB" => "包商银行",
  122. "JSBANK" => "江苏银行",
  123. "FSCB" => "抚顺银行",
  124. "HNRCU" => "河南省农村信用",
  125. "COMM" => "交通银行",
  126. "XTB" => "邢台银行",
  127. "CITIC" => "中信银行",
  128. "HXBANK" => "华夏银行",
  129. "HNRCC" => "湖南省农村信用社",
  130. "DYCCB" => "东营市商业银行",
  131. "ORBANK" => "鄂尔多斯银行",
  132. "BJRCB" => "北京农村商业银行",
  133. "XYBANK" => "信阳银行",
  134. "ZGCCB" => "自贡市商业银行",
  135. "CDCB" => "成都银行",
  136. "HANABANK" => "韩亚银行",
  137. "CMBC" => "中国民生银行",
  138. "LYBANK" => "洛阳银行",
  139. "GDB" => "广东发展银行",
  140. "ZBCB" => "齐商银行",
  141. "CBKF" => "开封市商业银行",
  142. "H3CB" => "内蒙古银行",
  143. "CIB" => "兴业银行",
  144. "CRCBANK" => "重庆农村商业银行",
  145. "SZSBK" => "石嘴山银行",
  146. "DZBANK" => "德州银行",
  147. "SRBANK" => "上饶银行",
  148. "LSCCB" => "乐山市商业银行",
  149. "JXRCU" => "江西省农村信用",
  150. "ICBC" => "中国工商银行",
  151. "JZBANK" => "晋中市商业银行",
  152. "HZCCB" => "湖州市商业银行",
  153. "NHB" => "南海农村信用联社",
  154. "XXBANK" => "新乡银行",
  155. "JRCB" => "江苏江阴农村商业银行",
  156. "YNRCC" => "云南省农村信用社",
  157. "ABC" => "中国农业银行",
  158. "GXRCU" => "广西省农村信用",
  159. "PSBC" => "中国邮政储蓄银行",
  160. "BZMD" => "驻马店银行",
  161. "ARCU" => "安徽省农村信用社",
  162. "GSRCU" => "甘肃省农村信用",
  163. "LYCB" => "辽阳市商业银行",
  164. "JLRCU" => "吉林农信",
  165. "URMQCCB" => "乌鲁木齐市商业银行",
  166. "XLBANK" => "中山小榄村镇银行",
  167. "CSCB" => "长沙银行",
  168. "JHBANK" => "金华银行",
  169. "BHB" => "河北银行",
  170. "NBYZ" => "鄞州银行",
  171. "LSBC" => "临商银行",
  172. "BOCD" => "承德银行",
  173. "SDRCU" => "山东农信",
  174. "NCB" => "南昌银行",
  175. "TCCB" => "天津银行",
  176. "WJRCB" => "吴江农商银行",
  177. "CBBQS" => "城市商业银行资金清算中心",
  178. "HBRCU" => "河北省农村信用社"
  179. ];
  180. public static function getBankList()
  181. {
  182. return self::$bankInfo;
  183. }
  184. public static function getBankNameList()
  185. {
  186. return array_values(self::$bankInfo);
  187. }
  188. public static function getBankImg($bank)
  189. {
  190. return "https://apimg.alipay.com/combo.png?d=cashier&t={$bank}";
  191. }
  192. public static function info($cardNum)
  193. {
  194. $result = file_get_contents("https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo={$cardNum}&cardBinCheck=true");
  195. $result = json_decode($result);
  196. if (!$result->validated) {
  197. $bankInfo = array(
  198. 'validated' => $result->validated
  199. );
  200. } else {
  201. $bankInfo = array(
  202. 'validated' => $result->validated, // 是否验证通过
  203. 'bank' => $result->bank, // 银行代码
  204. 'bankName' => isset(self::$bankInfo[$result->bank]) ? self::$bankInfo[$result->bank] : '', // 银行名称
  205. 'bankImg' => self::getBankImg($result->bank),
  206. 'cardType' => $result->cardType, // 银行卡类型, CC 信用卡, DC 储蓄卡
  207. 'cardTypeName' => self::$cardType[$result->cardType],
  208. );
  209. }
  210. return $bankInfo;
  211. }
  212. /**
  213. * @param string $cardNo
  214. * @return bool
  215. */
  216. public static function check_bankCard($cardNo)
  217. {
  218. return self::info($cardNo)['validated'];
  219. }
  220. }