GIỚI THIỆU
Giới thiệu về công ty Viettel
Tập đoàn Viễn thông Quân đội (Viettel) là doanh nghiệp 100% vốn nhà nước, thuộc quyền sở hữu của Bộ Quốc phòng Viettel hoạt động trong lĩnh vực bưu chính, viễn thông và công nghệ thông tin, đóng vai trò quan trọng trong nền kinh tế quốc phòng.
Viettel là Tập đoàn Viễn thông và Công nghệ thông tin hàng đầu Việt Nam, nổi bật với tốc độ phát triển nhanh chóng, đứng trong Top 15 công ty viễn thông toàn cầu về số lượng thuê bao Hiện tại, Viettel đã mở rộng đầu tư tại 7 quốc gia thuộc 3 châu lục: Châu Á, Châu Mỹ và Châu Phi.
Ngoài lĩnh vực viễn thông, Viettel còn mở rộng hoạt động sang nghiên cứu và sản xuất công nghệ cao, đồng thời tham gia vào các lĩnh vực khác như bưu chính, xây dựng công trình, thương mại và xuất nhập khẩu, cũng như trung tâm dữ liệu IDC.
Viettel là một trong những doanh nghiệp viễn thông hàng đầu thế giới với lượng khách hàng đông đảo Chúng tôi hiểu rằng kết nối là nhu cầu thiết yếu của con người, không chỉ qua thoại và tin nhắn mà còn là công cụ để tận hưởng cuộc sống, sáng tạo và phát triển Với kinh nghiệm phổ cập viễn thông tại nhiều quốc gia đang phát triển, Viettel cam kết nỗ lực kết nối mọi người bất cứ lúc nào, bất kể họ là ai và ở đâu.
Viettel đã khẳng định vị thế của mình trong ngành viễn thông thông qua sự thành công của các công ty con, với hầu hết đều dẫn đầu về lượng thuê bao, doanh thu và cơ sở hạ tầng Điển hình như Metfone tại Campuchia, Telemor tại Đông Timor và Movitel tại Mozambique.
Viettel đã thành lập Tổng Công ty Điện tử thiết bị thông tin (SIGELCO), tiền thân của Tập đoàn Viễn thông Quân đội (Viettel Group), và xây dựng tuyến vi ba băng rộng lớn nhất Việt Nam với tốc độ 140 Mbps cùng với tháp anten cao nhất quốc gia đạt 85m Đây là doanh nghiệp duy nhất được cấp giấy phép kinh doanh đầy đủ các dịch vụ viễn thông tại Việt Nam Viettel cũng hoàn thành đường trục cáp quang Bắc - Nam với dung lượng 2.5 Mbps, ứng dụng công nghệ cao và sáng kiến thu – phát trên một sợi cáp quang Là nhà cung cấp dịch vụ di động, internet, truyền hình và giải pháp CNTT, Viettel còn cung cấp dịch vụ tạo lập hóa đơn điện tử và thanh toán online.
Giới thiệu về hóa đơn điện tử
Hóa đơn điện tử là tập hợp các thông điệp dữ liệu điện tử liên quan đến việc bán hàng hóa và cung ứng dịch vụ Chúng được khởi tạo, lập, gửi, nhận, lưu trữ và quản lý hoàn toàn bằng phương tiện điện tử.
8 đơn điện tử được tạo, lập và xử lý trên hệ thống máy tính của tổ chức có mã số thuế khi thực hiện bán hàng hóa, dịch vụ, đồng thời được lưu trữ theo quy định pháp luật về giao dịch điện tử.
Hóa đơn điện tử, được cung cấp bởi hệ thống xác thực của Tổng cục Thuế, có giá trị pháp lý tương đương hóa đơn giấy và được pháp luật công nhận Đây là hình thức hóa đơn hiện đại, mang lại nhiều ưu điểm và lợi ích cho doanh nghiệp khi sử dụng.
Lợi ích của việc sử dụng hóa đơn điện tử so với hóa đơn giấy :
Tiết kiệm lên đến 90% chi phí hóa đơn hàng năm là điều hoàn toàn khả thi khi doanh nghiệp không cần đầu tư nhiều nhân lực và thời gian cho việc in ấn và phát hành hóa đơn đỏ Nhờ đó, chi phí cho hóa đơn sẽ chỉ còn 1/10 so với trước đây, mang lại lợi ích tài chính đáng kể cho doanh nghiệp.
Giảm thiểu rủi ro trong việc lưu trữ, vận chuyển và bảo quản hóa đơn giúp doanh nghiệp không còn lo lắng về việc mất mát, hư hỏng hay mờ thông tin Doanh nghiệp có thể gửi hóa đơn đến khách hàng một cách nhanh chóng và đơn giản, từ đó đẩy nhanh quá trình thu hồi công nợ Các phương thức gửi hóa đơn đa dạng bao gồm hệ thống email tích hợp trên phần mềm, tin nhắn SMS, xuất file zip để gửi qua email thông thường hoặc sao chép vào USB Ngoài ra, doanh nghiệp cũng có thể in hóa đơn và gửi qua dịch vụ chuyển phát nhanh như cách truyền thống.
Giảm thiểu chi phí chuyển phát nhanh hoặc rủi ro thất lạc hóa đơn khi vận chuyển
Hóa đơn điện tử giúp kế toán viên khởi tạo và nhập thông tin nhanh chóng, loại bỏ nhu cầu viết tay, từ đó giảm thiểu lỗi viết nhầm và sai sót Việc này giúp tiết kiệm thời gian và công sức trong việc xử lý các trường hợp sai hóa đơn.
An toàn thông tin là yếu tố quan trọng, giúp kế toán dễ dàng tra cứu và tìm kiếm hóa đơn mà không cần tốn hàng giờ vào kho lưu trữ Thông tin hóa đơn được bảo mật, đảm bảo tính riêng tư và an toàn cho dữ liệu tài chính.
Giảm 50% công việc của kế toán bằng cách tích hợp dữ liệu đầu vào với các phần mềm kế toán như MÍA, FAST, giúp nhanh chóng tạo ra báo cáo sổ sách mà không cần phải nhập dữ liệu thủ công như trước đây.
Không cần lập báo cáo tình hình sử dụng hóa đơn vì toàn bộ thông tin đã được gửi và lưu trữ trên Tổng cục Thuế khi xác thực Điều này giúp giảm chi phí nhân công cho việc báo cáo và thực hiện các thủ tục hành chính liên quan đến hóa đơn và thuế.
Giới thiệu về hệ thống thanh toán điện tử VIETTEL
Dịch vụ hóa đơn điện tử SInvoice của Viettel mang đến giải pháp quản lý hóa đơn hiệu quả cho doanh nghiệp thông qua nền tảng điện tử Hóa đơn được tạo lập, gửi nhận, lưu trữ và quản lý hoàn toàn bằng phương tiện điện tử, có chữ ký điện tử (ký số) và có giá trị pháp lý tương đương hóa đơn giấy truyền thống Ngoài ra, hóa đơn điện tử cũng có thể được chuyển đổi thành hóa đơn giấy khi cần thiết.
Các điều kiện Viettel đã đảm bảo khi triển khai hóa đơn điện tử :
- Hạ tầng về công nghệ thông tin để lưu trữ và sử dụng chứng từ điện tử và phải có chữ ký điện tử;
- Sử dụng phần mềm hoá đơn điện tử tự xây dựng
- Ban hành Quyết định áp dụng hoá đơn điện tử và gửi Thông báo phát hành hoá đơn điện tử tới cơ quan thuế;
- Thông báo cho khách hàng về định dạng hoá đơn và cách thức truyền nhận hoá đơn điện tử Ưu điểm :
-Giảm thiểu các thủ tục hành chính, lưu trữ Tiết kiệm thời gian thực hiện phân tích, báo cáo
-Có thể gửi hóa đơn cho khách hàng ngay sau khi phát hành qua nhiều hình thức: Email, SMS, Website Tiết kiệm thời gian tìm kiếm
Giảm chi phí in ấn và gửi nhận hóa đơn cho khách hàng giúp tiết kiệm chi phí lưu trữ và bảo quản Hóa đơn điện tử không lo thất lạc, rách, hỏng hay cháy, đồng thời cũng không thể bị làm giả, đảm bảo tính an toàn và minh bạch trong giao dịch.
-Dịch vụ hiện đại, nhanh chóng nhận hóa đơn, thuận tiện tra cứu
Mô tả bài toán và giải pháp
Để sử dụng hóa đơn điện tử VIETTEL, khách hàng cần đến các chi nhánh của tập đoàn viễn thông VIETTEL để đăng ký thông tin cá nhân Sau khi hoàn tất đăng ký, VIETTEL sẽ cung cấp cho khách hàng tài khoản và mật khẩu đăng nhập Với thông tin và tài khoản đã có, khách hàng có thể đăng nhập, thêm thông tin cá nhân và kiểm tra thông tin của mình để sử dụng các dịch vụ của VIETTEL.
Để sử dụng chức năng thêm hàng hóa trên website, người dùng cần điền đầy đủ các trường bắt buộc trong các form nhập Sau khi hoàn tất, người dùng có thể xem chi tiết sản phẩm và thực hiện các chức năng liên quan đến hóa đơn điện tử như lập và xem hóa đơn Nếu thông tin được nhập chính xác, yêu cầu lập hóa đơn sẽ được gửi tới dịch vụ của Viettel và nếu thành công, hóa đơn sẽ được tạo ra.
10 website service viettel sẽ gửi lại cho khách hàng một số thông tin quan trọng như mã hóa đơn, ngày lập, mã số bí mật
Dịch vụ web (Web Service) kết hợp ứng dụng trên máy tính cá nhân và thiết bị di động với các ứng dụng khác, cơ sở dữ liệu và mạng máy tính, tạo ra một hệ thống tính toán hoàn hảo Người dùng có thể làm việc, yêu cầu, phân tích và cập nhật thông tin qua Internet hoặc Wifi Đồng thời, dịch vụ này cũng cho phép người dùng trên toàn thế giới truy cập và sử dụng các chức năng của nó thông qua nền tảng web.
Web Service là một công nghệ truyền thông sử dụng các giao thức mở và tài nguyên phần mềm được xác định qua địa chỉ URL, cho phép thực hiện các chức năng và cung cấp thông tin theo yêu cầu của người dùng Nó bao gồm các mô-đun độc lập phục vụ cho hoạt động của khách hàng và doanh nghiệp, và được triển khai trên server Nền tảng cơ bản của Web Service là XML kết hợp với HTTP, và bất kỳ ứng dụng nào cũng có thể tích hợp thành phần Web Service, được phát triển bằng nhiều ngôn ngữ lập trình khác nhau.
Dịch vụ Web (Web Service) là công nghệ cách mạng hóa hoạt động của các dịch vụ B2B và B2C, với giá trị cốt lõi là cung cấp phương thức truy cập chuẩn cho hệ thống đóng gói và kế thừa Các phần mềm viết bằng ngôn ngữ lập trình khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu qua Internet, tương tự như giao tiếp trong một máy tính Công nghệ xây dựng dịch vụ Web không nhất thiết phải mới, mà có thể kết hợp với các công nghệ như XML, SOAP, WSDL, và UDDI Sự phát triển của Internet đã làm cho dịch vụ Web trở thành công nghệ quan trọng giúp giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống Bài viết sẽ khám phá dịch vụ Web từ khái niệm đến cách thức xây dựng.
1.4.2 Các công nghệ xây dựng dịch vụ Web
1.4.2.1 Đặc điểm của dịch vụ Web
- Cho phép client và server tương tác ngay cả trong môi trường khác nhau
- Phần lớn được xây dựng dựa trên mã nguồn mở và phát triển các chuẩn đã được công nhận
- Nó có thể triển khai bởi 1 phần mềm ứng dụng phía server (vd: PHP, Oracle Application server) a) Ưu điểm
- Cung cấp khả năng hoạt động rộng lớn với các phần mềm khác nhau chạy nên tảng khác nhau
- Sử dụng các giao thức chuẩn mở
- Nâng cao khả năng tái sử dụng
- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại
- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
Việc thúc đẩy hệ thống tích hợp giúp giảm sự phức tạp của hệ thống, hạ giá thành hoạt động và phát triển hệ thống nhanh chóng Đồng thời, điều này cũng tạo ra khả năng tương tác hiệu quả với hệ thống của các doanh nghiệp khác Tuy nhiên, bên cạnh những lợi ích, cũng cần lưu ý đến nhược điểm của quá trình này.
Vào những khoảng thời gian chết của Web Service sẽ dẫn đến những thiệt hại lớn:
- Giao diện không thay đổi
- Có thể lỗi nếu một máy khách không được nâng cấp
- Thiếu các giao thức cho việc vận hành
- Có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó nắm bắt
- Phải quan tâm nhiều hơn tới vấn đề an toàn bảo mật
- Nền tảng cơ bản là XML + HTTP
XML là ngôn ngữ giao tiếp giữa các ngôn ngữ lập trình và nền tảng khác, cho phép mô tả các thông điệp và chức năng phức tạp Trong bối cảnh web service, XML đóng vai trò quan trọng trong việc kết nối và giao tiếp giữa các thành phần khác nhau, giúp các ứng dụng lớn hoạt động hiệu quả trên nhiều hệ điều hành khác nhau.
12 tiếp với nhau Yêu cầu này được đáp ứng với lập trình Java, đây là sự lựa chọn thích hợp cho sự phát triển web service
- Giao thức HTTP là giao thức được sử dụng nhiều nhất trong các giao thức trên internet
- Nền tảng của web service bao gồm các chuẩn: SOAP, WSDL, UDDI, RESTful
1.4.2.3 Đặc điểm của dịch vụ Web a) Mô hình hoạt động
Hình 1.1 Mô hình chung của Web Service
- Giai đoạn triển khai công bố định nghĩa dịch vụ, xây dựng WSDL và triển khai mã thực thi của dịch vụ Web
- Giai đoạn tiến hnàh tìm kiếm và gọi thực thi dịch vụ Web bởi những người sử udnjg dịch vụ
Giai đoạn quản lý dịch vụ bao gồm việc duy trì sự ổn định của dịch vụ, cập nhật thông tin mới và sửa lỗi khi cần thiết Quy trình xây dựng dịch vụ Web bao gồm các bước cụ thể để đảm bảo hiệu quả và chất lượng dịch vụ.
- Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung cấp
- Tạo WSDL cho dịch vụ
- Xây dựng SOAP hoặc REST server
- Đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy và truy xuất
- Client nhận tập tin WSDL và từ đó xây dựng SOAP hoặc REST client để có thể kết nối với SOAP hoặc REST server
- Xây dựng ứng dụng phía client và sau đó gọi thực hiên dịch vụ thông qua việc kết nối tới SOAP hoặc REST server c) XML – eXtensible Markup Language
- Là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị
- Là một dạng chuẩn cho phép lưu các thông tin hướng cấu trúc, được tổ chức dưới dạng thẻ (tag) tương ứng
Các thẻ XML thường không được định nghĩa sẵn mà được tạo ra theo quy ước của người dùng hoặc chương trình tạo ra XML, dựa trên những tiêu chí do người sáng tạo đặt ra.
- Giúp đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet
- Sử dụng các khai báo kiểu dữ liệu DTD (Document Type Dèinition) hay lược đồ Schenma để mô tả dữ liệu d) JSON – JavaScript Object Notation
- Định nghĩa dữ liệu theo ngôn ngữ JavaScript, tiêu chuẩn ECMA-262 năm 1999
- Là một định dạng văn bản đơn giản với các trường dữ liệu được lồng vào nhau
- Dùng để trao đổi dữ liệu giữa các thành phần của một hệ thống tương thích với hầu hết các ngôn ngữ C, C++, C#, Java, JavaScript, Perl, Python…
Vì sao nên sử dụng JSON ?
- Có thể đọc hiểu và dễ dàng tiếp cận (human-readability)
- Dữ liệu truyền tải ngắn gọn so với những định dạng dữ liệu khác như: XML HTML,
Tiết kiệm dung lượng hơn XML, HTML,…
- Dễ dàng chuyển đổi (parse) dữ liệu từ dạng chuỗi (nhận từ server) sang dữ liệu có thể sử dụng được (Object, Number, Array)
- Dễ truy cập nội dung
Các ứng dụng AJAX có khả năng lấy và xử lý dữ liệu từ một web service khác miền Nếu nội dung trả về ở dạng JSON, JavaScript từ trang web của chúng ta có thể truy cập trực tiếp vào dữ liệu đó.
Các kiểu dữ liệu JSON
- JSON có 5 kiểu dữ liệu chính:
- 1 đối tượng là 1 hỗn độn của các cặp tên và giá trị
- 1 đối tượng bắt đầu bởi dấu ngoặc đơn trái { và kết thúc với dấu ngoặc đơn phải }
- Từng tên được theo sau bởi dấu 2 chấm (:) và các cặp tên/giá trị được tách ra bởi dấu phẩy (,)
- 1 đối tượng có thể chứa chiều cặp tên/giá trị (Name/values)
- 1 mảng là 1 tập hợp các giá trị đã được sắp xếp
- 1 mảng bắt đầu bởi dấu mở ngoặc vuông trái [ và kết thúc với dấu ngoặc vuông phải ]
- Các giá trị được cách nhau bởi dấu phẩy (,)
- 1 mảng có thể chứa nhiều đối tượng
{"tenNV":"Truong", "Ho":"Nguyen"}, {"tenNV":"Dai", "Ho":"Dinh"},
Giá trị JSON có thể là:
- 1 số nguyên (integer) hay số thực (floating point)
- 1 chuỗi (nằm trong dấu nháy đôi "")
- 1 luận lý (true hoặc false)
- 1 mảng (nằm trong ngoặc vuông [])
- 1 đối tượng (nằm trong dấu ngoặc nhọn {})
Những cấu trúc này có thể đã được lồng vào nhau
- 1 chuỗi (string) là 1 tập hợp của các số hay mẫu tự Unicode, được bao bọc trong các dấu trích dẫn kép (")
- Dùng dấu chéo (/) để thoát khỏi 1 chuỗi
- 1 ký tự đã được hiển thị như là 1 chuỗi ký tự đơn đọc
1.4.2.4 Kiến trúc của Dịch vụ Web
Web services consist of three main standards: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language), and UDDI (Universal Description, Discovery, and Integration) UDDI is utilized for registering and discovering web services as detailed in WSDL The UDDI interface communicates with the UDDI server using SOAP, allowing SOAP applications to request a web service SOAP messages are transmitted accurately via HTTP and TCP/IP.
Chồng giao thức dịch vụ Web là một tập hợp các giao thức mạng máy tính, giúp định nghĩa, xác định vị trí, thi hành và tạo ra dịch vụ Web tương tác với các ứng dụng hoặc dịch vụ khác Chồng giao thức này bao gồm 4 thành phần chính.
Dịch vụ vận chuyển có vai trò quan trọng trong việc truyền tải thông điệp giữa các ứng dụng mạng, sử dụng các giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức BEEP (Blocks Extensible Exchange Protocol).
Thông điệp XML có vai trò quan trọng trong việc giải mã các dữ liệu theo định dạng XML, giúp ứng dụng tương tác hiệu quả với người dùng Hiện nay, các giao thức phổ biến để thực hiện nhiệm vụ này bao gồm XML-RPC, SOAP và REST.
WSDL, hay ngôn ngữ mô tả dịch vụ Web, được sử dụng để mô tả các giao diện chung cho dịch vụ Web cụ thể Nó dựa trên XML và cho phép truyền tham số cùng các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp.
Giới thiệu về ngôn ngữ PHP và MYSQL
PHP (viết tắt của “PHP: Hypertext Preprocessor”) là một ngôn ngữ lập trình kịch bản mã nguồn mở, chủ yếu được sử dụng để phát triển ứng dụng cho máy chủ Với khả năng nhúng dễ dàng vào trang HTML, PHP rất phù hợp cho các ứng dụng web Ngôn ngữ này được tối ưu hóa cho hiệu suất cao, tốc độ nhanh và cú pháp tương tự như C và Java, giúp lập trình viên dễ dàng làm quen và phát triển các dự án web hiệu quả.
PHP được phát triển từ PHP/FI, một sản phẩm do Rasmus Lerdorf tạo ra vào năm 1994, ban đầu là một tập hợp mã kịch bản đơn giản từ Perl để theo dõi lượt truy cập vào trang cá nhân của ông Bộ mã này được gọi là 'Personal Home Page Tools' Khi cần thêm chức năng, Rasmus đã phát triển một bộ thực thi bằng C lớn hơn, cho phép truy vấn cơ sở dữ liệu và hỗ trợ người dùng trong việc phát triển ứng dụng web đơn giản Ông đã quyết định công bố mã nguồn của PHP/FI để mọi người có thể xem, sử dụng, sửa lỗi và cải tiến mã nguồn.
1.5.2 Hệ quản trị CSDL MYSQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới, được ưa chuộng bởi các nhà phát triển ứng dụng nhờ vào tốc độ cao, độ ổn định và tính dễ sử dụng Hệ thống này có khả năng hoạt động trên nhiều hệ điều hành và cung cấp một loạt các hàm tiện ích mạnh mẽ Với tính bảo mật cao, MySQL là lựa chọn lý tưởng cho các ứng dụng truy cập cơ sở dữ liệu qua internet Người dùng có thể tải về MySQL miễn phí từ trang chủ, với nhiều phiên bản phù hợp cho các hệ điều hành khác nhau.
21 hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ nổi bật, sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để quản lý và truy xuất dữ liệu hiệu quả.
MySQL là hệ quản trị cơ sở dữ liệu phổ biến, hỗ trợ nhiều ngôn ngữ lập trình như NodeJs, PHP và Perl, giúp lưu trữ thông tin hiệu quả cho các trang web được phát triển bằng những ngôn ngữ này.
-Database Master - MySQL Management Tool
CỞ SỞ LÝ THUYẾT
Web service VIETTEL và chức năng
2.1.1 Tìm hiểu về web service Viettel
- Loại web là hoạt động về dịch vụ
Sản phẩm của chúng tôi cung cấp giải pháp quản lý hóa đơn điện tử cho doanh nghiệp, cho phép khởi tạo, lập, gửi, nhận, lưu trữ và quản lý hóa đơn qua phương tiện điện tử Hóa đơn được đăng ký bằng chữ ký điện tử (Ký số) và có giá trị pháp lý tương đương với hóa đơn giấy Ngoài ra, người dùng có thể chuyển đổi hóa đơn điện tử thành hóa đơn giấy khi cần thiết.
2.1.1.2 Yêu cầu kỹ thuật giao tiếp
Webservice dùng chung trong các trường hợp lập hóa đơn gốc, lập hóa đơn điều chỉnh tiền, lập hóa đơn điều chỉnh thông tin, lập hóa đơn thay thế
- Action (POST): /InvoiceAPI/InvoiceWS/createInvoice/{supplierTaxCode}
{supplierTaxCode}: mã số thuế của doanh nghiệp phát hành
Tên trường Kiểu dữ liệu, ràng buộc
Mô tả supplierTaxCode Required: true
Mã mẫu hóa đơn, tuân thủ theo quy định ký hiệu mẫu hóa đơn của Thông tư hướng dẫn thi hành nghị định số 51/2010/NĐ-
- Data: Định dạng JSON hoặc XML
Ví dụ định dạng Json
+ Trường hợp lập hóa đơn gốc
"currencyCode":"VND", "adjustmentType":"1", "paymentStatus":true, "paymentType":"TM", "paymentTypeName":"TM", "cusGetInvoiceRight":true, "buyerIdNo":"123456789", "buyerIdType":"1",
"buyerName":"Đặng thị thanh tâm", "buyerLegalName":"",
"buyerTaxCode":"", "buyerAddressLine":"HN VN", "buyerPhoneNumber":"11111", "buyerEmail":"",
"sellerLegalName":"Đặng thị thanh tâm",
"sellerPhoneNumber":"0123456789", "sellerEmail":"PerformanceTest1@viettel.com.vn", "sellerBankName":"vtbank",
{ "lineNumber":1, "itemCode":"ENGLISH_COURSE", "itemName":"Khóa học tiếng anh", "unitName":"khóa học",
"totalAmountWithTaxInWords":"Ba mươi tám triệu năm trăm nghìn đồng chẵn",
Sản phẩm của chúng tôi cung cấp giải pháp quản lý hóa đơn điện tử cho doanh nghiệp, cho phép khởi tạo, lập, gửi, nhận, lưu trữ và quản lý hóa đơn một cách hiệu quả Hóa đơn được đăng ký bằng chữ ký điện tử (Ký số), đảm bảo giá trị pháp lý tương đương với hóa đơn giấy truyền thống Ngoài ra, chúng tôi cũng hỗ trợ chuyển đổi hóa đơn điện tử thành hóa đơn giấy khi cần thiết.
- Webservice Lấy file hóa đơn
-Action (POST) URL: /InvoiceAPI/InvoiceUtilsWS/getInvoiceRepresentationFile
-Các tham số của đối tượng CommonDataInput
Tên tham số Kiểu dữ liệu, ràng Mô tả supplierTaxCode Required : true
Mã số thuế của doanh nghiệp xuất hóa đơn
Minlength : Maxlength : 15 Format : [a-zA-Z0-9/]+ invoiceNo Required : true
Mã số hóa đơn pattern Required : true
Mã mẫu hóa đơn, tuân thủ theo quy định ký hiệu mẫu hóa đơn của Thông tư hướng dẫn thi hành nghị định số 51/2010/NĐ-CP transactionUuid Required : false
Chuỗi xác nhận fileType Required : true
DataType: String Format : ZIP or PDF
Loại file muốn tải về paid Required : false
True – Đã thanh toán False – Chưa thanh toán
Chú ý: Để biết được tình trạng sử dụng hóa đơn của 1 dải cần một số thông tin như sau:
-supplierTaxCode: Mã số thuế của doanh nghiệp
-invoiceNo: Mã số hóa đơn
-fileType: Loại file muốn tải về
-pattern: Mã mẫu hóa đơn
Ví dụ mẫu và các trường dữ liệu:
2.1.2 Xây dựng 1 số lớp giao diện
2.1.2.1 Dịch vụ lưu trữ trực tuyến (Hosting)
Dịch vụ lưu trữ trực tuyến mà em chọn là hosting miễn phí từ 000webhost.com do lý do chi phí Hiện tại, em chưa áp dụng vào thực tiễn và dự định sẽ chuyển sang sử dụng hosting trả phí sau này.
2.1.2.2 Mô tả nghiệp vụ Dịch vụ web (Webservice)
- Ủy quyền: Tài khoản và mật khẩu của khách hàng phải được dùng phương thức xác thực Basic Authentication
- Giao thức giao tiếp: chuẩn RESTful
- Method: Tùy thuộc đường link lựa chọn POST hoặc GET
- Dữ liệu gửi lên server: có thể là JSON hoặc FormParam
- Gửi dữ liệu dạng JSON cần khai báo kiểu: Content-Type: application/json
- Gửi dữ liệu dạng FormParam cần khai báo kiểu: Content-Type: application/x- www-form-urlencoded
- Nhận dữ liệu cần khai báo kiểu: Accept: application/json a) Xác thực Basic Authentication
Xác thực là một phương thức phổ biến trên nền tảng ứng dụng Web, xuất hiện khi Client yêu cầu thông tin cần được xác thực.
To access data resources secured by Basic Authentication, users must send a request that includes their username and password attached in the header, with this input string being encoded.
REST, viết tắt của REpresentational State Transfer, là một kiểu kiến trúc lập trình được giới thiệu lần đầu vào năm 2000 trong luận văn Tiến sĩ của Roy Fielding, đồng sáng lập giao thức HTTP Kiến trúc này định nghĩa các quy tắc thiết kế web service tập trung vào tài nguyên, trong đó mọi thứ đều được xem là tài nguyên và được xác định thông qua URI Tài nguyên có thể được biểu diễn dưới nhiều định dạng khác nhau như văn bản, XML, JSON, và các ứng dụng sử dụng kiến trúc này được gọi là RESTful.
- REST là một bộ quy tắc để tạo ra một ứng dụng Web Service, mà nó tuân thủ 4 nguyên tắc thiết kế cơ bản sau:
- Sử dụng các phương thức HTTP một cách rõ ràng
- Hiển thị cấu trúc thư mục như các URls
- Truyền tải JavaScript Object Notation (JSON), XML hoặc cả hai
- RESTful Web Service là các Web Service được viết dựa trên kiến trúc REST
REST has become widely adopted as a replacement for SOAP and WSDL-based Web Services RESTful Web Services are lightweight, making them easy to scale and maintain.
Mô hình Client - Server tách biệt các thành phần, giúp đơn giản hóa quá trình thực hiện và giảm độ phức tạp trong kết nối Điều này nâng cao hiệu quả điều chỉnh hiệu năng và tăng khả năng mở rộng cho máy chủ.
Stateless có nghĩa là server và client không lưu giữ trạng thái của nhau, yêu cầu mỗi request phải được gửi kèm đầy đủ thông tin để server có thể hiểu và xử lý Điều này giúp hệ thống dễ dàng phát triển, bảo trì và mở rộng mà không cần quản lý trạng thái của client Tuy nhiên, nhược điểm là làm tăng lưu lượng thông tin cần truyền tải giữa client và server.
Khả năng caching giúp server giảm tải xử lý request bằng cách lưu trữ các response, từ đó client có thể nhận thông tin nhanh hơn.
Chuẩn hóa giao diện giúp đơn giản hóa và tách biệt kiến trúc, cho phép các phần phát triển độc lập Các nhà phát triển đã tạo ra API cơ bản để thiết kế dịch vụ REST, cho phép kết nối với cả ứng dụng web và di động Tuy nhiên, việc chuẩn hóa cũng có thể làm giảm khả năng tối ưu hóa từng kết nối.
Phân lớp hệ thống giúp giảm độ phức tạp của hệ thống và tạo điều kiện cho các thành phần tách biệt, từ đó dễ dàng mở rộng Mỗi lớp chỉ tương tác trực tiếp với lớp ngay trên và dưới nó.
Tại sao nên dùng REST?
Web design previously relied on SOAP (Simple Object Access Protocol) and WSDL (Web Service Definition Language), but REST has now emerged as a more optimized solution compared to these two methods.
- Rõ ràng về URL (REST URL đại diện cho resource xác định chứ không phải hành động)
- Trả về nhiều định dạng khác nhau như: html, xml,
- Code ngắn gọn dễ hiểu
- Hiệu suất tốt, tin cậy, dễ phát triển
Do REST tập trung vào tài nguyên, nên ta sẽ tìm hiểu qua một chút về tài nguyên trong REST Các đặc tính của Resource:
- Hiện thị dữ liệu: Dữ liệu có thể được thể hiện ở nhiều dạng khác nhau ( binary, JSON, XML v.v)
- Nhận diện rõ ràng: Mỗi URL tại một thời điểm chỉ trả về 1 tài nguyên xác định
- Dữ liệu điều khiển : cache-control
- Dữ liệu mô tả (metadata) : Kiểu nội dung, lần cập nhật mới v.v
REST yêu cầu lập trình viên xác định rõ ý định thông qua các phương thức HTTP, thường bao gồm việc lấy, trèn, cập nhật hoặc xóa dữ liệu Khi thực hiện các ý định này, cần lưu ý các quy tắc sau:
- Để tạo một tài nguyên trên máy chủ, bạn cần sử dụng phương thức POST
- Để truy xuất một tài nguyên, sử dụng GET
- Để thay đổi trạng thái một tài nguyên hoặc để cập nhật nó, sử dụng PUT
- Để huỷ bỏ hoặc xoá một tài nguyên, sử dụng DELETE
Mặc dù các nguyên tắc REST không bắt buộc, bạn vẫn có thể sử dụng phương thức GET để yêu cầu lấy, chèn, sửa hoặc xóa dữ liệu trên server Tuy nhiên, những nguyên tắc này được đưa ra nhằm mục đích làm cho mọi thứ trở nên rõ ràng và dễ hiểu hơn.
- Kiểu dữ liệu như đã được giới thiệu ở mục 1.3.6 em chọn sử dụng 1 loại là JSON
- Lý do là JSON dễ học và chỉ cần sử dụng 1 hàm chuyển sang JSON và hàm chuyển về là xong
{"supplierTaxCode":"0100109106- 932","invoiceNo":"AA\/18E0000011","strIssueDate":"1532321346679","fileTy pe":"ZIP","reservationCode":"RHZW4E7E2Y"}
Kết quả: stdClass Object ( [supplierTaxCode] => 0100109106-932 [invoiceNo] => AA/18E0000011 [strIssueDate] => 1532321346679 [fileType] => ZIP [reservationCode] => RHZW4E7E2Y )
Gửi dữ liệu dạng JSON
- Với những link Web Service yêu cầu dữ liệu đầu vào là JSON thì ta cần thêm cú pháp Content-Type: application/json vào phần Header
Gửi dữ liệu dạng FormParam
- Với những link Web Service yêu cầu dữ liệu đầu vào là FormParam thì ta cần thêm cú pháp Content-Type: application/x-www-form-urlencoded vào phần Header
Nhận dữ liệu phản hồi
- Tất cả dữ liệu trả về từ server đều là JSON Ta cần thêm cú pháp Accept: application/json vào phần Header
Hình 2.8 Mô hình hoạt động
Bước 1 Người dùng nhập dữ liệu vào form chức năng
Bước 2 Khi ấn nút thao tác (submit) sẽ được chuyển dữ liệu tới tệp tin xử lý tương ứng
Phân Tích Thiết Kế Hệ Thống Website
Mô hình nghiệp vụ
Hình 3.1 Biểu đồ ngữ cảnh
Nếu người lập hóa đơn chưa muốn lập hóa đơn ngay, họ có thể lưu lại thông tin hóa đơn dưới dạng nháp trên hệ thống Khi khách hàng cần lập hóa đơn đã lưu, họ chỉ cần truy cập vào quản lý hóa đơn, điều chỉnh thông tin cho phù hợp và tiến hành lập hóa đơn theo yêu cầu.
3.1.2 Sơ đồ phân rã chức năng
Hình 3.2 Sơ đồ phân rã chức năng
2.1 Khi đã có đầy đủ các yếu tố thông tin về hoạt động mua bán thì doanh nghiệp có thể khởi tạo hóa đơn điện tử
2.2 Trường hợp người lập hóa đơn chưa muốn lập hóa đơn ngay mà muốn lưu lại thì hóa đơn đó thì chọn chức năng lưu nháp và các thông tin về hóa đơn sẽ được lưu lại trên hệ thống
2.3 Khi doanh nghiệp thực hiện yêu cầu lập hóa đơn, hệ thống tiếp nhận thông tin và xử lý nghiệp vụ Sau đó gửi yêu cầu lập hóa đơn tới WebService của VIETTEL Lúc này WebService sẽ xử lý dữ liệu và phản hồi kết quả Hệ thống nhận được phản hồi của
Nếu WebService hoạt động thành công, nó sẽ lưu trữ dữ liệu hóa đơn với trạng thái "đã lập" và thông báo cho khách hàng về thông tin hóa đơn.
3.1.3 Ma trận thực thể chức năng
Danh sách hồ sơ dữ liệu
Ký hiệu Tên hồ sơ dữ liệu
Các thực thể dữ liệu a Thông tin doanh nghiệp b Hóa đơn c Hóa đơn nháp d File hóa đơn
Các chức năng nghiệp vụ a b c d
3.1.5 Mô hình thực thể ER
Doanh nghiệp có thuộc tính :
Mã số thuế, Tên chủ doanh nghiệp, Tên doanh nghiệp, Mã bưu điện, Số điện thoại, Email, Tên ngân hang, Số tài khoản, Trang web
Hàng hóa có thuộc tính :
Mã số hang, Dòng hang, Đơn vị tính, Tên hang, Đơn giá, Chiết khấu, Tiền thuế,
Hóa đơn có thuộc tính :
Mẫu hóa đơn, Số hóa đơn, Ngày lập, Tổng tiền, Loại tiền tệ, Trạng thái, Mã số bí mật
Phần Tích Thiết Kế Hệ Thông Website
Website là tập hợp các trang web bao gồm văn bản, hình ảnh, video và flash, thường nằm trong một tên miền hoặc tên miền phụ Những trang web này được lưu trữ trên máy chủ web và có thể truy cập qua Internet.
Website tĩnh là loại website mà người quản trị không thể tự ý thay đổi nội dung và hình ảnh mà không có kiến thức cơ bản về HTML Nó được xây dựng hoàn toàn dựa trên nền tảng HTML và CSS, có thể thêm hiệu ứng từ Javascript nếu cần thiết.
Website động là loại website được phát triển với bộ công cụ quản trị, cho phép webmaster dễ dàng tùy chỉnh nội dung và hình ảnh Được thiết kế bởi lập trình viên, website động có khả năng thay đổi nội dung thường xuyên Các công nghệ và ngôn ngữ phổ biến để xây dựng website động bao gồm PHP, ASP.NET và Java.
3.2.2 Quá trình phát triển của một website
Website là kết quả của nhiều hoạt động trong quá trình phát triển hệ thống Vòng đời phát triển hệ thống mô tả quá trình hình thành và phát triển của một website từ khi bắt đầu cho đến khi ngừng hoạt động Phương pháp này giúp quản lý và tối ưu hóa từng giai đoạn trong quá trình phát triển website.
Phát triển các trang web bao gồm ba giai đoạn chính: phân tích, thiết kế và triển khai hệ thống thông tin Mỗi giai đoạn đóng vai trò quan trọng trong quá trình tạo ra một trang web hiệu quả và đáp ứng nhu cầu người dùng.
Quá trình phát triển hệ thống bao gồm các giai đoạn quan trọng như khảo sát dự án, phân tích hệ thống, thiết kế, thực hiện, kiểm thử, vận hành và bảo trì Mỗi pha đóng vai trò thiết yếu trong việc đảm bảo hệ thống hoạt động hiệu quả và đáp ứng nhu cầu của người dùng.
3.1.3 Các bước thiết kế và phát triển trang web
Bước 1: Thu thập thông tin :
Bước đầu tiên để thiết kế một trang web thành công là thu thập thông tin Nhiều yếu tố cần được xem xét để tạo ra giao diện và cảm nhận của trang web một cách hiệu quả.
Bước đầu tiên trong quá trình thiết kế web là rất quan trọng, vì nó liên quan đến việc hiểu rõ công ty mà trang web được tạo ra cho Bạn cần xác định mục tiêu kinh doanh và ước mơ của mình, cũng như cách mà trang web có thể hỗ trợ đạt được những mục tiêu đó Việc đặt ra nhiều câu hỏi sẽ giúp nhà thiết kế hiểu rõ hơn về doanh nghiệp và nhu cầu của bạn đối với trang web.
Một số điều cần xem xét là:
Mục đích của trang web là gì? Bạn muốn cung cấp thông tin, quảng bá dịch vụ, bán một sản phẩm …?
Mục tiêu chính khi xây dựng trang web này là kiếm tiền hoặc chia sẻ thông tin.
Khán giả mục tiêu là nhóm người cụ thể giúp bạn đạt được mục tiêu của mình Hình dung "lý tưởng" của người dùng truy cập trang web sẽ giúp bạn xác định độ tuổi, giới tính và sở thích của họ Điều này sẽ hỗ trợ bạn trong việc lựa chọn phong cách thiết kế phù hợp nhất cho trang web của mình.
Đối tượng mục tiêu sẽ tìm kiếm thông tin cụ thể trên trang web của bạn, bao gồm sản phẩm, dịch vụ, hoặc các tùy chọn đặt hàng trực tuyến đặc biệt.
Dựa trên thông tin thu thập từ giai đoạn đầu, bạn cần xây dựng một kế hoạch cho trang web của mình Đây là thời điểm quan trọng để phát triển bản đồ trang web.
Bản đồ trang web là danh sách tất cả các lĩnh vực chủ đề chính và phụ của trang web, giúp hướng dẫn nội dung và phát triển hệ thống định vị dễ hiểu Khi thiết kế trang web, cần chú ý đến người dùng cuối – khách hàng của bạn, vì họ sẽ tìm hiểu về dịch vụ hoặc sản phẩm của bạn Một giao diện người dùng tốt sẽ tạo điều kiện thuận lợi cho việc điều hướng trang web, là yếu tố cơ bản cho trải nghiệm người dùng.
Trong giai đoạn lập kế hoạch, thiết kế web sẽ giúp bạn xác định công nghệ cần sử dụng Các yếu tố như hình thức tương tác, thương mại điện tử và flash sẽ được xem xét kỹ lưỡng trong quá trình lập kế hoạch cho trang web của bạn.
Dựa trên thông tin đã thu thập, đây là thời điểm xác định giao diện cho trang web của bạn Đối tượng mục tiêu là yếu tố quan trọng cần xem xét; ví dụ, một trang web dành cho thanh thiếu niên sẽ có thiết kế khác biệt so với một trang cho tổ chức tài chính Trong giai đoạn thiết kế, việc tích hợp các yếu tố như logo và màu sắc của công ty là cần thiết để tăng cường bản sắc thương hiệu trên trang web.