javascript
javascript
javascript
  • Lấy vị trí người dùng với javascript
  • [Problem] Lấy key đầu tiên tìm thấy chứa giá trị cần tìm (ok)
  • 🥸Đoạn mã JavaScript để thêm ký tự đặc biệt vào đầu mỗi dòng trong văn bản nhiều dòng (ok)
  • 😍Tạo ra font in đậm và copy đến website để sử dụng (ok)
  • Hiệu ứng mở sách cực đẹp
  • 🤩JS: Scroll Animation using Intersection Observer API 🤩 (ok)
  • 😅Draw svg on scroll Full (ok)
  • 😄Install Linguise on any domain dịch tự động (ok)
  • 😅Sử dụng ajax tạo popup cho các bài viết wordrpess mattervn.com (ok)
  • 😆PWA - beforeinstallprompt toplusgames.com (ok)
  • How to Use the HTML5 Full-Screen API (Again) (ok)
  • [ERROR GAME] fix lỗi không load iframe gamedistribution.com for toplusgames.com (ok)
  • 😅jQuery Plugin To Create Animated Placeholders - placeholderTypewriter (ok)
  • 😍Làm chức năng thông báo khách hàng đăng ký namkhoahanoi.vn (ok)
  • Tencent Captcha Demo (ok)
  • 😉Send Mail same javascript elasticemail (ok)
  • 🥳Các tool phong thuỷ (ok)
  • 😇Nice Select A lightweight Vanilla JavaScript plugin (ok)
  • Merge objects with the same id but sum values of the objects (ok)
  • 😅Page: DOMContentLoaded, load, beforeunload, unload phần 1 (ok)
  • 😍Scripts: async, defer phần 2(ok)
  • 😂Javascript Array chunkArrayInGroups(arr, size)
  • Sequentially Resolve Promises Works, Giải quyết tuần tự các lời hứa hoạt động (ok)
  • Using Async / Await with the Array Reduce Method API (ok)
  • Flatten an array of arrays,merge, làm phẳng một mảng các mảng (ok)
  • 😌Dependent Dropdown Full (ok)
  • 🥳Select Box Change Dependent Options dynamically (JavaScript Object)
  • 🤩Add elements dynamically full (ok)
  • 😅👌Multiple versions jquery (ok)
  • 😍Cách sử dụng jQuery trong sweetAlert2 là chúng ta phải sử dụng didOpen full (ok)
  • 😁😁 mdbgo.io, mdbootstrap.com full (ok)
  • 🤪Chú ý nếu lỗi cảnh báo từ khóa new nếu dùng trong js thường chúng ta sẽ sử dụng trong mudule (ok)
  • 😝reCAPTCHA javascript (ok)
  • Firework Simulator v2 Phao Hoa (ok)
  • Active scroll center (ok)
  • 🤪Sort array of objects by string property value (ok)
  • 😏findIndex, find index in Array object (ok)
  • 😂Sử dụng nhiều toán tử 3, multiple Ternary Operators (ok)
  • 😅A simple and easy to use library that creates fullscreen scrolling websites fullPage.js (ok)
  • Xây dựng ứng dụng CRUD sử dụng Vue.js trong Laravel (ok)
  • [Chart] Morris.js Line & Area Charts,Bar Charts, Donut Charts, graph (ok)
  • [Chart] Chart.js
  • Multi select checkbox table bootstrap (ok)
  • 😀jquery new, jquery old, jquery migrate (ok)
  • Popup slide up from the bottom overflowing other div blocks (ok)
  • ASYNC JavaScript (CALLBACK, PROMISES, ASYNC AWAIT) video (ok)
  • === START jQuery Mobile ===
  • Data Attributes full (ok)
  • Viết một ứng dụng Restaurant Picke sử dụng "back menu" (ok)
  • Viết một ứng dụng thời tiết, Weather sử dụng panel (ok)
  • jQuery Mobile Tutorial w3schools.com (ok)
  • jQuery Mobile
  • jQuery Mobile - Events (ok)
  • Back button in jquery mobile (ok)
  • === END jQuery Mobile ===
  • removeDuplicates, Remove duplicate values from JS array, remove all duplicates an array object (ok)
  • Sử dụng thư viện jquery.hoverdir.js để làm hiệu ứng hover tuyệt đẹp (ok)
  • Modernizr là gì ? Sử dụng nó cho những trình duyệt cũ ra sao? (ok)
  • Nhận biết tính năng CSS: Modernizr hay Feature Queries? (ok)
  • [SALESFORCE] Remote Action function in Visualforce Page (ok)
  • ScrollIt.js menu (ok)
  • Cách sử dụng scrollTo vanilla cực chất 😘 (ok)
  • Một bài toán xử lý bất đồng bộ trong kintone để lấy số requet quá giới hạn (OK)
  • hexagon thư viện tạo avatar Canvas (ok)
  • 😅Sử dụng Object.assign và để copy dữ liệu, edit, input, form (ok)
  • Một cách đặt và gán giá trị trong mảng, object cự ngắn gọn (ok)
  • [LAZY] jQuery.Lazy và tạo background-loading cực chất (ok)
  • Ví dụ Sử dụng sẵn thư viện masonry của wordpres (ok)
  • Ảnh base64 dùng làm src, placeholder (ok)
  • Kiểm tra hình ảnh đã được tải với thư viện imagesLoaded (ok)
  • Check if Function Exists before Calling? (ok)
  • Async/Await Javascript Full Example (ok)
  • Thenables in JavaScript phục vụ cho bài viết trên (ok)
  • Script distance, khoảng cách (ok)
  • Time, Date full (ok)
  • Function getAllDatesOfMonth (ok)
  • How do I make a placeholder for a 'select' box? (ok)
  • Library choise (ok)
  • jQuery - Redirect with post, Get data php (ok)
  • How to pass data from one page to another page html (ok)
  • how to send data onClick() to another php for processing using post or get?
  • draw grid, vẽ grid (ok)
  • Fullscreen Horizontal Page Slider with jQuery and CSS3 - HSlider scroll template html (ok)
  • _.template, UnderscoreJS Templates Full (ok)
  • Character limit on tag type input number (ok)
  • How to set maximum length in input type=number (ok)
  • ========= START JEST =======
  • Getting Started (ok)
  • Using Matchers (ok)
  • Testing Asynchronous Code
  • Setup and Teardown (ok)
  • Mock Functions
  • Jest Platform
  • Jest tutorial
  • Testing trong Javascript với Jest (Phần 1) (ok)
  • Testing trong Javascript với Jest (Phần 2)
  • Giới thiệu về Jest (Delightful JavaScript Testing)
  • Thử nghiệm phát triển theo hướng phản ứng với Jest và Enzyme
  • Cách kiểm tra các thành phần phản ứng với Jest và Enzyme, Phần 1
  • Cách kiểm tra thành phần phản ứng với Jest và Enzyme, Phần 2
  • Jest js mock jquey and lib
  • Unit testing Các thành phần React với Enzyme và Jest
  • Hướng dẫn viết unit test React với Jest và Enzyme (P1)
  • Tôi đã test các React component như thế nào? (phần 2)
  • Test component trong React với Jest
  • Test Component với Jest và Emzyme
  • Tổng quan về unit test cho dự án react redux saga với Jest Part 1
  • ========= END JEST =======
  • ======= START GULP TUTORIAL ======
  • [GULP] Tìm hiểu về Gulp.js
  • [GULP] Gulp Tutorial
  • [GULP] Gulp - Developing An Application (ok)
  • [GULP] Gulp - Combining Tasks (ok)
  • [GULP] Gulp - Watch (ok)
  • [GULP] Gulp - Live Reload
  • [GULP] Gulp - Optimizing CSS and JavaScript
  • [GULP] Gulp - Optimizing Images
  • [GULP] Gulp - Useful Plugins
  • [GULP] Gulp - Cleaning Unwanted Files
  • Đọc thêm những tài liệu trang khác
  • ======= END GULP TUTORIAL ======
  • Prevent form submission on Enter key press, keyCode (ok)
  • Lấy kích thước ảnh gốc image (ok)
  • 😆How to Center Carousel Slider (ok)
  • Putting Dots onto Owl Carousel Instead of below specialtouchgifts.com.au (ok)
  • Cách xây dựng một Full Screen Carousel với Owl.js
  • Lazy load với owl.carousel.js (ok)
  • Show half of the other item on Owl Carousel vinmec.com items: 1.5 (ok)
  • Show half of the other item on Owl Carousel vinmec.com stagePadding (ok)
  • ------------ Start Fetch -----------
  • Using Fetch Full
  • 😅Javascript Fetch JSON PHP Complete FormData phần 1(ok)
  • Một ví dụ quá đỉnh lấy dữ liệu của form submit trong js bằng đối tượng new FormData + php phần 2(ok)
  • Có một sự thật sử dụng async đồng nghĩa với trả về kết quả là PROMISE (ok)
  • 😅Promise.all full (ok)
  • All you need to know about Promise.all
  • [PROMISE] Promise.all()
  • [PROMISE] Tìm hiểu về promise trong ES6
  • [PROMISE] Introduction to Promises
  • jQuery off() Method (ok)
  • How to make HTTP requests with Axios
  • Axios vs Fetch - 2020 nên sử dụng thằng nào với những tính năng mới trong javascript
  • Get and Post method using Fetch API (ok)
  • Sử dụng JavaScript Fetch API với Async/Await (ok)
  • Xử lý lỗi cho fetch trong trường hợp không có kết nối hoặc kết nối lâu (ok)
  • ------------ End Fetch -----------
  • BigDataCloud Free Reverse Geocoding Javascript API Client (ok)
  • Vietmap API
  • 🥰Sử dụng API Giao hàng Nhanh để tính giá cước vận chuyển (ok)
  • photonsearch as you type with OpenStreetMap map (ok)
  • Leaflet - Một thư viện JS mã nguồn mở cho việc xây dụng ứng dụng bản đồ map (ok)
  • Xây dựng popup lấy vị trí map áp dụng pointfinder (ok)
  • Reverse Geocoding Convert Lat Long to Address map (ok)
  • Free Reverse Geocoding Javascript API map (ok)
  • [YAML] In Action Tutorial Series - General - Hướng dẫn sử dụng file YML YAML cơ bản
  • ----------------- Start Notification -----------------
  • Đối tượng caches object caches (ok)
  • Notification (ok)
  • Sử dụng indexedDB (ok)
  • Using the Notifications API (ok)
  • NotificationEvent (chưa có ví dụ :((
  • ServiceWorkerGlobalScope.onnotificationclick (ok)
  • ServiceWorkerRegistration.getNotifications(ok)
  • ServiceWorkerRegistration.showNotification(ok)
  • Giao tiếp giữa các cửa sổ với Window.postMessage API (ok)
  • Window open() Method (ok)
  • ----------------- End Notification -----------------
  • Example Cookie full (ok)
  • Thay đổi class active javascript bằng cách viết hàm (P1)
  • Thay đổi class active javascript bằng cách viết hàm (P2)
  • jQuery Mockjax Plugin (chưa học cách sử dụng)
  • jQuery Ajax X-editable bootstrap plugin (chưa học cách sử dụng)
  • Lọc theo điều kiện (filter) (ok)
  • Các ví dụ về filter
  • jQuery | grep() Method (ok)
  • Hai bài toán so sánh kinh điển trong javascript
  • Function random :)
  • Một cách sử dụng tab trong theme newspaper
  • Hiệu ứng scroll + animation + menu trượt mượt
  • Trigger a CSS animation on scroll xuongkhopbacninh.vn (ok)
  • App Css Loaded (scroll create link) (ok)
  • Hiệu tứng scroll cực chất (ok)
  • App Js Loaded (ok)
  • Sử dụng async và defer full (Oke)
  • Cách sử dụng Thuộc tính async và defer trong JavaScript hay
  • ReferenceError: Can't find variable: requestAnimationFrame
  • Đoạn code check lỗi PHP trong Ajax
  • [SELECT2] Sử dụng Select2 để thay thế select boxes
  • Một cách sử dụng lazyload khi addclass thật khó khăn...
  • Hiệu ứng croll chuột và % cực đẹp :_
  • Tạo chức năng tự động hoàn tất nhập liệu với thư viện jQuery UI Autocomplete (Phần 1)
  • Tạo chức năng tự động hoàn tất nhập liệu với thư viện jQuery UI Autocomplete (Phần 2)
  • JavaScript String split() Method (OK)
  • Sử dụng thư viện displace để làm menu kéo thả (ok):)))
  • Menu cực chất :)))
  • Sử dụng thư viện slick (ok)
  • vertical scroll, Vertical carousel (ok)
  • Google-like Thanos disintegration (ok)
  • Dùng thư viện jspdf
  • Công thức Toán học cho website
  • Fix lỗi tự động làm thay đổi độ cao :( vieclam123.vn :(
  • Sử dụng window.addEventListener để resize và responsive <3
  • Javascript create, read, and delete cookies (ok)
  • Tự động submit bằng javscript :))) (ok)
  • avoid form warning if user clicks refresh (ok)
  • Một cách truy cập phần tử bằng js thông qua id lạ :)))
  • Meta Refresh
  • Truyền dữ liệu từ javascript sang php
    • Sử dụng form để truyền sang php (ok)
    • Truyền giá trị theo file bằng đường dẫn (ok)
    • Dùng json để truyền sang php
  • auto-refresh page once only after first load – Using JavaScript / JQuery
    • auto-refresh page once only after first load – Using JavaScript / JQuery (ok)
  • Sticky Scroller
    • Sticky Scroller phần 1 (ok)
    • Sticky Scroller phần 2 (ok)
    • owl carousel with dotsContainer (Dots + Text) (ok)
    • Owl Carousel 2 Thumbnails plugin (ok)
  • easy_background Background Slideshow (ok) dev.vieclam123.vn
  • scroll cực chất timviec365.vn, vieclam123.vn (ok)
  • Thư viện lightslider-master gần giống với Owl Carousel
  • Thư viện lightGallery để làm những bộ Sưu tập Gallery
  • Tự viết click slide (ok)
  • Draggable & Touch-friendly Slider Carousel In Pure JS (ok)
  • Slider owl được viết dưới dạng Thumnail (0k)
  • jquery.js:5092 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' (ok)
  • Added non-passive event listener to a scroll-blocking 'touchstart' event (ok)
  • sticky-mobile-menu-burger-menu (ok)
  • How can I add class to the first and last item among the visible items of Owl Carousel 2? (ok)
  • Owl-carousel2 DEMO - items in 2 rows (oke)
  • How can I create a carousel slick with multiple rows? (ok)
  • Một cách sử dụng create <style> để thêm style (ok)
  • Two Rows Olw Carousel (ok) vieclam123.vn
  • Chức năng tự gọi Javascript (ok) tự động auto
  • Click Next Javascript Base (ok)
  • Slider owl được viết dưới dạng Thumnail viết trên jsfiddle (0k)
  • 😆Creating a Countdown Timer, dakhoathienhoa.com.vn (oK)
  • 🥸NumScroller, Counter From Zero To Value - Javascript Animation (ok)
  • Click Button background-hover white (ok)
  • CodePen HomeLazy Loading Images (Ok)
  • Custom Date Javasript (job247.vn)
  • Tooltip
  • button thay đổi thẻ tags button và span trong Owl Carousel thành thẻ khác :)) (ok)
  • Thêm class vào navigation Owl Carousel (ok)
  • Click lần đầu sử event.preventDefault(); lầu sau not event.preventDefault();
  • landscape && landscape (ok)
  • Landscape && Portrait (ok) job247.vn
  • Hammer thư viện JavaScript chạm cho màn hình cảm ứng
  • jQuery Plugin To Add CSS3 Scrolling Effects On Your Web Page - Smoove menu (ok)
  • 😃Auto Expanding Table Of Contents Plugin - Dynamic Content menu (ok)
  • Tornis - watch and respond
  • scroll-manager
  • Xem thêm
  • Hướng dẫn nấu món "Lazy loading image" theo chuẩn 5 sao Google
  • Welcome to jquery-confirm!
    • jQuery Message Box Plugin Demo Page
  • Magnific-Popup Popup img
  • Slider Swiper Slider-Swiper dùng viết slider giống app
  • Magnific Popup Documentation
  • filter search (ok)
  • Is it possible to convert a select menu to buttons? (ok)
  • Changing selected option on button click select (ok) homef.vn hoặc inop.vyanh.net
  • scrooll animation (job247.vn) (ok)
  • Select2 tutorial
    • Single select boxes (ok)
  • [SELECT2] Disabling a Select2 control (ok)
  • Disabling options (ok)
  • placeholder (ok)
  • Hiển thị nút xóa các giá trị đã chọn + allowClear (ok)
  • Đọc dữ liệu từ một mảng, Data sources (ok)
  • Sử dụng database + php (ok)
  • [SELECT2] Sử dụng form + select2 + ajax + get value (ok)
  • Đọc dữ liệu từ nguồn khác sử dụng AJAX (ok)
  • Thiết lập giá trị mặc định ban đầu trên HTML như bình thường (ok)
  • Sử dụng Ajax để tải dữ liệu từ một nguồn khác (ok)
  • change form
