bank.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. from requests import request
  2. from time import sleep
  3. import json
  4. import os
  5. types = [
  6. "ABC", "ABCSH", "AEON", "ARCU", "ASCB", "AYCB", "BANKWF", "BEA", "BEAHK", "BGB", "BHB", "BJBANK", "BJRCB", "BOC",
  7. "BOCCCL", "BOCD", "BOCHK", "BOCI", "BOCM", "BOCMA", "BOCSH", "BOCY", "BOD", "BODD", "BOHAIB", "BOHN", "BOJZ", "BOP",
  8. "BOQH", "BOSC", "BOSH", "BOSZ", "BOYK", "BOZK", "BQD", "BSB", "BZMD", "CATB", "CBKF", "CCB", "CCBEPAY", "CCQTGB",
  9. "CDCB", "CDRCB", "CEB", "CGNB", "CHB", "CHBHK", "CIB", "CITIC", "CITIHK", "CMB", "CMBC", "COMM", "COMMHK", "CQBANK",
  10. "CRCBANK", "CSCB", "CSRCB", "CZBANK", "CZCB", "CZCCB", "CZRCB", "DAQINGB", "DBS", "DBSCN", "DLB", "DQCCB", "DRCBCL",
  11. "DSB", "DSBHK", "DYCB", "DYCCB", "DZBANK", "EGBANK", "ESUN", "FBBHK", "FBHK", "FDB", "FIRB", "FJHXBC", "FSCB",
  12. "FUBB", "FXCB", "GCB", "GDB", "GDRCC", "GLBANK", "GRCB", "GSRCU", "GXRCU", "GYCB", "GZB", "GZRCU", "H3CB",
  13. "HANABANK", "HBC", "HBHSBANK", "HBRCU", "HCCB", "HDBANK", "HKB", "HKBEA", "HNRCC", "HNRCU", "HRXJB", "HSBANK",
  14. "HSBK", "HURCB", "HXBANK", "HZCB", "HZCCB", "ICBC", "ICBCHK", "ICBCMA", "JCB", "JHBANK", "JINCHB", "JJBANK",
  15. "JLBANK", "JLRCU", "JNBANK", "JNCCB", "JRCB", "JSB", "JSBANK", "JSRCU", "JXBANK", "JXRCU", "JZBANK", "JZCB",
  16. "JZCBANK", "JZSBANK", "KELBANK", "KLB", "KSRB", "LANGFB", "LSBANK", "LSBC", "LSCCB", "LYCB", "LZCCB", "LZYH",
  17. "MASTER", "MTBANK", "NBBANK", "NBYZ", "NCB", "NHB", "NJCB", "NMGNXS", "NXBANK", "NXRCU", "NYCB", "ORBANK", "PINGAN",
  18. "PSBC", "PZHCCB", "QDCCB", "QLBANK", "RCB", "RZB", "SCB", "SCBBANK", "SCBHK", "SCCB", "SCRCU", "SDB", "SDEB",
  19. "SDEBS", "SDRCB", "SDRCU", "SHBANK", "SHCBHK", "SHRCB", "SINO", "SJBANK", "SPABANK", "SPDB", "SRBANK", "SRCB",
  20. "SXCB", "SXRCCU", "SXRCU", "SZSBK", "TACCB", "TAIS", "TCCB", "TCRCB", "TRCB", "TZCB", "URMQCCB", "VISA", "WHB",
  21. "WHBHK", "WHCCB", "WHRCB", "WJRCB", "WLB", "WLBHK", "WRCB", "WZCB", "XABANK", "XCYH", "XLBANK", "XTB", "XXBANK",
  22. "XYBANK", "YBCCB", "YCCB", "YDRCB", "YDRCBCC", "YNRCC", "YQCCB", "YXCCB", "ZBCB", "ZCKCCB", "ZGCCB", "ZJKCCB",
  23. "ZJNX", "ZJTLCB", "ZRCBANK", "ZSB", "ZYCBANK", "ZZBANK", "myjCASH", "psbcCASH", "rccCASH"
  24. ]
  25. bank_tuple = [
  26. ("CCB", "中国建设银行", False), ("CCBEPAY", "中国建设银行", "CCB"), ("CCQTGB", "重庆三峡银行", False), ("CDCB", "成都银行", False),
  27. ("CDRCB", "成都农村商业银行", False), ("CEB", "中国光大银行", False), ("CGNB", "南充市商业银行", False), ("CHB", "创兴银行", False),
  28. ("HSBK", "衡水银行", False), ("HURCB", "湖北农村信用社", False), ("HXBANK", "华夏银行", False), ("HZCB", "杭州银行", False),
  29. ("SINO", "永丰银行", False), ("SJBANK", "盛京银行", False), ("SPABANK", "平安银行", "PINGAN"), ("SPDB", "浦发银行", False),
  30. ("ICBCMA", "工银澳门", "ICBC"), ("JCB", "国际信用卡", False), ("JHBANK", "金华银行", False), ("JINCHB", "晋城银行", False),
  31. ("FUBB", "台北富邦银行", "FBB"), ("FXCB", "阜新银行", False), ("GCB", "广州银行", False), ("GDB", "广发银行|CGB", False),
  32. ("LSCCB", "乐山商业银行", False), ("LYCB", "辽阳银行", False), ("LZCCB", "柳州银行", False), ("LZYH", "兰州银行", False),
  33. ("BOQH", "青海银行", False), ("BOSC", "上海银行", False), ("BOSH", "新韩银行(中国)", False), ("BOSZ", "苏州银行", False),
  34. ("DYCB", "德阳银行", False), ("DYCCB", "东营银行", False), ("DZBANK", "德州银行", False), ("EGBANK", "恒丰银行", False),
  35. ("NBYZ", "鄞州银行", False), ("NCB", "江西银行", False), ("NHB", "南海农村商业银行", False), ("NJCB", "南京银行", False),
  36. ("QLBANK", "齐鲁银行", False), ("RCB", "农村信用合作社", False), ("RZB", "日照银行", False), ("SCB", "渣打银行", False),
  37. ("BOCY", "朝阳银行", False), ("BOD", "东莞银行", False), ("BODD", "丹东银行", False), ("BOHAIB", "渤海银行", False),
  38. ("ESUN", "玉山银行", False), ("FBBHK", "富邦银行", "FBB"), ("FBHK", "富邦银行", "FBB"), ("FDB", "富滇银行", False),
  39. ("BOYK", "营口银行", False), ("BOZK", "周口银行", False), ("BQD", "青岛银行", False), ("BSB", "包商银行", False),
  40. ("JZCB", "湖北银行(荆州)", "HBC"), ("JZCBANK", "焦作商业银行", False), ("JZSBANK", "湖北银行(荆州商业)", "HBC"),
  41. ("SCBBANK", "商丘商业银行", False), ("SCBHK", "渣打银行(香港)", "SCB"), ("SCCB", "中原银行(三门峡)", "ZYBANK"),
  42. ("WHBHK", "华侨永亨银行(香港)", "WHB"), ("WHCCB", "威海商业银行", False), ("WHRCB", "武汉农村商业银行", False),
  43. ("YCCB", "宜昌商业银行", False), ("YDRCB", "尧都农村商业银行", "RCB"), ("YDRCBCC", "尧都农村商业银行", "RCB"),
  44. ("NMGNXS", "内蒙古农村信用社", "RCB"), ("NXBANK", "宁夏银行", False), ("NXRCU", "黄河农村商业银行", False),
  45. ("BZMD", "中原银行(驻马店)", "ZYBANK"), ("CATB", "国泰世华银行", False), ("CBKF", "开封市商业银行", False),
  46. ("HANABANK", "韩亚银行(中国)", False), ("HBC", "湖北银行", False), ("HBHSBANK", "湖北银行(黄石)", "HBC"),
  47. ("HBRCU", "河北农村信用社", "RCB"), ("HCCB", "呼和浩特市商业银行", "H3CB"), ("HDBANK", "邯郸银行", False),
  48. ("ZJKCCB", "张家口商业银行", False), ("ZJNX", "浙江农村信用社", False), ("ZJTLCB", "浙江泰隆银行", False),
  49. ("SCRCU", "四川农村信用社", False), ("SDB", "深圳发展银行", False), ("SDEB", "顺德农村商业银行", "SDRCB"),
  50. ("SDEBS", "顺德信用社", "RCB"), ("SDRCB", "顺德农村商业银行", False), ("SDRCU", "山东农村信用社", False),
  51. ("YNRCC", "云南农村信用社", False), ("YQCCB", "阳泉市商业银行", False), ("YXCCB", "玉溪商业银行", False),
  52. ("ZRCBANK", "张家港农村商业银行", False), ("ZSB", "江苏银行", "JSBANK"), ("ZYCBANK", "贵州银行", False),
  53. ("MASTER", "万事达信用卡", False), ("MTBANK", "浙江民泰商业银行", False), ("NBBANK", "宁波银行", False),
  54. ("SHBANK", "上海银行", "BOSC"), ("SHCBHK", "上海商业银行", False), ("SHRCB", "上海农村商业银行", False),
  55. ("JNBANK", "济宁银行", False), ("JNCCB", "齐鲁银行", "QLBANK"), ("JRCB", "江苏江阴农村商业银行", False),
  56. ("XCYH", "中原银行(许昌)", "ZYBANK"), ("XLBANK", "中山小榄村镇银行", False), ("XTB", "邢台银行", False),
  57. ("SXRCCU", "陕西农村信用社", False), ("SXRCU", "山西农村信用社", "RCB"), ("SZSBK", "石嘴山银行", False),
  58. ("JXBANK", "嘉兴银行", False), ("JXRCU", "江西农村信用社", "RCB"), ("JZBANK", "山西银行(晋中)", False),
  59. ("ZZBANK", "郑州银行", False), ("myjCASH", "美宜佳", False), ("psbcCASH", "中国邮政储蓄银行", "PSBC"),
  60. ("PSBC", "中国邮政储蓄银行", False), ("PZHCCB", "攀枝花商业银行", False), ("QDCCB", "青岛银行", "BQD"),
  61. ("CZBANK", "浙商银行", False), ("CZCB", "浙江稠州商业银行", False), ("CZCCB", "长治市商业银行", False),
  62. ("GDRCC", "广东农村信用社", False), ("GLBANK", "桂林银行", False), ("GRCB", "广州农村商业银行", False),
  63. ("TCRCB", "太仓农村商业银行", False), ("TRCB", "天津农村商业银行", False), ("TZCB", "台州银行", False),
  64. ("ABC", "中国农业银行", False), ("ABCSH", "中国农业银行(上海)", "ABC"), ("AEON", "AEON信用卡", False),
  65. ("URMQCCB", "乌鲁木齐商业银行", False), ("VISA", "VISA信用卡", False), ("WHB", "华侨永亨银行", False),
  66. ("ZBCB", "齐商银行", False), ("ZCKCCB", "张家口商业银行", "ZJKCCB"), ("ZGCCB", "自贡商业银行", False),
  67. ("DRCBCL", "东莞农村商业银行", False), ("DSB", "大新银行", False), ("DSBHK", "大新银行(香港)", "DSB"),
  68. ("KELBANK", "库尔勒商业银行", False), ("KLB", "昆仑银行", False), ("KSRB", "昆山农村商业银行", False),
  69. ("WJRCB", "吴江农村商业银行", False), ("WLB", "永隆银行", "CMB"), ("WLBHK", "永隆银行(香港)", "CMB"),
  70. ("HNRCU", "河南农村信用社", False), ("HRXJB", "华融湘江银行", False), ("HSBANK", "徽商银行", False),
  71. ("GSRCU", "甘肃农村信用社", False), ("GXRCU", "广西农村信用社", "RCB"), ("GYCB", "贵阳银行", False),
  72. ("CITIHK", "中信银行(国际)", "CITIC"), ("CMB", "招商银行", False), ("CMBC", "中国民生银行", False),
  73. ("NYCB", "南阳村镇银行", False), ("ORBANK", "鄂尔多斯银行", False), ("PINGAN", "平安银行", False),
  74. ("BOCM", "中国交通银行", False), ("BOCMA", "中国银行(澳门)", "BOC"), ("BOCSH", "中国银行", "BOC"),
  75. ("CRCBANK", "重庆农村商业银行", False), ("CSCB", "长沙银行", False), ("CSRCB", "常熟银行", False),
  76. ("COMM", "交通银行", False), ("COMMHK", "交通银行(香港)", "COMM"), ("CQBANK", "重庆银行", False),
  77. ("JJBANK", "九江银行", False), ("JLBANK", "吉林银行", False), ("JLRCU", "吉林农村信用社", False),
  78. ("CZRCB", "江南农村商业银行", False), ("DAQINGB", "龙江银行", False), ("DBS", "星展银行", False),
  79. ("BJRCB", "北京农村商业银行", False), ("BOC", "中国银行", False), ("BOCCCL", "中国银行", "BOC"),
  80. ("SRBANK", "上饶银行", False), ("SRCB", "深圳农村商业银行", False), ("SXCB", "绍兴银行", False),
  81. ("WRCB", "无锡农村商业银行", False), ("WZCB", "温州银行", False), ("XABANK", "西安银行", False),
  82. ("XXBANK", "新乡银行", False), ("XYBANK", "信阳银行", False), ("YBCCB", "宜宾商业银行", False),
  83. ("BOCD", "承德银行", False), ("BOCHK", "中国银行(香港)", "BOC"), ("BOCI", "中银信用卡", "BOC"),
  84. ("BANKWF", "潍坊银行", False), ("BEA", "东亚银行", False), ("BEAHK", "东亚银行(香港)", "BEA"),
  85. ("BOHN", "海南省农村信用社", False), ("BOJZ", "锦州银行", False), ("BOP", "平顶山银行", False),
  86. ("HZCCB", "湖州银行", False), ("ICBC", "中国工商银行", False), ("ICBCHK", "工银亚洲", "ICBC"),
  87. ("JSB", "晋商银行", False), ("JSBANK", "江苏银行", False), ("JSRCU", "江苏农村信用社", False),
  88. ("GZB", "赣州银行", False), ("GZRCU", "贵州农村信用社", "RCB"), ("H3CB", "内蒙古银行", False),
  89. ("ARCU", "安徽省农村信用社", False), ("ASCB", "鞍山银行", False), ("AYCB", "安阳银行", False),
  90. ("CHBHK", "创兴银行(香港)", "CHB"), ("CIB", "兴业银行", False), ("CITIC", "中信银行", False),
  91. ("HKB", "汉口银行", False), ("HKBEA", "东亚银行", "BEA"), ("HNRCC", "湖南农村信用社", False),
  92. ("DBSCN", "星展银行", "DBS"), ("DLB", "大连银行", False), ("DQCCB", "大庆市商业银行", False),
  93. ("FIRB", "第一银行", False), ("FJHXBC", "福建海峡银行", False), ("FSCB", "抚顺银行", False),
  94. ("BGB", "广西北部湾银行", False), ("BHB", "河北银行", False), ("BJBANK", "北京银行", False),
  95. ("TACCB", "泰安商业银行", False), ("TAIS", "台新银行", False), ("TCCB", "天津银行", False),
  96. ("LANGFB", "廊坊银行", False), ("LSBANK", "莱商银行", False), ("LSBC", "临商银行", False),
  97. ("rccCASH", "农村信用合作社", "RCB")
  98. ]
  99. def get_icon():
  100. errors = []
  101. root = "https://apimg.alipay.com/combo.png?d=cashier"
  102. path = "icons"
  103. for name in types:
  104. resp = request("GET", f"{root}&t={name}")
  105. if resp.status_code == 200:
  106. fp = open(f"{path}/{name}.png", "wb")
  107. fp.write(resp.content)
  108. fp.close()
  109. print(f"SUCCESS: {name}")
  110. else:
  111. print(f"ERROR ==> {name}")
  112. errors.append(name)
  113. sleep(1)
  114. if errors:
  115. print(errors)
  116. else:
  117. print("All Succeed.")
  118. def get_bank_type(number: "str" = "6222621234512345123") -> "str":
  119. """
  120. test number: 6222621234512345123, type: COMM
  121. url: https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardBinCheck=true&cardNo={number}
  122. img: https://apimg.alipay.com/combo.png?d=cashier&t={type}
  123. # 需要headers中有支付宝登录的session-id
  124. name: https://zht.alipay.com/asset/public/agreementBank.json?cardNo={number}
  125. """
  126. url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json" \
  127. f"?_input_charset=utf-8&cardBinCheck=true&cardNo={number}"
  128. resp = request("GET", url)
  129. if resp.status_code == 200:
  130. data = resp.json()
  131. if data["stat"] == "ok":
  132. return data["bank"]
  133. return ""
  134. def is_full():
  135. with open("../utils/bank-info_short-detail.json", "r", encoding="utf-8") as fp:
  136. data = json.load(fp)
  137. fp.close()
  138. for k, v in data.items():
  139. if not os.path.exists(f"../static/bank/{v['icon']}.png"):
  140. print(k)
  141. def bridge():
  142. dd = {}
  143. bank_tuple.sort(key=lambda x: x[0])
  144. for item in bank_tuple:
  145. dd[item[0]] = {
  146. "name": item[1],
  147. "icon": item[2] if item[2] else item[0],
  148. "short": item[0]
  149. }
  150. with open("bank-info_short-detail.json", "w", encoding="utf-8") as fp:
  151. json.dump(dd, fp, ensure_ascii=False, indent=2)
  152. fp.close()
  153. if __name__ == "__main__":
  154. is_full()