from requests import request from time import sleep import json import os types = [ "ABC", "ABCSH", "AEON", "ARCU", "ASCB", "AYCB", "BANKWF", "BEA", "BEAHK", "BGB", "BHB", "BJBANK", "BJRCB", "BOC", "BOCCCL", "BOCD", "BOCHK", "BOCI", "BOCM", "BOCMA", "BOCSH", "BOCY", "BOD", "BODD", "BOHAIB", "BOHN", "BOJZ", "BOP", "BOQH", "BOSC", "BOSH", "BOSZ", "BOYK", "BOZK", "BQD", "BSB", "BZMD", "CATB", "CBKF", "CCB", "CCBEPAY", "CCQTGB", "CDCB", "CDRCB", "CEB", "CGNB", "CHB", "CHBHK", "CIB", "CITIC", "CITIHK", "CMB", "CMBC", "COMM", "COMMHK", "CQBANK", "CRCBANK", "CSCB", "CSRCB", "CZBANK", "CZCB", "CZCCB", "CZRCB", "DAQINGB", "DBS", "DBSCN", "DLB", "DQCCB", "DRCBCL", "DSB", "DSBHK", "DYCB", "DYCCB", "DZBANK", "EGBANK", "ESUN", "FBBHK", "FBHK", "FDB", "FIRB", "FJHXBC", "FSCB", "FUBB", "FXCB", "GCB", "GDB", "GDRCC", "GLBANK", "GRCB", "GSRCU", "GXRCU", "GYCB", "GZB", "GZRCU", "H3CB", "HANABANK", "HBC", "HBHSBANK", "HBRCU", "HCCB", "HDBANK", "HKB", "HKBEA", "HNRCC", "HNRCU", "HRXJB", "HSBANK", "HSBK", "HURCB", "HXBANK", "HZCB", "HZCCB", "ICBC", "ICBCHK", "ICBCMA", "JCB", "JHBANK", "JINCHB", "JJBANK", "JLBANK", "JLRCU", "JNBANK", "JNCCB", "JRCB", "JSB", "JSBANK", "JSRCU", "JXBANK", "JXRCU", "JZBANK", "JZCB", "JZCBANK", "JZSBANK", "KELBANK", "KLB", "KSRB", "LANGFB", "LSBANK", "LSBC", "LSCCB", "LYCB", "LZCCB", "LZYH", "MASTER", "MTBANK", "NBBANK", "NBYZ", "NCB", "NHB", "NJCB", "NMGNXS", "NXBANK", "NXRCU", "NYCB", "ORBANK", "PINGAN", "PSBC", "PZHCCB", "QDCCB", "QLBANK", "RCB", "RZB", "SCB", "SCBBANK", "SCBHK", "SCCB", "SCRCU", "SDB", "SDEB", "SDEBS", "SDRCB", "SDRCU", "SHBANK", "SHCBHK", "SHRCB", "SINO", "SJBANK", "SPABANK", "SPDB", "SRBANK", "SRCB", "SXCB", "SXRCCU", "SXRCU", "SZSBK", "TACCB", "TAIS", "TCCB", "TCRCB", "TRCB", "TZCB", "URMQCCB", "VISA", "WHB", "WHBHK", "WHCCB", "WHRCB", "WJRCB", "WLB", "WLBHK", "WRCB", "WZCB", "XABANK", "XCYH", "XLBANK", "XTB", "XXBANK", "XYBANK", "YBCCB", "YCCB", "YDRCB", "YDRCBCC", "YNRCC", "YQCCB", "YXCCB", "ZBCB", "ZCKCCB", "ZGCCB", "ZJKCCB", "ZJNX", "ZJTLCB", "ZRCBANK", "ZSB", "ZYCBANK", "ZZBANK", "myjCASH", "psbcCASH", "rccCASH" ] bank_tuple = [ ("CCB", "中国建设银行", False), ("CCBEPAY", "中国建设银行", "CCB"), ("CCQTGB", "重庆三峡银行", False), ("CDCB", "成都银行", False), ("CDRCB", "成都农村商业银行", False), ("CEB", "中国光大银行", False), ("CGNB", "南充市商业银行", False), ("CHB", "创兴银行", False), ("HSBK", "衡水银行", False), ("HURCB", "湖北农村信用社", False), ("HXBANK", "华夏银行", False), ("HZCB", "杭州银行", False), ("SINO", "永丰银行", False), ("SJBANK", "盛京银行", False), ("SPABANK", "平安银行", "PINGAN"), ("SPDB", "浦发银行", False), ("ICBCMA", "工银澳门", "ICBC"), ("JCB", "国际信用卡", False), ("JHBANK", "金华银行", False), ("JINCHB", "晋城银行", False), ("FUBB", "台北富邦银行", "FBB"), ("FXCB", "阜新银行", False), ("GCB", "广州银行", False), ("GDB", "广发银行|CGB", False), ("LSCCB", "乐山商业银行", False), ("LYCB", "辽阳银行", False), ("LZCCB", "柳州银行", False), ("LZYH", "兰州银行", False), ("BOQH", "青海银行", False), ("BOSC", "上海银行", False), ("BOSH", "新韩银行(中国)", False), ("BOSZ", "苏州银行", False), ("DYCB", "德阳银行", False), ("DYCCB", "东营银行", False), ("DZBANK", "德州银行", False), ("EGBANK", "恒丰银行", False), ("NBYZ", "鄞州银行", False), ("NCB", "江西银行", False), ("NHB", "南海农村商业银行", False), ("NJCB", "南京银行", False), ("QLBANK", "齐鲁银行", False), ("RCB", "农村信用合作社", False), ("RZB", "日照银行", False), ("SCB", "渣打银行", False), ("BOCY", "朝阳银行", False), ("BOD", "东莞银行", False), ("BODD", "丹东银行", False), ("BOHAIB", "渤海银行", False), ("ESUN", "玉山银行", False), ("FBBHK", "富邦银行", "FBB"), ("FBHK", "富邦银行", "FBB"), ("FDB", "富滇银行", False), ("BOYK", "营口银行", False), ("BOZK", "周口银行", False), ("BQD", "青岛银行", False), ("BSB", "包商银行", False), ("JZCB", "湖北银行(荆州)", "HBC"), ("JZCBANK", "焦作商业银行", False), ("JZSBANK", "湖北银行(荆州商业)", "HBC"), ("SCBBANK", "商丘商业银行", False), ("SCBHK", "渣打银行(香港)", "SCB"), ("SCCB", "中原银行(三门峡)", "ZYBANK"), ("WHBHK", "华侨永亨银行(香港)", "WHB"), ("WHCCB", "威海商业银行", False), ("WHRCB", "武汉农村商业银行", False), ("YCCB", "宜昌商业银行", False), ("YDRCB", "尧都农村商业银行", "RCB"), ("YDRCBCC", "尧都农村商业银行", "RCB"), ("NMGNXS", "内蒙古农村信用社", "RCB"), ("NXBANK", "宁夏银行", False), ("NXRCU", "黄河农村商业银行", False), ("BZMD", "中原银行(驻马店)", "ZYBANK"), ("CATB", "国泰世华银行", False), ("CBKF", "开封市商业银行", False), ("HANABANK", "韩亚银行(中国)", False), ("HBC", "湖北银行", False), ("HBHSBANK", "湖北银行(黄石)", "HBC"), ("HBRCU", "河北农村信用社", "RCB"), ("HCCB", "呼和浩特市商业银行", "H3CB"), ("HDBANK", "邯郸银行", False), ("ZJKCCB", "张家口商业银行", False), ("ZJNX", "浙江农村信用社", False), ("ZJTLCB", "浙江泰隆银行", False), ("SCRCU", "四川农村信用社", False), ("SDB", "深圳发展银行", False), ("SDEB", "顺德农村商业银行", "SDRCB"), ("SDEBS", "顺德信用社", "RCB"), ("SDRCB", "顺德农村商业银行", False), ("SDRCU", "山东农村信用社", False), ("YNRCC", "云南农村信用社", False), ("YQCCB", "阳泉市商业银行", False), ("YXCCB", "玉溪商业银行", False), ("ZRCBANK", "张家港农村商业银行", False), ("ZSB", "江苏银行", "JSBANK"), ("ZYCBANK", "贵州银行", False), ("MASTER", "万事达信用卡", False), ("MTBANK", "浙江民泰商业银行", False), ("NBBANK", "宁波银行", False), ("SHBANK", "上海银行", "BOSC"), ("SHCBHK", "上海商业银行", False), ("SHRCB", "上海农村商业银行", False), ("JNBANK", "济宁银行", False), ("JNCCB", "齐鲁银行", "QLBANK"), ("JRCB", "江苏江阴农村商业银行", False), ("XCYH", "中原银行(许昌)", "ZYBANK"), ("XLBANK", "中山小榄村镇银行", False), ("XTB", "邢台银行", False), ("SXRCCU", "陕西农村信用社", False), ("SXRCU", "山西农村信用社", "RCB"), ("SZSBK", "石嘴山银行", False), ("JXBANK", "嘉兴银行", False), ("JXRCU", "江西农村信用社", "RCB"), ("JZBANK", "山西银行(晋中)", False), ("ZZBANK", "郑州银行", False), ("myjCASH", "美宜佳", False), ("psbcCASH", "中国邮政储蓄银行", "PSBC"), ("PSBC", "中国邮政储蓄银行", False), ("PZHCCB", "攀枝花商业银行", False), ("QDCCB", "青岛银行", "BQD"), ("CZBANK", "浙商银行", False), ("CZCB", "浙江稠州商业银行", False), ("CZCCB", "长治市商业银行", False), ("GDRCC", "广东农村信用社", False), ("GLBANK", "桂林银行", False), ("GRCB", "广州农村商业银行", False), ("TCRCB", "太仓农村商业银行", False), ("TRCB", "天津农村商业银行", False), ("TZCB", "台州银行", False), ("ABC", "中国农业银行", False), ("ABCSH", "中国农业银行(上海)", "ABC"), ("AEON", "AEON信用卡", False), ("URMQCCB", "乌鲁木齐商业银行", False), ("VISA", "VISA信用卡", False), ("WHB", "华侨永亨银行", False), ("ZBCB", "齐商银行", False), ("ZCKCCB", "张家口商业银行", "ZJKCCB"), ("ZGCCB", "自贡商业银行", False), ("DRCBCL", "东莞农村商业银行", False), ("DSB", "大新银行", False), ("DSBHK", "大新银行(香港)", "DSB"), ("KELBANK", "库尔勒商业银行", False), ("KLB", "昆仑银行", False), ("KSRB", "昆山农村商业银行", False), ("WJRCB", "吴江农村商业银行", False), ("WLB", "永隆银行", "CMB"), ("WLBHK", "永隆银行(香港)", "CMB"), ("HNRCU", "河南农村信用社", False), ("HRXJB", "华融湘江银行", False), ("HSBANK", "徽商银行", False), ("GSRCU", "甘肃农村信用社", False), ("GXRCU", "广西农村信用社", "RCB"), ("GYCB", "贵阳银行", False), ("CITIHK", "中信银行(国际)", "CITIC"), ("CMB", "招商银行", False), ("CMBC", "中国民生银行", False), ("NYCB", "南阳村镇银行", False), ("ORBANK", "鄂尔多斯银行", False), ("PINGAN", "平安银行", False), ("BOCM", "中国交通银行", False), ("BOCMA", "中国银行(澳门)", "BOC"), ("BOCSH", "中国银行", "BOC"), ("CRCBANK", "重庆农村商业银行", False), ("CSCB", "长沙银行", False), ("CSRCB", "常熟银行", False), ("COMM", "交通银行", False), ("COMMHK", "交通银行(香港)", "COMM"), ("CQBANK", "重庆银行", False), ("JJBANK", "九江银行", False), ("JLBANK", "吉林银行", False), ("JLRCU", "吉林农村信用社", False), ("CZRCB", "江南农村商业银行", False), ("DAQINGB", "龙江银行", False), ("DBS", "星展银行", False), ("BJRCB", "北京农村商业银行", False), ("BOC", "中国银行", False), ("BOCCCL", "中国银行", "BOC"), ("SRBANK", "上饶银行", False), ("SRCB", "深圳农村商业银行", False), ("SXCB", "绍兴银行", False), ("WRCB", "无锡农村商业银行", False), ("WZCB", "温州银行", False), ("XABANK", "西安银行", False), ("XXBANK", "新乡银行", False), ("XYBANK", "信阳银行", False), ("YBCCB", "宜宾商业银行", False), ("BOCD", "承德银行", False), ("BOCHK", "中国银行(香港)", "BOC"), ("BOCI", "中银信用卡", "BOC"), ("BANKWF", "潍坊银行", False), ("BEA", "东亚银行", False), ("BEAHK", "东亚银行(香港)", "BEA"), ("BOHN", "海南省农村信用社", False), ("BOJZ", "锦州银行", False), ("BOP", "平顶山银行", False), ("HZCCB", "湖州银行", False), ("ICBC", "中国工商银行", False), ("ICBCHK", "工银亚洲", "ICBC"), ("JSB", "晋商银行", False), ("JSBANK", "江苏银行", False), ("JSRCU", "江苏农村信用社", False), ("GZB", "赣州银行", False), ("GZRCU", "贵州农村信用社", "RCB"), ("H3CB", "内蒙古银行", False), ("ARCU", "安徽省农村信用社", False), ("ASCB", "鞍山银行", False), ("AYCB", "安阳银行", False), ("CHBHK", "创兴银行(香港)", "CHB"), ("CIB", "兴业银行", False), ("CITIC", "中信银行", False), ("HKB", "汉口银行", False), ("HKBEA", "东亚银行", "BEA"), ("HNRCC", "湖南农村信用社", False), ("DBSCN", "星展银行", "DBS"), ("DLB", "大连银行", False), ("DQCCB", "大庆市商业银行", False), ("FIRB", "第一银行", False), ("FJHXBC", "福建海峡银行", False), ("FSCB", "抚顺银行", False), ("BGB", "广西北部湾银行", False), ("BHB", "河北银行", False), ("BJBANK", "北京银行", False), ("TACCB", "泰安商业银行", False), ("TAIS", "台新银行", False), ("TCCB", "天津银行", False), ("LANGFB", "廊坊银行", False), ("LSBANK", "莱商银行", False), ("LSBC", "临商银行", False), ("rccCASH", "农村信用合作社", "RCB") ] def get_icon(): errors = [] root = "https://apimg.alipay.com/combo.png?d=cashier" path = "icons" for name in types: resp = request("GET", f"{root}&t={name}") if resp.status_code == 200: fp = open(f"{path}/{name}.png", "wb") fp.write(resp.content) fp.close() print(f"SUCCESS: {name}") else: print(f"ERROR ==> {name}") errors.append(name) sleep(1) if errors: print(errors) else: print("All Succeed.") def get_bank_type(number: "str" = "6222621234512345123") -> "str": """ test number: 6222621234512345123, type: COMM url: https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardBinCheck=true&cardNo={number} img: https://apimg.alipay.com/combo.png?d=cashier&t={type} # 需要headers中有支付宝登录的session-id name: https://zht.alipay.com/asset/public/agreementBank.json?cardNo={number} """ url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json" \ f"?_input_charset=utf-8&cardBinCheck=true&cardNo={number}" resp = request("GET", url) if resp.status_code == 200: data = resp.json() if data["stat"] == "ok": return data["bank"] return "" def is_full(): with open("../utils/bank-info_short-detail.json", "r", encoding="utf-8") as fp: data = json.load(fp) fp.close() for k, v in data.items(): if not os.path.exists(f"../static/bank/{v['icon']}.png"): print(k) def bridge(): dd = {} bank_tuple.sort(key=lambda x: x[0]) for item in bank_tuple: dd[item[0]] = { "name": item[1], "icon": item[2] if item[2] else item[0], "short": item[0] } with open("bank-info_short-detail.json", "w", encoding="utf-8") as fp: json.dump(dd, fp, ensure_ascii=False, indent=2) fp.close() if __name__ == "__main__": is_full()