Powered by GitBook
On this page
  • 1. Tạo tài khoản
  • 2. API lấy thông tin địa chỉ giao hàng
  • 2.1. API lấy thông tin Tỉnh, Thành Phố
  • 2.2. API lấy thông tin Quận, Huyện
  • 2.3. API lấy thông tin Phường, Xã
  • 3. API lấy thông tin gói dịch vụ
  • 4. API tính giá cước vận chuyển
  • 5. Kết
  • 6. Tài liệu tham khảo

Was this helpful?

Sử dụng API Giao hàng Nhanh để tính giá cước vận chuyển (ok)

PreviousVietmap APINextphotonsearch as you type with OpenStreetMap map (ok)

Last updated 2 months ago

Was this helpful?

https://online-gateway.ghn.vn/shiip/public-api/master-data/province
token: 42d073a5-1f9c-11ed-8a70-52fa25d1292f-deletelionel
{
    "code": 200,
    "message": "Success",
    "data": [
        {
            "ProvinceID": 269,
            "ProvinceName": "Lào Cai",
            "CountryID": 1,
            "Code": "20",
            "NameExtension": [
                "Lào Cai",
                "Tỉnh Lào Cai",
                "T.Lào Cai",
                "T Lào Cai",
                "laocai"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891384 +0700 +07 m=+0.010448463",
            "UpdatedAt": "2019-12-05 15:41:26.891384 +0700 +07 m=+0.010449016",
            "AreaID": 1,
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "103.191.145.200",
            "UpdatedEmployee": 209749,
            "UpdatedSource": "internal",
            "UpdatedDate": "2024-06-19T10:40:21.091Z"
        },
        {
            "ProvinceID": 268,
            "ProvinceName": "Hưng Yên",
            "CountryID": 1,
            "Code": "321",
            "NameExtension": [
                "Hưng Yên",
                "Tỉnh Hưng Yên",
                "T.Hưng Yên",
                "T Hưng Yên",
                "hungyen"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.89138 +0700 +07 m=+0.010444468",
            "UpdatedAt": "2019-12-05 15:41:26.891383 +0700 +07 m=+0.010447473",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 267,
            "ProvinceName": "Hòa Bình",
            "CountryID": 1,
            "Code": "218",
            "NameExtension": [
                "Hòa Bình",
                "Tỉnh Hòa Bình",
                "T.Hòa Bình",
                "T Hòa Bình",
                "hoabinh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891378 +0700 +07 m=+0.010443042",
            "UpdatedAt": "2019-12-05 15:41:26.891379 +0700 +07 m=+0.010443604",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 266,
            "ProvinceName": "Sơn La",
            "CountryID": 1,
            "Code": "22",
            "NameExtension": [
                "Sơn La",
                "Tỉnh Sơn La",
                "T.Sơn La",
                "T Sơn La",
                "sonla"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891377 +0700 +07 m=+0.010441659",
            "UpdatedAt": "2019-12-05 15:41:26.891378 +0700 +07 m=+0.010442220",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 265,
            "ProvinceName": "Điện Biên",
            "CountryID": 1,
            "Code": "230",
            "NameExtension": [
                "Điện Biên",
                "Tỉnh Điện Biên",
                "T.Điện Biên",
                "T Điện Biên",
                "dienbien"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891376 +0700 +07 m=+0.010440285",
            "UpdatedAt": "2019-12-05 15:41:26.891376 +0700 +07 m=+0.010440840",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 264,
            "ProvinceName": "Lai Châu",
            "CountryID": 1,
            "Code": "231",
            "NameExtension": [
                "Lai Châu",
                "Tỉnh Lai Châu",
                "T.Lai Châu",
                "T Lai Châu",
                "laichau"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891374 +0700 +07 m=+0.010438850",
            "UpdatedAt": "2019-12-05 15:41:26.891375 +0700 +07 m=+0.010439440",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 263,
            "ProvinceName": "Yên Bái",
            "CountryID": 1,
            "Code": "29",
            "NameExtension": [
                "Yên Bái",
                "Tỉnh Yên Bái",
                "T.Yên Bái",
                "T Yên Bái",
                "yenbai"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891369 +0700 +07 m=+0.010433883",
            "UpdatedAt": "2019-12-05 15:41:26.89137 +0700 +07 m=+0.010434449",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 262,
            "ProvinceName": "Bình Định",
            "CountryID": 1,
            "Code": "56",
            "NameExtension": [
                "Bình Định",
                "Tỉnh Bình Định",
                "T.Bình Định",
                "T Bình Định",
                "binhdinh",
                "Binh Dinh",
                "binh dinh"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891368 +0700 +07 m=+0.010432542",
            "UpdatedAt": "2019-12-05 15:41:26.891368 +0700 +07 m=+0.010433091",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "35.247.155.234",
            "UpdatedEmployee": 242614,
            "UpdatedSource": "internal",
            "UpdatedDate": "2021-12-14T01:46:02.443Z"
        },
        {
            "ProvinceID": 261,
            "ProvinceName": "Ninh Thuận",
            "CountryID": 1,
            "Code": "68",
            "NameExtension": [
                "Ninh Thuận",
                "Tỉnh Ninh Thuận",
                "T.Ninh Thuận",
                "T Ninh Thuận",
                "ninhthuan"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891367 +0700 +07 m=+0.010431149",
            "UpdatedAt": "2019-12-05 15:41:26.891367 +0700 +07 m=+0.010431707",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 260,
            "ProvinceName": "Phú Yên",
            "CountryID": 1,
            "Code": "57",
            "NameExtension": [
                "Phú Yên",
                "Tỉnh Phú Yên",
                "T.Phú Yên",
                "T Phú Yên",
                "phuyen"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891365 +0700 +07 m=+0.010429716",
            "UpdatedAt": "2019-12-05 15:41:26.891366 +0700 +07 m=+0.010430285",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 259,
            "ProvinceName": "Kon Tum",
            "CountryID": 1,
            "Code": "60",
            "NameExtension": [
                "Kon Tum",
                "Tỉnh Kon Tum",
                "T.Kon Tum",
                "T Kon Tum",
                "kontum",
                "contum"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891364 +0700 +07 m=+0.010428268",
            "UpdatedAt": "2019-12-05 15:41:26.891364 +0700 +07 m=+0.010428815",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 258,
            "ProvinceName": "Bình Thuận",
            "CountryID": 1,
            "Code": "62",
            "NameExtension": [
                "Bình Thuận",
                "Tỉnh Bình Thuận",
                "T.Bình Thuận",
                "T Bình Thuận",
                "binhthuan"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891362 +0700 +07 m=+0.010426889",
            "UpdatedAt": "2019-12-05 15:41:26.891363 +0700 +07 m=+0.010427426",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 253,
            "ProvinceName": "Bạc Liêu",
            "CountryID": 1,
            "Code": "781",
            "NameExtension": [
                "Bạc Liêu",
                "Tỉnh Bạc Liêu",
                "T.Bạc Liêu",
                "T Bạc Liêu",
                "baclieu"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891359 +0700 +07 m=+0.010424038",
            "UpdatedAt": "2019-12-05 15:41:26.89136 +0700 +07 m=+0.010424597",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 252,
            "ProvinceName": "Cà Mau",
            "CountryID": 1,
            "Code": "780",
            "NameExtension": [
                "Cà Mau",
                "Tỉnh Cà Mau",
                "T.Cà Mau",
                "T Cà Mau",
                "camau"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891358 +0700 +07 m=+0.010422541",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 250,
            "ProvinceName": "Hậu Giang",
            "CountryID": 1,
            "Code": "711",
            "NameExtension": [
                "Hậu Giang",
                "Tỉnh Hậu Giang",
                "T.Hậu Giang",
                "T Hậu Giang",
                "haugiang"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718500,
            "CreatedAt": "2019-12-05 15:41:26.891356 +0700 +07 m=+0.010421054",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 249,
            "ProvinceName": "Bắc Ninh",
            "CountryID": 1,
            "Code": "241",
            "NameExtension": [
                "Bắc Ninh",
                "Tỉnh Bắc Ninh",
                "T.Bắc Ninh",
                "T Bắc Ninh",
                "bacninh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891355 +0700 +07 m=+0.010419696",
            "UpdatedAt": "2019-12-05 15:41:26.891356 +0700 +07 m=+0.010420252",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 248,
            "ProvinceName": "Bắc Giang",
            "CountryID": 1,
            "Code": "240",
            "NameExtension": [
                "Bắc Giang",
                "Tỉnh Bắc Giang",
                "T.Bắc Giang",
                "T Bắc Giang",
                "bacgiang"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891354 +0700 +07 m=+0.010418324",
            "UpdatedAt": "2019-12-05 15:41:26.891354 +0700 +07 m=+0.010418877",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 247,
            "ProvinceName": "Lạng Sơn",
            "CountryID": 1,
            "Code": "25",
            "NameExtension": [
                "Lạng Sơn",
                "Tỉnh Lạng Sơn",
                "T.Lạng Sơn",
                "T Lạng Sơn",
                "langson"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891352 +0700 +07 m=+0.010416972",
            "UpdatedAt": "2019-12-05 15:41:26.891353 +0700 +07 m=+0.010417531",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 246,
            "ProvinceName": "Cao Bằng",
            "CountryID": 1,
            "Code": "26",
            "NameExtension": [
                "Cao Bằng",
                "Tỉnh Cao Bằng",
                "T.Cao Bằng",
                "T Cao Bằng",
                "caobang"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891351 +0700 +07 m=+0.010415552",
            "UpdatedAt": "2019-12-05 15:41:26.891351 +0700 +07 m=+0.010416110",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 245,
            "ProvinceName": "Bắc Kạn",
            "CountryID": 1,
            "Code": "281",
            "NameExtension": [
                "Bắc Kạn",
                "Tỉnh Bắc Kạn",
                "T.Bắc Kạn",
                "T Bắc Kạn",
                "backan",
                "baccan"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.89135 +0700 +07 m=+0.010414153",
            "UpdatedAt": "2019-12-05 15:41:26.89135 +0700 +07 m=+0.010414725",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 244,
            "ProvinceName": "Thái Nguyên",
            "CountryID": 1,
            "Code": "280",
            "NameExtension": [
                "Thái Nguyên",
                "Tỉnh Thái Nguyên",
                "T.Thái Nguyên",
                "T Thái Nguyên",
                "thainguyen"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891348 +0700 +07 m=+0.010412755",
            "UpdatedAt": "2019-12-05 15:41:26.891349 +0700 +07 m=+0.010413345",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 243,
            "ProvinceName": "Quảng Nam",
            "CountryID": 1,
            "Code": "510",
            "NameExtension": [
                "Quảng Nam",
                "Tỉnh Quảng Nam",
                "T.Quảng Nam",
                "T Quảng Nam",
                "quangnam"
            ],
            "IsEnable": 1,
            "RegionID": 5,
            "RegionCPN": 3,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891346 +0700 +07 m=+0.010410982",
            "UpdatedAt": "2019-12-05 15:41:26.891347 +0700 +07 m=+0.010411789",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 242,
            "ProvinceName": "Quảng Ngãi",
            "CountryID": 1,
            "Code": "55",
            "NameExtension": [
                "Quảng Ngãi",
                "Tỉnh Quảng Ngãi",
                "T.Quảng Ngãi",
                "T Quảng Ngãi",
                "quangngai"
            ],
            "IsEnable": 1,
            "RegionID": 5,
            "RegionCPN": 3,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891344 +0700 +07 m=+0.010408521",
            "UpdatedAt": "2019-12-05 15:41:26.891345 +0700 +07 m=+0.010409541",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 241,
            "ProvinceName": "Đắk Nông",
            "CountryID": 1,
            "Code": "501",
            "NameExtension": [
                "Đắk Nông",
                "Tỉnh Đắk Nông",
                "T.Đắk Nông",
                "T Đắk Nông",
                "Đăk Nông",
                "daknong",
                "dacnong",
                "dak nong"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891342 +0700 +07 m=+0.010406889",
            "UpdatedAt": "2019-12-05 15:41:26.891343 +0700 +07 m=+0.010407449",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "35.247.155.234",
            "UpdatedEmployee": 242614,
            "UpdatedSource": "internal",
            "UpdatedDate": "2021-12-14T01:45:00.798Z"
        },
        {
            "ProvinceID": 240,
            "ProvinceName": "Tây Ninh",
            "CountryID": 1,
            "Code": "66",
            "NameExtension": [
                "Tây Ninh",
                "Tỉnh Tây Ninh",
                "T.Tây Ninh",
                "T Tây Ninh",
                "tayninh"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891341 +0700 +07 m=+0.010405469",
            "UpdatedAt": "2019-12-05 15:41:26.891341 +0700 +07 m=+0.010406037",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 239,
            "ProvinceName": "Bình Phước",
            "CountryID": 1,
            "Code": "651",
            "NameExtension": [
                "Bình Phước",
                "Tỉnh Bình Phước",
                "T.Bình Phước",
                "T Bình Phước",
                "binhphuoc"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891339 +0700 +07 m=+0.010404045",
            "UpdatedAt": "2019-12-05 15:41:26.89134 +0700 +07 m=+0.010404628",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 238,
            "ProvinceName": "Quảng Trị",
            "CountryID": 1,
            "Code": "53",
            "NameExtension": [
                "Quảng Trị",
                "Tỉnh Quảng Trị",
                "T.Quảng Trị",
                "T Quảng Trị",
                "quangtri"
            ],
            "IsEnable": 1,
            "RegionID": 5,
            "RegionCPN": 3,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891336 +0700 +07 m=+0.010400845",
            "UpdatedAt": "2019-12-05 15:41:26.891337 +0700 +07 m=+0.010401479",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 237,
            "ProvinceName": "Quảng Bình",
            "CountryID": 1,
            "Code": "52",
            "NameExtension": [
                "Quảng Bình",
                "Tỉnh Quảng Bình",
                "T.Quảng Bình",
                "T Quảng Bình",
                "quangbinh"
            ],
            "IsEnable": 1,
            "RegionID": 5,
            "RegionCPN": 3,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.89133 +0700 +07 m=+0.010394677",
            "UpdatedAt": "2019-12-05 15:41:26.891331 +0700 +07 m=+0.010395288",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 236,
            "ProvinceName": "Hà Tĩnh",
            "CountryID": 1,
            "Code": "39",
            "NameExtension": [
                "Hà Tĩnh",
                "Tỉnh Hà Tĩnh",
                "T.Hà Tĩnh",
                "T Hà Tĩnh",
                "hatinh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891329 +0700 +07 m=+0.010393259",
            "UpdatedAt": "2019-12-05 15:41:26.891329 +0700 +07 m=+0.010393837",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 235,
            "ProvinceName": "Nghệ An",
            "CountryID": 1,
            "Code": "38",
            "NameExtension": [
                "Nghệ An",
                "Tỉnh Nghệ An",
                "T.Nghệ An",
                "T Nghệ An",
                "nghean"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891327 +0700 +07 m=+0.010391805",
            "UpdatedAt": "2019-12-05 15:41:26.891328 +0700 +07 m=+0.010392390",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 234,
            "ProvinceName": "Thanh Hóa",
            "CountryID": 1,
            "Code": "37",
            "NameExtension": [
                "Thanh Hóa",
                "Tỉnh Thanh Hóa",
                "T.Thanh Hóa",
                "T Thanh Hóa",
                "thanhhoa"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891325 +0700 +07 m=+0.010390100",
            "UpdatedAt": "2019-12-05 15:41:26.891326 +0700 +07 m=+0.010390825",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 233,
            "ProvinceName": "Ninh Bình",
            "CountryID": 1,
            "Code": "30",
            "NameExtension": [
                "Ninh Bình",
                "Tỉnh Ninh Bình",
                "T.Ninh Bình",
                "T Ninh Bình",
                "ninhbinh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891323 +0700 +07 m=+0.010387239",
            "UpdatedAt": "2019-12-05 15:41:26.891324 +0700 +07 m=+0.010388515",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 232,
            "ProvinceName": "Hà Nam",
            "CountryID": 1,
            "Code": "351",
            "NameExtension": [
                "Hà Nam",
                "Tỉnh Hà Nam",
                "T.Hà Nam",
                "T Hà Nam",
                "hanam"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891307 +0700 +07 m=+0.010371600",
            "UpdatedAt": "2019-12-05 15:41:26.891317 +0700 +07 m=+0.010382159",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 231,
            "ProvinceName": "Nam Định",
            "CountryID": 1,
            "Code": "350",
            "NameExtension": [
                "Nam Định",
                "Tỉnh Nam Định",
                "T.Nam Định",
                "T Nam Định",
                "namdinh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891304 +0700 +07 m=+0.010368963",
            "UpdatedAt": "2019-12-05 15:41:26.891305 +0700 +07 m=+0.010369968",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 230,
            "ProvinceName": "Quảng Ninh",
            "CountryID": 1,
            "Code": "33",
            "NameExtension": [
                "Quảng Ninh",
                "Tỉnh Quảng Ninh",
                "T.Quảng Ninh",
                "T Quảng Ninh",
                "quangninh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.8913 +0700 +07 m=+0.010364176",
            "UpdatedAt": "2019-12-05 15:41:26.8913 +0700 +07 m=+0.010365128",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 229,
            "ProvinceName": "Phú Thọ",
            "CountryID": 1,
            "Code": "210",
            "NameExtension": [
                "Phú Thọ",
                "Tỉnh Phú Thọ",
                "T.Phú Thọ",
                "T Phú Thọ",
                "phutho"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891297 +0700 +07 m=+0.010361666",
            "UpdatedAt": "2019-12-05 15:41:26.891298 +0700 +07 m=+0.010362667",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 228,
            "ProvinceName": "Tuyên Quang",
            "CountryID": 1,
            "Code": "27",
            "NameExtension": [
                "Tuyên Quang",
                "Tỉnh Tuyên Quang",
                "T.Tuyên Quang",
                "T Tuyên Quang",
                "tuyenquang"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891294 +0700 +07 m=+0.010359059",
            "UpdatedAt": "2019-12-05 15:41:26.891295 +0700 +07 m=+0.010360123",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 227,
            "ProvinceName": "Hà Giang",
            "CountryID": 1,
            "Code": "219",
            "NameExtension": [
                "Hà Giang",
                "Tỉnh Hà Giang",
                "T.Hà Giang",
                "T Hà Giang",
                "hagiang"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 5,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891292 +0700 +07 m=+0.010356434",
            "UpdatedAt": "2019-12-05 15:41:26.891293 +0700 +07 m=+0.010357495",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 226,
            "ProvinceName": "Thái Bình",
            "CountryID": 1,
            "Code": "36",
            "NameExtension": [
                "Thái Bình",
                "Tỉnh Thái Bình",
                "T.Thái Bình",
                "T Thái Bình",
                "thaibinh"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891289 +0700 +07 m=+0.010353730",
            "UpdatedAt": "2019-12-05 15:41:26.89129 +0700 +07 m=+0.010354792",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 225,
            "ProvinceName": "Hải Dương",
            "CountryID": 1,
            "Code": "320",
            "NameExtension": [
                "Hải Dương",
                "Tỉnh Hải Dương",
                "T.Hải Dương",
                "T Hải Dương",
                "haiduong"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891286 +0700 +07 m=+0.010350972",
            "UpdatedAt": "2019-12-05 15:41:26.891287 +0700 +07 m=+0.010351969",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 224,
            "ProvinceName": "Hải Phòng",
            "CountryID": 1,
            "Code": "31",
            "NameExtension": [
                "Hải Phòng",
                "TP.Hải Phòng",
                "TP. Hải Phòng",
                "TP Hải Phòng",
                "Thành phố Hải Phòng",
                "haiphong"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891281 +0700 +07 m=+0.010346052",
            "UpdatedAt": "2019-12-05 15:41:26.891282 +0700 +07 m=+0.010347093",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 223,
            "ProvinceName": "Thừa Thiên Huế",
            "CountryID": 1,
            "Code": "54",
            "NameExtension": [
                "Thừa Thiên Huế",
                "Thừa Thiên - Huế",
                "Tỉnh Thừa Thiên - Huế",
                "T.Thừa Thiên - Huế",
                "T Thừa Thiên - Huế",
                "hue",
                "thuathienhue",
                "Tỉnh Thừa Thiên Huế"
            ],
            "IsEnable": 1,
            "RegionID": 5,
            "RegionCPN": 3,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891279 +0700 +07 m=+0.010343391",
            "UpdatedAt": "2019-12-05 15:41:26.89128 +0700 +07 m=+0.010344321",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "103.191.145.200",
            "UpdatedEmployee": 242614,
            "UpdatedSource": "internal",
            "UpdatedDate": "2024-01-09T07:06:28.897Z"
        },
        {
            "ProvinceID": 221,
            "ProvinceName": "Vĩnh Phúc",
            "CountryID": 1,
            "Code": "211",
            "NameExtension": [
                "Vĩnh Phúc",
                "Tỉnh Vĩnh Phúc",
                "T.Vĩnh Phúc",
                "T Vĩnh Phúc",
                "vinhphuc"
            ],
            "IsEnable": 1,
            "RegionID": 6,
            "RegionCPN": 4,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891276 +0700 +07 m=+0.010341021",
            "UpdatedAt": "2019-12-05 15:41:26.891277 +0700 +07 m=+0.010341955",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 220,
            "ProvinceName": "Cần Thơ",
            "CountryID": 1,
            "Code": "710",
            "NameExtension": [
                "Cần Thơ",
                "TP.Cần Thơ",
                "TP. Cần Thơ",
                "TP Cần Thơ",
                "Thành phố Cần Thơ",
                "cantho"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891274 +0700 +07 m=+0.010338564",
            "UpdatedAt": "2019-12-05 15:41:26.891275 +0700 +07 m=+0.010339570",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 219,
            "ProvinceName": "Kiên Giang",
            "CountryID": 1,
            "Code": "77",
            "NameExtension": [
                "Kiên Giang",
                "Tỉnh Kiên Giang",
                "T.Kiên Giang",
                "T Kiên Giang",
                "kiengiang"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891271 +0700 +07 m=+0.010335801",
            "UpdatedAt": "2019-12-05 15:41:26.891272 +0700 +07 m=+0.010336808",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 218,
            "ProvinceName": "Sóc Trăng",
            "CountryID": 1,
            "Code": "79",
            "NameExtension": [
                "Sóc Trăng",
                "Tỉnh Sóc Trăng",
                "T.Sóc Trăng",
                "T Sóc Trăng",
                "soctrang"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891266 +0700 +07 m=+0.010330445",
            "UpdatedAt": "2019-12-05 15:41:26.891267 +0700 +07 m=+0.010331390",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 217,
            "ProvinceName": "An Giang",
            "CountryID": 1,
            "Code": "76",
            "NameExtension": [
                "An Giang",
                "Tỉnh An Giang",
                "T.An Giang",
                "T An Giang",
                "angiang"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891261 +0700 +07 m=+0.010325439",
            "UpdatedAt": "2019-12-05 15:41:26.891262 +0700 +07 m=+0.010326449",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 216,
            "ProvinceName": "Đồng Tháp",
            "CountryID": 1,
            "Code": "67",
            "NameExtension": [
                "Đồng Tháp",
                "Tỉnh Đồng Tháp",
                "T.Đồng Tháp",
                "T Đồng Tháp",
                "dongthap"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891258 +0700 +07 m=+0.010322799",
            "UpdatedAt": "2019-12-05 15:41:26.891259 +0700 +07 m=+0.010323710",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 215,
            "ProvinceName": "Vĩnh Long",
            "CountryID": 1,
            "Code": "70",
            "NameExtension": [
                "Vĩnh Long",
                "Tỉnh Vĩnh Long",
                "T.Vĩnh Long",
                "T Vĩnh Long",
                "vinhlong"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891255 +0700 +07 m=+0.010320049",
            "UpdatedAt": "2019-12-05 15:41:26.891256 +0700 +07 m=+0.010321117",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 214,
            "ProvinceName": "Trà Vinh",
            "CountryID": 1,
            "Code": "74",
            "NameExtension": [
                "Trà Vinh",
                "Tỉnh Trà Vinh",
                "T.Trà Vinh",
                "T Trà Vinh",
                "travinh"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891253 +0700 +07 m=+0.010317269",
            "UpdatedAt": "2019-12-05 15:41:26.891254 +0700 +07 m=+0.010318328",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 213,
            "ProvinceName": "Bến Tre",
            "CountryID": 1,
            "Code": "75",
            "NameExtension": [
                "Bến Tre",
                "Tỉnh Bến Tre",
                "T.Bến Tre",
                "T Bến Tre",
                "bentre"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.89125 +0700 +07 m=+0.010314751",
            "UpdatedAt": "2019-12-05 15:41:26.891251 +0700 +07 m=+0.010315735",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 212,
            "ProvinceName": "Tiền Giang",
            "CountryID": 1,
            "Code": "73",
            "NameExtension": [
                "Tiền Giang",
                "Tỉnh Tiền Giang",
                "T.Tiền Giang",
                "T Tiền Giang",
                "tiengiang"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891248 +0700 +07 m=+0.010312275",
            "UpdatedAt": "2019-12-05 15:41:26.891249 +0700 +07 m=+0.010313220",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 211,
            "ProvinceName": "Long An",
            "CountryID": 1,
            "Code": "72",
            "NameExtension": [
                "Long An",
                "Tỉnh Long An",
                "T.Long An",
                "T Long An",
                "longan"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891245 +0700 +07 m=+0.010309861",
            "UpdatedAt": "2019-12-05 15:41:26.891246 +0700 +07 m=+0.010310907",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 210,
            "ProvinceName": "Đắk Lắk",
            "CountryID": 1,
            "Code": "500",
            "NameExtension": [
                "Đắk Lắk",
                "Tỉnh Đắk Lắk",
                "T.Đắk Lắk",
                "T Đắk Lắk",
                "Đăk Lăk",
                "daklak",
                "daclac",
                "daklac",
                "daclak"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.89124 +0700 +07 m=+0.010304970",
            "UpdatedAt": "2019-12-05 15:41:26.891241 +0700 +07 m=+0.010306014",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "203.205.29.215",
            "UpdatedEmployee": 1718600,
            "UpdatedSource": "internal",
            "UpdatedDate": "2020-09-28T06:49:13.2Z"
        },
        {
            "ProvinceID": 209,
            "ProvinceName": "Lâm Đồng",
            "CountryID": 1,
            "Code": "63",
            "NameExtension": [
                "Lâm Đồng",
                "Tỉnh Lâm Đồng",
                "T.Lâm Đồng",
                "T Lâm Đồng",
                "lamdong"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891237 +0700 +07 m=+0.010301841",
            "UpdatedAt": "2019-12-05 15:41:26.891238 +0700 +07 m=+0.010302884",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 208,
            "ProvinceName": "Khánh Hòa",
            "CountryID": 1,
            "Code": "58",
            "NameExtension": [
                "Khánh Hòa",
                "Tỉnh Khánh Hòa",
                "T.Khánh Hòa",
                "T Khánh Hòa",
                "khanhhoa"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891235 +0700 +07 m=+0.010299210",
            "UpdatedAt": "2019-12-05 15:41:26.891236 +0700 +07 m=+0.010300275",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 207,
            "ProvinceName": "Gia Lai",
            "CountryID": 1,
            "Code": "59",
            "NameExtension": [
                "Gia Lai",
                "Tỉnh Gia Lai",
                "T.Gia Lai",
                "T Gia Lai",
                "gialai"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 2,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891232 +0700 +07 m=+0.010296656",
            "UpdatedAt": "2019-12-05 15:41:26.891233 +0700 +07 m=+0.010297610",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 206,
            "ProvinceName": "Bà Rịa - Vũng Tàu",
            "CountryID": 1,
            "Code": "64",
            "NameExtension": [
                "Bà Rịa - Vũng Tàu",
                "Tỉnh Bà Rịa - Vũng Tàu",
                "T.Bà Rịa - Vũng Tàu",
                "T Bà Rịa - Vũng Tàu",
                "Bà Rịa Vũng Tàu",
                "bariavungtau",
                "vungtau",
                "Bà Rịa-Vũng Tàu",
                "bà rịa-vũng tàu"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891229 +0700 +07 m=+0.010294114",
            "UpdatedAt": "2019-12-05 15:41:26.89123 +0700 +07 m=+0.010295059",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "35.247.155.234",
            "UpdatedEmployee": 242614,
            "UpdatedSource": "internal",
            "UpdatedDate": "2021-12-14T01:44:12.178Z"
        },
        {
            "ProvinceID": 205,
            "ProvinceName": "Bình Dương",
            "CountryID": 1,
            "Code": "65",
            "NameExtension": [
                "Bình Dương",
                "Tỉnh Bình Dương",
                "T.Bình Dương",
                "T Bình Dương",
                "binhduong"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891226 +0700 +07 m=+0.010290886",
            "UpdatedAt": "2019-12-05 15:41:26.891227 +0700 +07 m=+0.010291916",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 204,
            "ProvinceName": "Đồng Nai",
            "CountryID": 1,
            "Code": "61",
            "NameExtension": [
                "Đồng Nai",
                "Tỉnh Đồng Nai",
                "T.Đồng Nai",
                "T Đồng Nai",
                "dongnai"
            ],
            "IsEnable": 1,
            "RegionID": 4,
            "RegionCPN": 1,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891224 +0700 +07 m=+0.010288345",
            "UpdatedAt": "2019-12-05 15:41:26.891225 +0700 +07 m=+0.010289304",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 203,
            "ProvinceName": "Đà Nẵng",
            "CountryID": 1,
            "Code": "511",
            "NameExtension": [
                "Đà Nẵng",
                "TP.Đà Nẵng",
                "TP. Đà Nẵng",
                "TP Đà Nẵng",
                "Thành phố Đà Nẵng",
                "danang",
                "DN"
            ],
            "IsEnable": 1,
            "RegionID": 3,
            "RegionCPN": 7,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891221 +0700 +07 m=+0.010285232",
            "UpdatedAt": "2019-12-05 15:41:26.891222 +0700 +07 m=+0.010286279",
            "CanUpdateCOD": false,
            "Status": 1
        },
        {
            "ProvinceID": 202,
            "ProvinceName": "Hồ Chí Minh",
            "CountryID": 1,
            "Code": "8",
            "NameExtension": [
                "Hồ Chí Minh",
                "TP.Hồ Chí Minh",
                "TP. Hồ Chí Minh",
                "TP Hồ Chí Minh",
                "Thành phố Hồ Chí Minh",
                "HCM",
                "hochiminh",
                "saigon",
                "sg",
                "Ho Chi Minh",
                "ho chi minh"
            ],
            "IsEnable": 1,
            "RegionID": 1,
            "RegionCPN": 6,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891217 +0700 +07 m=+0.010281821",
            "UpdatedAt": "2019-12-05 15:41:26.891218 +0700 +07 m=+0.010283065",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "35.247.155.234",
            "UpdatedEmployee": 242614,
            "UpdatedSource": "internal",
            "UpdatedDate": "2021-12-13T10:08:17.434Z"
        },
        {
            "ProvinceID": 201,
            "ProvinceName": "Hà Nội",
            "CountryID": 1,
            "Code": "4",
            "NameExtension": [
                "Hà Nội",
                "TP.Hà Nội",
                "TP. Hà Nội",
                "TP Hà Nội",
                "Thành phố Hà Nội",
                "hanoi",
                "HN",
                "ha noi"
            ],
            "IsEnable": 1,
            "RegionID": 2,
            "RegionCPN": 8,
            "UpdatedBy": 1718600,
            "CreatedAt": "2019-12-05 15:41:26.891201 +0700 +07 m=+0.010266021",
            "UpdatedAt": "2019-12-05 15:41:26.891214 +0700 +07 m=+0.010278804",
            "CanUpdateCOD": false,
            "Status": 1,
            "UpdatedIP": "35.247.155.234",
            "UpdatedEmployee": 242614,
            "UpdatedSource": "internal",
            "UpdatedDate": "2021-12-14T01:45:29.556Z"
        }
    ]
}

Nếu ai đang phát triển một trang web liên quan đến việc vận chuyển sản phẩm như mua bán hàng online, chắc hẳn sẽ phải tích hợp API của các dịch vụ giao hàng như Giao hàng Nhanh, Viettel Post,...

Trong bài này, mình xin hướng dẫn cách sử dụng API của Giao hàng Nhanh để tính phí vận chuyển hàng hóa.

1. Tạo tài khoản

Để có thể sử dụng được API, chúng ta cần có tài khoản của GHN để lấy user token.

2. API lấy thông tin địa chỉ giao hàng

Để có thể tính toán được chi phí vận chuyển, chúng ta cần phải có input là Quận huyện, Phường xã nơi lấy hàng và nơi nhận hàng.

Để lấy được dữ liệu về tất cả Tỉnh thành phố, Quận huyện, Phường xã của Việt Nam, chúng ta làm như sau:

2.1. API lấy thông tin Tỉnh, Thành Phố

  • Method: GET/POST

  • Header: token

2.2. API lấy thông tin Quận, Huyện

Để lấy thông tin Quận/Huyện của một Tỉnh/ Thành phố nào đó, ta dùng API sau:

  • Method: GET/POST

  • Header: token

  • Param: province_id (int - ID của tỉnh/thành phố vừa lấy được bên trên.)

Ví dụ mình lấy danh sách các quận thuộc thành phố Hà Nội:

2.3. API lấy thông tin Phường, Xã

API này tương tự như API lấy thông tin Quận, Huyện.

  • Method: GET/POST

  • Header: token

  • Param: district_id (int - ID của quận/huyện vừa lấy được bên trên.)

3. API lấy thông tin gói dịch vụ

Việc giao hàng từ vị trí A đến vị trí B sẽ có nhiều cách thức khác nhau như: giao hàng bằng đường bộ, đường hàng không, tàu thủy,... Mỗi phương thức giao hàng sẽ có giá cước khác nhau, nên đây cũng sẽ là input cho API tính cước phí giao hàng.

Để lấy các phương thức giao hàng khả dụng, ta dùng API sau:

  • Method: GET/POST

  • Header: token

  • Param:

    • shop_id: int - ID của shop

    • from_district: int - ID của quận/huyện người gửi

    • to_district: int - ID của quận/huyện người nhận

4. API tính giá cước vận chuyển

  • Method: GET/POST

  • Header: token, shop_id

  • Param:

    • service_id hoặc service_type_id:

      • service_id: int - ID của gói dịch vụ mà bạn chọn (lấy được ở phần 3)

      • service_type_id: Nếu không điền service_id, có thể thay thế bằng 1 trong 3 lựa chọn sau: 1: Express, 2: Standard, 3: Saving

    • insurance_value: int - giá trị của sản phẩn. GHN căn cứ vào giá trị này để tính tiền bảo hiểm cho hàng hóa.

    • coupon: String - Mã giảm giá của GHN. Nếu không có, để rỗng: "" hoặc null

    • to_ward_code: String - ID Phường/ Xã người nhận

    • to_district_id: int - ID Quận/Huyện người nhận

    • from_district_id: int - ID Quận/Huyện người gửi

    • weight: int - trọng lượng hàng hóa (gram)

    • length: int - Chiều dài (cm)

    • width: int - Chiều rộng (cm)

    • height: int - Chiều cao (cm)

Ví dụ, mình sẽ tính phí vận chuyển với thông tin vận chuyển như sau:

{
    "service_id":53321,
    "insurance_value":500000,
    "coupon": null,
    "from_district_id":1542,
    "to_district_id":1444,
    "to_ward_code":"20314",
    "height":15,
    "length":15,
    "weight":1000,
    "width":15
}

Gọi API với params truyền vào như trên, ta được kết quả như sau:

{
    "code": 200,
    "message": "Success",
    "data": {
        "total": 37000,
        "service_fee": 37000,
        "insurance_fee": 0,
        "pick_station_fee": 0,
        "coupon_value": 0,
        "r2s_fee": 0
    }
}

Vậy tổng giá cước khi vận chuyển một kiện hàng có kích thước 15x15x15cm, nặng 1kg từ Hà Đông (Hà Nội) đi Quận 1 (TP Hồ Chí Minh) là 37000đ.

5. Kết

Cảm ơn các bạn đã theo dõi

6. Tài liệu tham khảo

B1: Truy cập vào link sau để đăng ký tài khoản:

B2: Sau khi đăng nhập thành công, bấm vào tên mình ở góc trên bên trái màn hình để xem thông tin cá nhân.

B3: Tại ô Token API, nhấn Xem để lấy Token.

API:

Sau đây mình sẽ gọi thử API này bằng Postman.Copy token vừa lấy được ở phần 1, cho vào Headers. Kết quả trả về thành công sẽ như trong hình.

API:

Vì thành phố Hà Nội có province_id là 201 nên mình sẽ truyền param province_id=201 dưới dạng json vào Body. Kết quả trả về thành công sẽ như sau:

API:

Ví dụ mình lấy danh sách các phường thuộc quận Hà Đông (district_id = 1542)

API:

Cách lấy shop_id sẽ nằm trong màn Quản lý cửa hàng.Ví dụ mình lấy gói dịch vụ khả dụng khi chuyển hàng từ quận Hà Đông (id: 1542) đến quận 1 - TP Hồ Chí Minh (id: 1442):Kết quả trả về cho thấy có 2 gói khả dụng, đó là vận chuyển theo đường hàng không và theo đường bộ.

Cuối cùng cũng đến API tính giá cước

API:

Trên đây, mình đã hướng dẫn cách sử dụng API của GHN để tính giá cước vận chuyển. Ngoài ra còn những API khác cũng rất quan trọng như tính thời gian vận chuyển, tạo đơn hàng,.... thì mời các bạn xem thêm trong doc của GHN: , cách làm cũng tương tự như trên.

🥰
https://sso.ghn.vn/register
https://online-gateway.ghn.vn/shiip/public-api/master-data/province
https://online-gateway.ghn.vn/shiip/public-api/master-data/district
https://online-gateway.ghn.vn/shiip/public-api/master-data/ward
https://online-gateway.ghn.vn/shiip/public-api/v2/shipping-order/available-services
https://online-gateway.ghn.vn/shiip/public-api/v2/shipping-order/fee
https://api.ghn.vn/home/docs/detail
https://api.ghn.vn/home/docs/detail
https://www.youtube.com/watch?v=ha-HzsYPWDU