02/09/2018                        Dũng Lý
danh-sach-ngan-hang-tai-viet-nam-3.png

Database danh sách ngân hàng tại Việt Nam – từ khóa tưởng chừng như sẽ nằm trong top 10, tìm cái là thấy. Ai ngờ đâu …

Danh sách ngân hàng tại Việt Nam
Tưởng search cái là ra liền chứ

Chả là hôm nay, leader giao cho mình 1 nhiệm vụ khá là chua : Lấy hết danh sách ngân hàng và các chi nhánh của nó ở các tỉnh.

Đăng nhập vào Vietcombank bằng Internet banking  thì thấy cũng đầy đủ danh sách đấy. Nhưng mà có tới khoảng 95 ngân hàng và 3073 chi nhánh thuộc các tỉnh thành

Tính ra mình sẽ phải select 4*95*n (n là số tỉnh thành có chi nhánh của 95 ngân hàng) lần và copy nội dung về.

Oh my chuối !!! Một người làm biếng như mình sao có thể làm việc này 1 cách thủ công được !!! Chẳng lẽ không còn cách nào khác? Mình sẽ bị liệt sau khi hoàn thành task này chăng? :((

Mò thử xem Vietcombank get cái danh sách của nó kiểu gì. Nice, thì ra dùng ajax request sau mỗi lần select. Trời cứu mình roài :))

Hướng dẫn lấy danh sách ngân hàng tại Việt Nam dạng json bằng jQuery từ Vietcombank

Tại mình chỉ có Internet banking của Vietcombank thôi

Nếu không có hứng thú đọc thì bạn có thể download ở dưới

Nếu thấy hay thì nhớ

 

  1. Bạn đăng nhập vào Internet banking của Vietcombank
  2. Nhấn F12 hoặc Chuột phải -> Inspect
  3. Chọn tab Console -> Copy đoạn code phía dưới và paste vào -> Enter và chờ kết quả (trong lúc chờ bạn có thể qua tab Networks để xem nó chạy ^^)
    var theData = [];
    var baseUrl = 'https://www.vietcombank.com.vn/IBanking2015/';
    var token = 'khongcantoken';
    var endUrl = '/ChuyenTien/TaiKhoan/';
    var niceUrl = baseUrl+token+endUrl;
    $.ajax({
        url: niceUrl+'DanhSachLoaiNganHang',
        type: 'GET',
        async: false,
        success: function(result) {
            theData = JSON.parse(result);
            for (var i = 0; i < theData.length; i++) {		
                var bankType = theData[i]['Loai'];
                $.ajax({
                    url: niceUrl+'DanhSachNganHang?loainganhang='+bankType,
                    type: 'GET',
                    async: false,
                    success: function(result) {
                    var bankList = JSON.parse(result);
                    theData[i]['bankList'] = bankList;
                        for (var j = 0; j < bankList.length; j++) { 
                            var bankCode = bankList[j]['MaNganHang'];
                            $.ajax({
                                url: niceUrl+'DanhSachTinhThanh?loai='+bankType+'&matennganhang='+bankCode,
                                type: 'GET',
                                async: false,
                                success: function(result) {
                                    var province =  JSON.parse(result);
                                    theData[i]['bankList'][j]['province'] = province;
                                    for (var k = 0; k < province.length; k++) {          
                                        var countryCode = province[k]['Code'];
                                        $.ajax({
                                            url: niceUrl+'DanhSachChiNhanh?loainganhang='+bankType+'&matinh='+countryCode+'&maNH='+bankCode,
                                            type: 'GET',
                                            async: false,
                                            success: function(result) {                                        
                                                theData[i]['bankList'][j]['province'][k]['branch'] = JSON.parse(result);
                                            }
                                        });
                                    }
                                }
                            });                    
                        }
                    }
                });        
            }	
        	console.log(JSON.stringify(theData));
        }
    });
  4. Tui cũng không hiểu trên URL request có token làm gì, trong khi request token tào lao vẫn được

    Danh sách ngân hàng tại Việt Nam
    Đây là kết quả
  5. Mà hình như vẫn chưa xong, thiếu mất Vietcombank thì phải =))
  6. Chọn tab Console -> Copy đoạn code phía dưới và paste vào -> Enter và chờ kết quả (trong lúc chờ bạn có thể qua tab Networks để xem nó chạy ^^)
    $.ajax({
        url: 'https://www.vietcombank.com.vn/data/BranchList.xml',
        type: 'GET',
        async: false,
        success: function(result) {
            var $xml = $( result ),
            $countries = $xml.find( "Branch" );
    	var province = [];
            $.each($countries,function(i,item) {
                var ID = $(this).attr('ID');
                var Name = $(this).attr('Name');
                $.ajax({
                    url: 'https://www.vietcombank.com.vn/About/Network.ashx?action=NodeList&branchID='+ID,
                    type: 'GET',
                    async: false,
                    success: function(result) {
                        var $xml = $( result ),
                        $branches = $xml.find( "Node" );
                        var branchLish = [];
    		    $.each($branches,function(i,item) {						
                            var brID = $(this).attr('ID');
                            var brName = $(this).attr('Name') == "Trụ sở Chi nhánh" ? "Chi nhánh " + Name : $(this).attr('Name');
                        	branchLish.push({
    			    "ID": 0,
                                "MaChiNhanh": brID,
                                "MaTinh": null,
                                "Loai": null,
                                "TenChiNhanh": brName,
                                "DiaChi": null,
                                "MaNganhang": null
    			});
    		    });
    		    province.push({
    			"Code": ID,
                            "TenTinhThanh": Name,
                            "branch": branchLish
    		    });
                    }
                });	
            });
    	theData[0]['bankList'].push({
                "ID": 0,
                "MaNganHang": "",
                "TenNH": "Ngan hang TMCP Ngoai thuong Viet Nam",
                "Loai": null,
                "province" : province
            });       
            console.log(JSON.stringify(theData).normalize('NFD').replace(/[\u0300-\u036f]/g, "")); 
        } 
    });
  7. Lần này là có kết quả hoàn chỉnh rồi nhé. Bạn copy đoạn json đó bằng cách nhấn vào chữ Copy mình đã khoanh đỏ ở hình trên,  rồi có thể tùy biến với đoạn json đó
  8. Dữ liệu bị sai 1 chỗ. Bạn search “79201023” trong đoạn json bạn vừa lấy được, sửa tên chi nhánh thành “Ngan hang TMCP Cong thuong Viet Nam – chi nhanh Gia Dinh” nhé. Đoạn đó chắc người của Vietcombank insert nhầm thành “Ngoai thuong”.