HelperService.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. <?php
  2. namespace app\common\service;
  3. use think\Cache;
  4. use think\Request;
  5. class HelperService
  6. {
  7. public static $_startExecTime = 0.0000;
  8. public static $_serviceParams = [];
  9. public static $_sysParams = [];
  10. public static $_httpErr = '';//httpPost错误信息
  11. public static $_httpStatus = null;//httpPost返回的状态码
  12. public static $_httpReturn = null;//httpPost返回值
  13. /*
  14. * 返回参数,并且书写日志
  15. */
  16. public static function returnParam($data){
  17. self::addLog($data);
  18. return json_encode($data,JSON_UNESCAPED_UNICODE);
  19. }
  20. /**
  21. * 生成唯一编号
  22. * @return string
  23. */
  24. public static function createOrderNum(){
  25. $key = (microtime(true)*10000).rand(10,99);
  26. return $key;
  27. }
  28. //获取头部是http还是https
  29. public static function getHttpHeader() {
  30. if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
  31. return "https://";
  32. } elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
  33. return "https://";
  34. } elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
  35. return "https://";
  36. }
  37. return "http://";
  38. }
  39. /**
  40. * 下划线转成驼峰
  41. * @param array $arr
  42. * @param bool $ucFirst
  43. * @return array|bool
  44. */
  45. public static function convertUnderline($list) {
  46. if(empty($list)){
  47. return [];
  48. }
  49. $newList = [];
  50. foreach ($list as $arr){
  51. $newArr = [];
  52. foreach($arr as $key=>$value){
  53. $key = preg_replace_callback('/([-_]+([a-z]{1}))/i',function($matches){
  54. return strtoupper($matches[2]);
  55. },$key);
  56. $newArr[$key] = $value;
  57. }
  58. $newList[] = $newArr;
  59. }
  60. return $newList;
  61. }
  62. /*
  63. * 返回参数,并且书写日志
  64. */
  65. public static function addLog($data,$url="",$projectCode=""){
  66. $params = ['sysParam'=>self::$_sysParams,'serviceParams'=>self::$_serviceParams];
  67. $request = Request::instance();
  68. $params['_client_ip_'] = $request->ip(0,true);
  69. $log_data['request_param'] = json_encode($params);
  70. $httpFix = self::getHttpHeader();
  71. $log_data['request_url'] = empty($url)?$httpFix.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']:$url;
  72. $log_data['return_param'] = json_encode($data);
  73. $log_data['add_time'] = time();
  74. $log_data['exec_time'] = microtime(true)-self::$_startExecTime;
  75. self::pushRedis($log_data,$data,$params,$projectCode);
  76. }
  77. public static function pushRedis($log_data,$data,$params,$projectCode=''){
  78. try {
  79. $data = [
  80. "companyCode" => "CHENSEN",
  81. "projectCode" => $projectCode?$projectCode:"CSAPI",
  82. "requestParam" => $params,
  83. "requestTime" => microtime(true),
  84. "requestUrl" => $log_data['request_url'],
  85. "responseTime" => $log_data['exec_time'],
  86. "returnCode" => isset($data['code']) ? $data['code'] : "无",
  87. "returnData" => $data,
  88. "returnMsg" => isset($data['msg']) ? $data['msg'] : "无",
  89. ];
  90. $redis = new \Redis();
  91. $redis->connect('47.97.187.118', 6379,2);
  92. $redis->auth('gudong-hz');
  93. $redis->rpush('request_list', json_encode($data));
  94. }catch (\Exception $ex){
  95. return true;
  96. }
  97. }
  98. /**
  99. * 返回json并且记录日志
  100. * @param $data
  101. */
  102. public static function returnJson($data){
  103. die(HelperService::returnParam($data));
  104. }
  105. public static function object2Arr($data){
  106. return json_decode(json_encode($data),true);
  107. }
  108. /**
  109. * http post请求方法
  110. * @param string $orginUrl 请求的url
  111. * @param string $param 请求参数
  112. * @param boolean $is_ssl 是否是https的请求
  113. * @param array $header 请求头部信息
  114. * @return boolean
  115. */
  116. public static function httpPost($orginUrl, $param='',$is_ssl=false,$header=[]) {
  117. $url = str_replace(' ', '', $orginUrl);
  118. $ch = curl_init();
  119. curl_setopt($ch, CURLOPT_URL, $url);
  120. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  121. curl_setopt($ch, CURLOPT_TIMEOUT, 60);
  122. curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
  123. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  124. curl_setopt($ch, CURLOPT_HEADER, 0);
  125. if($is_ssl){
  126. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  127. }
  128. //基础请求头部
  129. $baseRequestHeader = [
  130. 'Content-Type: application/json; charset=utf-8',
  131. //'Content-Length:' . strlen($param)
  132. ];
  133. $requestHeader = array_merge($baseRequestHeader,$header);
  134. curl_setopt($ch, CURLOPT_HTTPHEADER,$requestHeader);
  135. $tmpInfo = curl_exec($ch);
  136. self::$_httpReturn = $tmpInfo;
  137. self::$_httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  138. if (curl_errno($ch)) {
  139. self::$_httpErr = "url:$url--Errno:".curl_error($ch);
  140. echo self::$_httpErr;
  141. return false;
  142. }
  143. curl_close($ch);
  144. return $tmpInfo;
  145. }
  146. /**
  147. * POST请求
  148. * @param $url
  149. * @param $param
  150. * @return boolean|mixed
  151. */
  152. public static function doPost($url, $param, $method = "POST")
  153. {
  154. if (empty($url) or empty($param)) {
  155. throw new InvalidArgumentException('Params is not of the expected type');
  156. }
  157. if (!empty($param) and is_array($param)) {
  158. $param = urldecode(json_encode($param));
  159. } else {
  160. $param = strval($param);
  161. }
  162. $ch = curl_init();
  163. curl_setopt($ch, CURLOPT_URL, $url);
  164. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  165. curl_setopt($ch, CURLOPT_HEADER, false);
  166. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  167. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 不进行ssl 认证
  168. if (strcmp($method, "POST") == 0) { // POST 操作
  169. curl_setopt($ch, CURLOPT_POST, true);
  170. } else if (strcmp($method, "DELETE") == 0) { // DELETE操作
  171. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
  172. } else {
  173. throw new InvalidArgumentException('Please input correct http method, such as POST or DELETE');
  174. }
  175. curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
  176. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: Application/json'));
  177. $result = curl_exec($ch);
  178. $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  179. curl_close($ch);
  180. if (!empty($result) and $code == '200') {
  181. return $result;
  182. }
  183. return false;
  184. }
  185. public static function BankList($key){
  186. $data = [
  187. 'ICBC_DEBIT'=>'工商银行(借记卡)',
  188. 'ICBC_CREDIT'=>'工商银行(信用卡)',
  189. 'ABC_DEBIT'=>'农业银行(借记卡)',
  190. 'ABC_CREDIT'=>'农业银行(信用卡)',
  191. 'PSBC_DEBIT'=>'邮政储蓄银行(借记卡)',
  192. 'PSBC_CREDIT'=>'邮政储蓄银行(信用卡)',
  193. 'CCB_DEBIT'=>'建设银行(借记卡)',
  194. 'CCB_CREDIT'=>'建设银行(信用卡)',
  195. 'CMB_DEBIT'=>'招商银行(借记卡)',
  196. 'CMB_CREDIT'=>'招商银行(信用卡)',
  197. 'BOC_DEBIT'=>'中国银行(借记卡)',
  198. 'BOC_CREDIT'=>'中国银行(信用卡)',
  199. 'COMM_DEBIT'=>'交通银行(借记卡)',
  200. 'COMM_CREDIT'=>'交通银行(信用卡)',
  201. 'SPDB_DEBIT'=>'浦发银行(借记卡)',
  202. 'SPDB_CREDIT'=>'浦发银行(信用卡)',
  203. 'GDB_DEBIT'=>'广发银行(借记卡)',
  204. 'GDB_CREDIT'=>'广发银行(信用卡)',
  205. 'CMBC_DEBIT'=>'民生银行(借记卡)',
  206. 'CMBC_CREDIT'=>'民生银行(信用卡)',
  207. 'PAB_DEBIT'=>'平安银行(借记卡)',
  208. 'PAB_CREDIT'=>'平安银行(信用卡)',
  209. 'CEB_DEBIT'=>'光大银行(借记卡)',
  210. 'CEB_CREDIT'=>'光大银行(信用卡)',
  211. 'CIB_DEBIT'=>'兴业银行(借记卡)',
  212. 'CIB_CREDIT'=>'兴业银行(信用卡)',
  213. 'CITIC_DEBIT'=>'中信银行(借记卡)',
  214. 'CITIC_CREDIT'=>'中信银行(信用卡)',
  215. 'BOSH_DEBIT'=>'上海银行(借记卡)',
  216. 'BOSH_CREDIT'=>'上海银行(信用卡)',
  217. 'CRB_DEBIT'=>'华润银行(借记卡)',
  218. 'HZB_DEBIT'=>'杭州银行(借记卡)',
  219. 'HZB_CREDIT'=>'杭州银行(信用卡)',
  220. 'BSB_DEBIT'=>'包商银行(借记卡)',
  221. 'BSB_CREDIT'=>'包商银行(信用卡)',
  222. 'CQB_DEBIT'=>'重庆银行(借记卡)',
  223. 'SDEB_DEBIT'=>'顺德农商行(借记卡)',
  224. 'SZRCB_DEBIT'=>'深圳农商银行(借记卡)',
  225. 'SZRCB_CREDIT'=>'深圳农商银行(信用卡)',
  226. 'HRBB_DEBIT'=>'哈尔滨银行(借记卡)',
  227. 'BOCD_DEBIT'=>'成都银行(借记卡)',
  228. 'GDNYB_DEBIT'=>'南粤银行(借记卡)',
  229. 'GDNYB_CREDIT'=>'南粤银行(信用卡)',
  230. 'GZCB_DEBIT'=>'广州银行(借记卡)',
  231. 'GZCB_CREDIT'=>'广州银行(信用卡)',
  232. 'JSB_DEBIT'=>'江苏银行(借记卡)',
  233. 'JSB_CREDIT'=>'江苏银行(信用卡)',
  234. 'NBCB_DEBIT'=>'宁波银行(借记卡)',
  235. 'NBCB_CREDIT'=>'宁波银行(信用卡)',
  236. 'NJCB_DEBIT'=>'南京银行(借记卡)',
  237. 'QHNX_DEBIT'=>'青海农信(借记卡)',
  238. 'ORDOSB_CREDIT'=>'鄂尔多斯银行(信用卡)',
  239. 'ORDOSB_DEBIT'=>'鄂尔多斯银行(借记卡)',
  240. 'BJRCB_CREDIT'=>'北京农商(信用卡)',
  241. 'BHB_DEBIT'=>'河北银行(借记卡)',
  242. 'BGZB_DEBIT'=>'贵州银行(借记卡)',
  243. 'BEEB_DEBIT'=>'鄞州银行(借记卡)',
  244. 'PZHCCB_DEBIT'=>'攀枝花银行(借记卡)',
  245. 'QDCCB_CREDIT'=>'青岛银行(信用卡)',
  246. 'QDCCB_DEBIT'=>'青岛银行(借记卡)',
  247. 'SHINHAN_DEBIT'=>'新韩银行(借记卡)',
  248. 'QLB_DEBIT'=>'齐鲁银行(借记卡)',
  249. 'QSB_DEBIT'=>'齐商银行(借记卡)',
  250. 'ZZB_DEBIT'=>'郑州银行(借记卡)',
  251. 'CCAB_DEBIT'=>'长安银行(借记卡)',
  252. 'RZB_DEBIT'=>'日照银行(借记卡)',
  253. 'SCNX_DEBIT'=>'四川农信(借记卡)',
  254. 'BEEB_CREDIT'=>'鄞州银行(信用卡)',
  255. 'SDRCU_DEBIT'=>'山东农信(借记卡)',
  256. 'BCZ_DEBIT'=>'沧州银行(借记卡)',
  257. 'SJB_DEBIT'=>'盛京银行(借记卡)',
  258. 'LNNX_DEBIT'=>'辽宁农信(借记卡)',
  259. 'JUFENGB_DEBIT'=>'临朐聚丰村镇银行(借记卡)',
  260. 'ZZB_CREDIT'=>'郑州银行(信用卡)',
  261. 'JXNXB_DEBIT'=>'江西农信(借记卡)',
  262. 'JZB_DEBIT'=>'晋中银行(借记卡)',
  263. 'JZCB_CREDIT'=>'锦州银行(信用卡)',
  264. 'JZCB_DEBIT'=>'锦州银行(借记卡)',
  265. 'KLB_DEBIT'=>'昆仑银行(借记卡)',
  266. 'KRCB_DEBIT'=>'昆山农商(借记卡)',
  267. 'KUERLECB_DEBIT'=>'库尔勒市商业银行(借记卡)',
  268. 'LJB_DEBIT'=>'龙江银行(借记卡)',
  269. 'NYCCB_DEBIT'=>'南阳村镇银行(借记卡)',
  270. 'LSCCB_DEBIT'=>'乐山市商业银行(借记卡)',
  271. 'LUZB_DEBIT'=>'柳州银行(借记卡)',
  272. 'LWB_DEBIT'=>'莱商银行(借记卡)',
  273. 'LYYHB_DEBIT'=>'辽阳银行(借记卡)',
  274. 'LZB_DEBIT'=>'兰州银行(借记卡)',
  275. 'MINTAIB_CREDIT'=>'民泰银行(信用卡)',
  276. 'MINTAIB_DEBIT'=>'民泰银行(借记卡)',
  277. 'NCB_DEBIT'=>'宁波通商银行(借记卡)',
  278. 'NMGNX_DEBIT'=>'内蒙古农信(借记卡)',
  279. 'XAB_DEBIT'=>'西安银行(借记卡)',
  280. 'WFB_CREDIT'=>'潍坊银行(信用卡)',
  281. 'WFB_DEBIT'=>'潍坊银行(借记卡)',
  282. 'WHB_CREDIT'=>'威海商业银行(信用卡)',
  283. 'WHB_DEBIT'=>'威海市商业银行(借记卡)',
  284. 'WHRC_CREDIT'=>'武汉农商(信用卡)',
  285. 'WHRC_DEBIT'=>'武汉农商行(借记卡)',
  286. 'WJRCB_DEBIT'=>'吴江农商行(借记卡)',
  287. 'WLMQB_DEBIT'=>'乌鲁木齐银行(借记卡)',
  288. 'WRCB_DEBIT'=>'无锡农商(借记卡)',
  289. 'WZB_DEBIT'=>'温州银行(借记卡)',
  290. 'XAB_CREDIT'=>'西安银行(信用卡)',
  291. 'WEB_DEBIT'=>'微众银行(借记卡)',
  292. 'XIB_DEBIT'=>'厦门国际银行(借记卡)',
  293. 'XJRCCB_DEBIT'=>'新疆农信银行(借记卡)',
  294. 'XMCCB_DEBIT'=>'厦门银行(借记卡)',
  295. 'YNRCCB_DEBIT'=>'云南农信(借记卡)',
  296. 'YRRCB_CREDIT'=>'黄河农商银行(信用卡)',
  297. 'YRRCB_DEBIT'=>'黄河农商银行(借记卡)',
  298. 'YTB_DEBIT'=>'烟台银行(借记卡)',
  299. 'ZJB_DEBIT'=>'紫金农商银行(借记卡)',
  300. 'ZJLXRB_DEBIT'=>'兰溪越商银行(借记卡)',
  301. 'ZJRCUB_CREDIT'=>'浙江农信(信用卡)',
  302. 'AHRCUB_DEBIT'=>'安徽省农村信用社联合社(借记卡)',
  303. 'BCZ_CREDIT'=>'沧州银行(信用卡)',
  304. 'SRB_DEBIT'=>'上饶银行(借记卡)',
  305. 'ZYB_DEBIT'=>'中原银行(借记卡)',
  306. 'ZRCB_DEBIT'=>'张家港农商行(借记卡)',
  307. 'SRCB_CREDIT'=>'上海农商银行(信用卡)',
  308. 'SRCB_DEBIT'=>'上海农商银行(借记卡)',
  309. 'ZJTLCB_DEBIT'=>'浙江泰隆银行(借记卡)',
  310. 'SUZB_DEBIT'=>'苏州银行(借记卡)',
  311. 'SXNX_DEBIT'=>'山西农信(借记卡)',
  312. 'SXXH_DEBIT'=>'陕西信合(借记卡)',
  313. 'ZJRCUB_DEBIT'=>'浙江农信(借记卡)',
  314. 'AE_CREDIT'=>'AE(信用卡)',
  315. 'TACCB_CREDIT'=>'泰安银行(信用卡)',
  316. 'TACCB_DEBIT'=>'泰安银行(借记卡)',
  317. 'TCRCB_DEBIT'=>'太仓农商行(借记卡)',
  318. 'TJBHB_CREDIT'=>'天津滨海农商行(信用卡)',
  319. 'TJBHB_DEBIT'=>'天津滨海农商行(借记卡)',
  320. 'TJB_DEBIT'=>'天津银行(借记卡)',
  321. 'TRCB_DEBIT'=>'天津农商(借记卡)',
  322. 'TZB_DEBIT'=>'台州银行(借记卡)',
  323. 'URB_DEBIT'=>'联合村镇银行(借记卡)',
  324. 'DYB_CREDIT'=>'东营银行(信用卡)',
  325. 'CSRCB_DEBIT'=>'常熟农商银行(借记卡)',
  326. 'CZB_CREDIT'=>'浙商银行(信用卡)',
  327. 'CZB_DEBIT'=>'浙商银行(借记卡)',
  328. 'CZCB_CREDIT'=>'稠州银行(信用卡)',
  329. 'CZCB_DEBIT'=>'稠州银行(借记卡)',
  330. 'DANDONGB_CREDIT'=>'丹东银行(信用卡)',
  331. 'DANDONGB_DEBIT'=>'丹东银行(借记卡)',
  332. 'DLB_CREDIT'=>'大连银行(信用卡)',
  333. 'DLB_DEBIT'=>'大连银行(借记卡)',
  334. 'DRCB_CREDIT'=>'东莞农商银行(信用卡)',
  335. 'DRCB_DEBIT'=>'东莞农商银行(借记卡)',
  336. 'CSRCB_CREDIT'=>'常熟农商银行(信用卡)',
  337. 'DYB_DEBIT'=>'东营银行(借记卡)',
  338. 'DYCCB_DEBIT'=>'德阳银行(借记卡)',
  339. 'FBB_DEBIT'=>'富邦华一银行(借记卡)',
  340. 'FDB_DEBIT'=>'富滇银行(借记卡)',
  341. 'FJHXB_CREDIT'=>'福建海峡银行(信用卡)',
  342. 'FJHXB_DEBIT'=>'福建海峡银行(借记卡)',
  343. 'FJNX_DEBIT'=>'福建农信银行(借记卡)',
  344. 'FUXINB_DEBIT'=>'阜新银行(借记卡)',
  345. 'BOCDB_DEBIT'=>'承德银行(借记卡)',
  346. 'JSNX_DEBIT'=>'江苏农商行(借记卡)',
  347. 'BOLFB_DEBIT'=>'廊坊银行(借记卡)',
  348. 'CCAB_CREDIT'=>'长安银行(信用卡)',
  349. 'CBHB_DEBIT'=>'渤海银行(借记卡)',
  350. 'CDRCB_DEBIT'=>'成都农商银行(借记卡)',
  351. 'BYK_DEBIT'=>'营口银行(借记卡)',
  352. 'BOZ_DEBIT'=>'张家口市商业银行(借记卡)',
  353. 'CFT'=>'零钱',
  354. 'BOTSB_DEBIT'=>'唐山银行(借记卡)',
  355. 'BOSZS_DEBIT'=>'石嘴山银行(借记卡)',
  356. 'BOSXB_DEBIT'=>'绍兴银行(借记卡)',
  357. 'BONX_DEBIT'=>'宁夏银行(借记卡)',
  358. 'BONX_CREDIT'=>'宁夏银行(信用卡)',
  359. 'GDHX_DEBIT'=>'广东华兴银行(借记卡)',
  360. 'BOLB_DEBIT'=>'洛阳银行(借记卡)',
  361. 'BOJX_DEBIT'=>'嘉兴银行(借记卡)',
  362. 'BOIMCB_DEBIT'=>'内蒙古银行(借记卡)',
  363. 'BOHN_DEBIT'=>'海南银行(借记卡)',
  364. 'BOD_DEBIT'=>'东莞银行(借记卡)',
  365. 'CQRCB_CREDIT'=>'重庆农商银行(信用卡)',
  366. 'CQRCB_DEBIT'=>'重庆农商银行(借记卡)',
  367. 'CQTGB_DEBIT'=>'重庆三峡银行(借记卡)',
  368. 'BOD_CREDIT'=>'东莞银行(信用卡)',
  369. 'CSCB_DEBIT'=>'长沙银行(借记卡)',
  370. 'BOB_CREDIT'=>'北京银行(信用卡)',
  371. 'GDRCU_DEBIT'=>'广东农信银行(借记卡)',
  372. 'BOB_DEBIT'=>'北京银行(借记卡)',
  373. 'HRXJB_DEBIT'=>'华融湘江银行(借记卡)',
  374. 'HSBC_DEBIT'=>'恒生银行(借记卡)',
  375. 'HSB_CREDIT'=>'徽商银行(信用卡)',
  376. 'HSB_DEBIT'=>'徽商银行(借记卡)',
  377. 'HUNNX_DEBIT'=>'湖南农信(借记卡)',
  378. 'HUSRB_DEBIT'=>'湖商村镇银行(借记卡)',
  379. 'HXB_CREDIT'=>'华夏银行(信用卡)',
  380. 'HXB_DEBIT'=>'华夏银行(借记卡)',
  381. 'HNNX_DEBIT'=>'河南农信(借记卡)',
  382. 'BNC_DEBIT'=>'江西银行(借记卡)',
  383. 'BNC_CREDIT'=>'江西银行(信用卡)',
  384. 'BJRCB_DEBIT'=>'北京农商行(借记卡)',
  385. 'JCB_DEBIT'=>'晋城银行(借记卡)',
  386. 'JJCCB_DEBIT'=>'九江银行(借记卡)',
  387. 'JLB_DEBIT'=>'吉林银行(借记卡)',
  388. 'JLNX_DEBIT'=>'吉林农信(借记卡)',
  389. 'JNRCB_DEBIT'=>'江南农商(借记卡)',
  390. 'JRCB_DEBIT'=>'江阴农商行(借记卡)',
  391. 'JSHB_DEBIT'=>'晋商银行(借记卡)',
  392. 'HAINNX_DEBIT'=>'海南农信(借记卡)',
  393. 'GLB_DEBIT'=>'桂林银行(借记卡)',
  394. 'GRCB_CREDIT'=>'广州农商银行(信用卡)',
  395. 'GRCB_DEBIT'=>'广州农商银行(借记卡)',
  396. 'GSB_DEBIT'=>'甘肃银行(借记卡)',
  397. 'GSNX_DEBIT'=>'甘肃农信(借记卡)',
  398. 'GXNX_DEBIT'=>'广西农信(借记卡)',
  399. 'GYCB_CREDIT'=>'贵阳银行(信用卡)',
  400. 'GYCB_DEBIT'=>'贵阳银行(借记卡)',
  401. 'GZNX_DEBIT'=>'贵州农信(借记卡)',
  402. 'HAINNX_CREDIT'=>'海南农信(信用卡)',
  403. 'HKB_DEBIT'=>'汉口银行(借记卡)',
  404. 'HANAB_DEBIT'=>'韩亚银行(借记卡)',
  405. 'HBCB_CREDIT'=>'湖北银行(信用卡)',
  406. 'HBCB_DEBIT'=>'湖北银行(借记卡)',
  407. 'HBNX_CREDIT'=>'湖北农信(信用卡)',
  408. 'HBNX_DEBIT'=>'湖北农信(借记卡)',
  409. 'HDCB_DEBIT'=>'邯郸银行(借记卡)',
  410. 'HEBNX_DEBIT'=>'河北农信(借记卡)',
  411. 'HFB_DEBIT'=>'恒丰银行(借记卡)',
  412. 'HKBEA_DEBIT'=>'东亚银行(借记卡)',
  413. 'JCB_CREDIT'=>'JCB(信用卡)',
  414. 'MASTERCARD_CREDIT'=>'MASTERCARD(信用卡)',
  415. 'VISA_CREDIT'=>'VISA(信用卡)',
  416. 'LQT'=>'零钱通'
  417. ];
  418. return isset($data[$key])?$data[$key]:'未知';
  419. }
  420. /**
  421. * 下载文件
  422. * @param type $fileName
  423. */
  424. public static function downloadFile($fileName){
  425. $mime = 'application/force-download';
  426. header('Pragma: public'); // required
  427. header('Expires: 0'); // no cache
  428. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  429. header('Cache-Control: private',false);
  430. header('Content-Type: '.$mime);
  431. header('Content-Disposition: attachment; filename="'.basename($fileName).'"');
  432. header('Content-Transfer-Encoding: binary');
  433. header('Connection: close');
  434. readfile($fileName); // push it out
  435. exit();
  436. }
  437. /**
  438. * file_get_contens
  439. */
  440. public static function curlGet($url, $gzip=false){
  441. $curl = curl_init($url);
  442. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  443. curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
  444. if($gzip){
  445. curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 关键在这里
  446. }
  447. $content = curl_exec($curl);
  448. curl_close($curl);
  449. return $content;
  450. }
  451. }