<?php
/**
* 银行基础信息
* 实现: 调用支付宝接口进行银行卡信息校验
* User: 乐杨俊
* Date: 2018/8/6
* Time: 下午5:26
*/
namespace leyangjun\Lib;
class BankAccountValidation
{
private static $card_type = array(
'CC' => '信用卡',
'DC' => '储蓄卡',
);
private static $bank_info = array(
// 热门银行
"ICBC" => "中国工商银行",
"ABC" => "中国农业银行",
"CCB" => "中国建设银行",
"PSBC" => "中国邮政储蓄银行",
"CMB" => "招商银行",
"BOC" => "中国银行",
"COMM" => "交通银行",
"SPDB" => "上海浦东发展银行",
"GDB" => "广东发展银行",
"CMBC" => "中国民生银行",
"SPABANK" => "平安银行",
"CEB" => "中国光大银行",
"CIB" => "兴业银行",
"CITIC" => "中信银行",
// 其他
"SRCB" => "深圳农村商业银行",
"BGB" => "广西北部湾银行",
"SHRCB" => "上海农村商业银行",
"BJBANK" => "北京银行",
"WHCCB" => "威海市商业银行",
"BOZK" => "周口银行",
"KORLABANK" => "库尔勒市商业银行",
"SDEB" => "顺德农商银行",
"HURCB" => "湖北省农村信用社",
"WRCB" => "无锡农村商业银行",
"BOCY" => "朝阳银行",
"CZBANK" => "浙商银行",
"HDBANK" => "邯郸银行",
"BOD" => "东莞银行",
"ZYCBANK" => "遵义市商业银行",
"SXCB" => "绍兴银行",
"GZRCU" => "贵州省农村信用社",
"ZJKCCB" => "张家口市商业银行",
"BOJZ" => "锦州银行",
"BOP" => "平顶山银行",
"HKB" => "汉口银行",
"NXRCU" => "宁夏黄河农村商业银行",
"NYBANK" => "广东南粤银行",
"GRCB" => "广州农商银行",
"BOSZ" => "苏州银行",
"HZCB" => "杭州银行",
"HSBK" => "衡水银行",
"HBC" => "湖北银行",
"JXBANK" => "嘉兴银行",
"HRXJB" => "华融湘江银行",
"BODD" => "丹东银行",
"AYCB" => "安阳银行",
"EGBANK" => "恒丰银行",
"CDB" => "国家开发银行",
"TCRCB" => "江苏太仓农村商业银行",
"NJCB" => "南京银行",
"ZZBANK" => "郑州银行",
"DYCB" => "德阳商业银行",
"YBCCB" => "宜宾市商业银行",
"SCRCU" => "四川省农村信用",
"KLB" => "昆仑银行",
"LSBANK" => "莱商银行",
"YDRCB" => "尧都农商行",
"CCQTGB" => "重庆三峡银行",
"FDB" => "富滇银行",
"JSRCU" => "江苏省农村信用联合社",
"JNBANK" => "济宁银行",
"JINCHB" => "晋城银行JCBANK",
"FXCB" => "阜新银行",
"WHRCB" => "武汉农村商业银行",
"HBYCBANK" => "湖北银行宜昌分行",
"TZCB" => "台州银行",
"TACCB" => "泰安市商业银行",
"XCYH" => "许昌银行",
"NXBANK" => "宁夏银行",
"HSBANK" => "徽商银行",
"JJBANK" => "九江银行",
"NHQS" => "农信银清算中心",
"MTBANK" => "浙江民泰商业银行",
"LANGFB" => "廊坊银行",
"ASCB" => "鞍山银行",
"KSRB" => "昆山农村商业银行",
"YXCCB" => "玉溪市商业银行",
"DLB" => "大连银行",
"DRCBCL" => "东莞农村商业银行",
"GCB" => "广州银行",
"NBBANK" => "宁波银行",
"BOYK" => "营口银行",
"SXRCCU" => "陕西信合",
"GLBANK" => "桂林银行",
"BOQH" => "青海银行",
"CDRCB" => "成都农商银行",
"QDCCB" => "青岛银行",
"HKBEA" => "东亚银行",
"HBHSBANK" => "湖北银行黄石分行",
"WZCB" => "温州银行",
"TRCB" => "天津农商银行",
"QLBANK" => "齐鲁银行",
"GDRCC" => "广东省农村信用社联合社",
"ZJTLCB" => "浙江泰隆商业银行",
"GZB" => "赣州银行",
"GYCB" => "贵阳市商业银行",
"CQBANK" => "重庆银行",
"DAQINGB" => "龙江银行",
"CGNB" => "南充市商业银行",
"SCCB" => "三门峡银行",
"CSRCB" => "常熟农村商业银行",
"SHBANK" => "上海银行",
"JLBANK" => "吉林银行",
"CZRCB" => "常州农村信用联社",
"BANKWF" => "潍坊银行",
"ZRCBANK" => "张家港农村商业银行",
"FJHXBC" => "福建海峡银行",
"FJNX" => "福建省农村信用社联合社",
"ZJNX" => "浙江省农村信用社联合社",
"LZYH" => "兰州银行",
"JSB" => "晋商银行",
"BOHAIB" => "渤海银行",
"CZCB" => "浙江稠州商业银行",
"YQCCB" => "阳泉银行",
"SJBANK" => "盛京银行",
"XABANK" => "西安银行",
"BSB" => "包商银行",
"JSBANK" => "江苏银行",
"FSCB" => "抚顺银行",
"HNRCU" => "河南省农村信用",
"XTB" => "邢台银行",
"HXBANK" => "华夏银行",
"HNRCC" => "湖南省农村信用社",
"DYCCB" => "东营市商业银行",
"ORBANK" => "鄂尔多斯银行",
"BJRCB" => "北京农村商业银行",
"XYBANK" => "信阳银行",
"ZGCCB" => "自贡市商业银行",
"CDCB" => "成都银行",
"HANABANK" => "韩亚银行",
"LYBANK" => "洛阳银行",
"ZBCB" => "齐商银行",
"CBKF" => "开封市商业银行",
"H3CB" => "内蒙古银行",
"CRCBANK" => "重庆农村商业银行",
"SZSBK" => "石嘴山银行",
"DZBANK" => "德州银行",
"SRBANK" => "上饶银行",
"LSCCB" => "乐山市商业银行",
"JXRCU" => "江西省农村信用",
"JZBANK" => "晋中市商业银行",
"HZCCB" => "湖州市商业银行",
"NHB" => "南海农村信用联社",
"XXBANK" => "新乡银行",
"JRCB" => "江苏江阴农村商业银行",
"YNRCC" => "云南省农村信用社",
"GXRCU" => "广西省农村信用",
"BZMD" => "驻马店银行",
"ARCU" => "安徽省农村信用社",
"GSRCU" => "甘肃省农村信用",
"LYCB" => "辽阳市商业银行",
"JLRCU" => "吉林农信",
"URMQCCB" => "乌鲁木齐市商业银行",
"XLBANK" => "中山小榄村镇银行",
"CSCB" => "长沙银行",
"JHBANK" => "金华银行",
"BHB" => "河北银行",
"NBYZ" => "鄞州银行",
"LSBC" => "临商银行",
"BOCD" => "承德银行",
"SDRCU" => "山东农信",
"NCB" => "南昌银行",
"TCCB" => "天津银行",
"WJRCB" => "吴江农商银行",
"CBBQS" => "城市商业银行资金清算中心",
"HBRCU" => "河北省农村信用社",
// 特写, 有个官方公会签约主播留的是『上虞农商银行』,支付宝接口返回的是 ZJNX
"ZJNX_SY" => "上虞农商银行",
);
/**
* @return array
*/
public static function getBankList()
{
return self::$bank_info;
}
/**
* @return array
*/
public static function getBankNameList()
{
return array_values(self::$bank_info);
}
/**
* @param $bank
* @return string
*/
public static function getBankImg($bank)
{
return "https://apimg.alipay.com/combo.png?d=cashier&t={$bank}";
}
/**
* 蚂蚁金服免费接口
* @param $card_num
* @return array
*/
public static function getBankInfo($card_num)
{
$result = Curl::get("https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo={$card_num}&cardBinCheck=true");
$result = json_decode($result, true);
if (empty($result) || !is_array($result)) {
return [];
}
$bank_info = array(
'validated' => $result['validated'], // 是否验证通过
'bank' => $result['bank'], // 银行代码
'bankName' => isset(self::$bank_info[$result['bank']]) ? self::$bank_info[$result['bank']] : '', // 银行名称
//'bankImg' => self::getBankImg($result['bank']), // 银行卡图标
'cardType' => $result['cardType'], // 银行卡类型, CC 信用卡, DC 储蓄卡
'cardTypeName' => self::$card_type[$result['cardType']],
);
return $bank_info;
}
/**
* @param $bank_code
* @return bool
*/
public function checkBankCode($bank_code)
{
return self::$bank_info[$bank_code] ? true : false;
}
}