1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát Triển Hệ Thống Thanh Toán Điện Tử Qua Điện Thoại Di Động Sử Dụng Nfc.pdf

100 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát Triển Hệ Thống Thanh Toán Điện Tử Qua Điện Thoại Di Động Sử Dụng Nfc
Tác giả Ngô Quang Trung
Người hướng dẫn TS. Phạm Văn Tiến
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Truyền Thông
Thể loại Luận Văn Thạc Sĩ Kỹ Thuật
Năm xuất bản 2014
Thành phố Hà Nội
Định dạng
Số trang 100
Dung lượng 2,7 MB

Cấu trúc

  • CHƯƠNG 1: TỔ NG QUAN V Ề THƯƠNG MẠ I ĐI Ệ N T .............................. 11 Ử 1.1. T ng quan v ổ ề thương mạ i đi ệ n t ử (11)
    • 1.1.1. Khái niệm thương mại điệ ử n t (11)
    • 1.1.2. Các phương tiệ n th c hi ự ện thương mạ i đi ệ n t ........................................ 13 ử 1.1.3. H ệ thống các hoạ ộng cơ bản trong thương mại điệt đ n t ....................... 15 ử 1.1.4. Qúa trình phát triển thương mại điệ ử n t (0)
    • 1.1.5. Các vấn đề chi ến lược trong thương mại đ ệ ử i n t (18)
    • 1.2. T ng quan v ổ ề thanh toán điệ n t ................................................................. 20 ử 1. T ng quan v ổ ề thanh toán điệ ử n t (20)
      • 1.2.1.1. Cuộc cách mạ ng v ề thanh toán (20)
      • 1.2.1.2. Khái niệ n v ề thanh toán điệ ử n t (21)
      • 1.2.1.3. Quy trình thanh toán bằ ng th ẻ tín dụ ng tr c tuy n ........................... 22 ự ế 1.2.1.4. R ủi ro chấ p nh n thanh ậ toán thẻ c tuy n....................................... 25 trựế 1.2.2. M ột số hình thức thanh toán điệ ử n t phổ ế bi n (22)
      • 1.2.2.1. Thanh toán bằ ng d ị ch v ụ ủ c a PayPal (0)
      • 1.2.2.2. Thanh toán điệ ử ử ụ n t s d ng th ẻ thông minh (0)
      • 1.2.2.3. Thanh toán điệ ử ằ n t b ng th ẻ thông minh (0)
      • 1.2.2.4. Thanh toán điệ ử ằ n t b ng th ẻ mua hàng (0)
    • 2.1. Phân tích công nghệ NFC (29)
      • 2.1.1. Mô tả công nghệ (29)
        • 2.1.1.1. S ự phát triể n c ủa công nghệ NFC (31)
      • 2.1.2. Khuôn dạng trao đổi dữ u NFC ............................................................ 31 liệ 1. Mào đầ u b n nghi NDEF (NDEF Record Header) ........................... 32 ả 2. Các dạng payload đã biết (Well-known Type) (0)
        • 2.1.2.3. Các khuôn dạ ng m r ng .................................................................. 34 ở ộ 2.1.3. Việc ứ ng d ụng công nghệ NFC (34)
        • 2.1.3.1. Các trườ ng h p s d ng thong d ng ................................................. 34 ợ ử ụ ụ 2.1.3.2. Chuy n giao kể ế t n ố i (0)
        • 2.1.3.3. Mô phỏ ng Smart Card (35)
      • 2.1.4. M ộ t s ố công nghệ tương tự (36)
        • 2.1.4.1. Barcode (36)
        • 2.1.4.2. Bluetooth (37)
    • 2.2. Phân tích nề n t ả ng h ệ điều hành di độ ng (37)
      • 2.2.1. B c c ....................................................................................................... 37 ố ụ 2.2.2. Đặ c t ả ứ ng d ng m u ............................................................................... 37 ụẫ 2.2.3. iOS (37)
      • 2.2.4. Android (38)
        • 2.2.4.1. Phân tích API (39)
        • 2.2.4.2. Triể n khai th ực hiệ n (0)
      • 2.2.5. Windows Phone 8 (42)
        • 2.2.5.1. Phân tích API (43)
        • 2.2.5.2. Triển khai nguyên mẫ u (45)
      • 2.2.6. BlackBerry 10 (45)
        • 2.2.6.1. Phân tích API (46)
        • 2.2.6.2. Triển khai nguyên mẫ u (49)
      • 2.2.7. So sánh giữa các nền tàng (49)
  • CHƯƠNG 3: PHÂN TÍCH, THIẾ T K PH N M Ế Ầ ỀM THANH TOÁN ĐIỆ N (0)
    • 3.1.1. C ấu trúc của Eclipse và các khái niệm (52)
      • 3.1.1.1. Eclipse Workbench (Bàn làm việ c c a Eclipse): .............................. 52 ủ 3.1.1.2. Plugins (0)
      • 3.1.1.3. Perspective (ph ối cảnh), views (khung nhìn), editor (trình soạ n th o) . ả (53)
    • 3.1.2. Hướ ng d ẫn cài đặt Eclipse và các công cụ ỗ h tr ợ ập trình ứ l ng d ng ụ (54)
    • 3.2. Phân tích cấu trúc cơ bả n c a m ủ ộ t ứ ng d ụng trên nề n t ng h ả ệ điều hành (56)
      • 3.2.1. Thu ậ t ng ữ Android (0)
      • 3.2.2. Phân tích mộ t d ự án ứ ng d ng m ụ ẫu ―Hello Android‖ (0)
        • 3.2.2.1. T o m t Thi ạ ộ ế t b ị ả o Android (58)
        • 3.2.2.2. T o m ạ ột dự án Android mớ i (0)
        • 3.2.2.3. Các widget Android (63)
    • 3.3. Thi ế t k ế ệ h th ống thanh toán điệ n t ử NFC Payment (64)
      • 3.3.1. Thiế t k module ng d ng qu ế ứ ụ ản lý dữ liệu trên thiế t b ị di độ ng h ệ điều hành Android (65)
        • 3.3.1.1. Thi ế t k ế ệ cơ sở ữ h d li ệu hướng đố i tư ợng chương trình (0)
        • 3.3.1.2. Thi ế t k ế lưu đồ thu ật toán chương trình (67)
        • 3.3.1.3. Thi ế t k ế ử c a s ổ log in: - ....................................................................... 67 3.3.1.4. Thiết kế ửa sổ ạo tài khoản ngườ ử ụ c t i s d ng m ............................ 68 ới: 3.3.1.5. Thiết kế ửa sổ ạo cơ sở ữ c t d u th m ........................................ 68 liệẻ ới (0)
  • CHƯƠNG 4: XÂY DỰ NG H TH Ệ ỐNG THANH TOÁN ĐIỆ N T NFC Ử (0)
    • 4.1. Xây dự ng Server qu ản lý tài khoản Khách hàng và Client bán hàng (0)
      • 4.1.1. Xây dự ng Server qu ản lý tài khoản Khách hàng (70)
      • 4.1.2. Xây dựng Client bán hàng (71)
    • 4.2. Xây dự ng ng d ứ ụng khách hàng trên thiế t b ị di độ ng h ệ điều hành (73)
      • 4.2.1. Xây dựng cơ sở ữ d u ............................................................................ 73 li ệ 1. Xây dựng cơ sở ữ d li ệu người dùng (73)
        • 4.2.1.2. Xây dựng cơ sở ữ d li ệu ngườ i th ẻ (78)
      • 4.2.2. Xây dựng các Activity ng d ng ............................................................. 84 ứ ụ 1. Xây dự ng Activity log- ......................................................................... 84 in 2. Xây dự ng Activity t ạo tài khoản người dùng mới (Insert_New_User) (0)
        • 4.2.2.3. Xây dự ng Activity t ạo cơ sở ữ d u th m i (Insert_New_Card): .......... 90 li ệ ẻ ớ 4.2.2.4. Xây dự ng Activity thi ế t l ậ p k ế t n ố i NFC P2P v ớ i Client (0)
    • 4.3. Xây dựng chương trình ghi URL lên NFC Tag (96)

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Ngô Quang Trung PHÁT TRIỂN HỆ THỐNG THANH TOÁN ĐIỆN TỬ QUA ĐIỆN THOẠI DI ĐỘNG SỬ DỤNG NFC Chuyên ngành Kỹ thuật truyền thông LUẬN VĂN THẠC SĨ KỸ[.]

TỔ NG QUAN V Ề THƯƠNG MẠ I ĐI Ệ N T 11 Ử 1.1 T ng quan v ổ ề thương mạ i đi ệ n t ử

Khái niệm thương mại điệ ử n t

a) Khái niệm thương mại điện tử theo nghĩa hẹp:

Thương mại điện tử, theo nghĩa hẹp, đề cập đến việc mua bán hàng hóa và dịch vụ thông qua các phương tiện điện tử và mạng viễn thông, chủ yếu là máy tính và internet.

Cách hiểu này tương tự ớ v i m t s ộ ố các quan điểm như:

Thương mại điện tử là các giao dịch thương mại liên quan đến hàng hóa và dịch vụ được thực hiện qua các phương tiện điện tử.

Thương mại điện tử là quá trình thực hiện các giao dịch thông qua một nền tảng máy tính, trong đó bao gồm việc chuyển giao quyền sở hữu hàng hóa và dịch vụ.

Thương mại điện tử, theo nghĩa hẹp, là việc các doanh nghiệp sử dụng công nghệ điện tử và Internet để thực hiện giao dịch mua bán hàng hóa và dịch vụ Các giao dịch này có thể diễn ra giữa doanh nghiệp với doanh nghiệp (B2B), doanh nghiệp với khách hàng cá nhân (B2C), hoặc giữa các cá nhân với nhau (C2C) Trong khi đó, theo nghĩa rộng, thương mại điện tử bao gồm nhiều hình thức và khái niệm khác nhau, phản ánh sự phát triển đa dạng của lĩnh vực này trên toàn cầu.

Liên minh Châu Âu (EU) định nghĩa thương mại điện tử bao gồm các giao dịch thương mại thực hiện qua mạng viễn thông và các phương tiện điện tử Thương mại điện tử không chỉ bao gồm giao dịch gián tiếp với hàng hóa hữu hình mà còn cả giao dịch trực tiếp với hàng hóa vô hình.

Tổ chức Hợp tác và Phát triển Kinh tế (OECD) nhấn mạnh rằng thương mại điện tử liên quan đến các giao dịch thương mại giữa tổ chức và cá nhân, dựa trên việc xử lý và truyền tải dữ liệu đã được số hóa Các giao dịch này diễn ra thông qua các mạng mở như Internet hoặc các mạng đóng có cổng thông với mạng mở như AOL.

Thương mại điện tử, hay còn gọi là hoạt động kinh doanh điện tử, bao gồm nhiều hình thức như mua bán hàng hóa và dịch vụ trực tuyến, giao hàng qua mạng, chuyển tiền điện tử (EFT), giao dịch cổ phiếu điện tử (EST), vận đơn điện tử (EB/L), đấu giá thương mại, hợp tác thiết kế và sản xuất, tìm kiếm nguồn lực trực tuyến, mua sắm trực tuyến, và marketing cũng như dịch vụ khách hàng trực tuyến.

Mô hình IMBSA này đề ập đến các lĩnh vự c c cần xây dựng để phát triển Thương mại điệ ử như sau:n t

Cơ sở hạ tầng công nghệ thông tin và truyền thông là yếu tố quan trọng cho sự phát triển của thương mại điện tử, với các dịch vụ Internet băng thông rộng như ADSL và cáp quang là ví dụ điển hình Việc phổ cập dịch vụ Internet là điều kiện tiên quyết để thúc đẩy thương mại điện tử Do đó, UNCTAD đã xác định phát triển cơ sở hạ tầng công nghệ thông tin và truyền thông là lĩnh vực ưu tiên hàng đầu cho sự phát triển của thương mại điện tử.

Thông điệp dữ liệu là các loại thông tin được truyền tải qua mạng và Internet trong thương mại điện tử, bao gồm hợp đồng điện tử, chào hàng, hỏi hàng và chứng từ thanh toán điện tử Tại Việt Nam và nhiều quốc gia khác, những thông điệp dữ liệu này khi được sử dụng trong các giao dịch thương mại điện tử đều có giá trị pháp lý Điều này được quy định trong các luật quốc tế về giao dịch điện tử và Luật Thương mại điện tử của các quốc gia, cũng như trong các quy định liên quan đến giao dịch điện tử tại Việt Nam.

Các quy tắc cơ bản trong thương mại điện tử bao gồm những luật điều chỉnh các lĩnh vực liên quan đến giao dịch điện tử trong một quốc gia, khu vực hoặc trên toàn cầu Tại Việt Nam, các luật quan trọng như Luật Giao dịch điện tử (3/2006) và Luật Công nghệ Thông tin (6/2006) đang được áp dụng Ngoài ra, Việt Nam cũng tham gia vào các hiệp định thương mại điện tử khu vực như EU và ASEAN, nhằm thúc đẩy sự phát triển và hợp tác trong lĩnh vực này.

Công nghệ thông tin của WTO v vi c th a nhề ệ ừ ận giá trị pháp lý khi giao dịch xuyên

―biên giới‖ quốc gia c a WTO ủ

Các quy tắc riêng trong lĩnh vực thương mại điện tử, được gọi là quy tắc ngành (S), bao gồm các điều chỉnh về chứng thực điện tử, chữ ký điện tử và ngân hàng điện tử, đặc biệt là trong thanh toán điện tử Những quy tắc này được thiết lập để đảm bảo tính hợp pháp và an toàn trong các giao dịch thương mại điện tử.

Việt Nam có thể áp dụng các nghị định chi tiết về từng lĩnh vực thương mại quốc tế, như Quy tắc xuất trình chứng từ trong thanh toán quốc tế (UCP), quy tắc sử dụng vận đơn điện tử (Bolero), và các quy định về giao dịch điện tử trong Incoterms 2000 và Incoterms ® 2010.

Các ứng dụng Thương mại điện tử bao gồm các mô hình kinh doanh thương mại điện tử được phát triển và điều chỉnh để giải quyết những vấn đề cụ thể Ví dụ, các mô hình như Cổng Thương mại điện tử quốc gia (ECVN.gov), Alibaba.com, các nền tảng B2C như golmart.com.vn và Amazon.com, hay mô hình C2C như eBay.com, cũng như các website của các công ty xuất nhập khẩu và các giải pháp lớn như CRM, SCM, và ERP đều được xem là các ứng dụng Thương mại điện tử.

WTO định nghĩa thương mại điện tử là hoạt động mua bán, quảng cáo và phân phối sản phẩm thông qua Internet Mặc dù giao nhận hàng hóa có thể thực hiện qua các phương thức truyền thống hoặc giao nhận trực tiếp, nhưng quá trình này vẫn được hỗ trợ bởi công nghệ số hóa.

AEC (Hiệp hội Thương mại Điện tử) định nghĩa thương mại điện tử là việc tiến hành kinh doanh thông qua các công cụ điện tử Định nghĩa này rất rộng, bao gồm tất cả các hoạt động kinh doanh từ những giao dịch đơn giản như một cuộc điện thoại cho đến những trao đổi thông tin phức tạp qua EDI.

1.1.2 Các phương tiện thực hiện thương mại điện t ử

Các vấn đề chi ến lược trong thương mại đ ệ ử i n t

Theo nghiên cứu của UNCTAD năm 2003, việc phát triển thương mại điện tử ở các nước đang phát triển gặp nhiều thách thức Trong khi đó, các nước phát triển với hạ tầng công nghệ thông tin tiên tiến có thể triển khai thương mại điện tử dễ dàng hơn Để thúc đẩy thương mại điện tử, các quốc gia cần chú trọng vào bốn yếu tố chính: Nhận thức, Nhân lực, Mạng lưới và Nội dung Nâng cao nhận thức về vai trò của thương mại điện tử là rất quan trọng, giúp tăng tốc độ triển khai và phát triển lĩnh vực này Thương mại điện tử yêu cầu sự hợp tác cao giữa các bên liên quan để thúc đẩy hoạt động thương mại và phát triển công nghệ thông tin Để đạt được điều này, cần có đội ngũ chuyên môn giỏi và các hoạt động sản xuất, kinh doanh cũng cần được cải tiến trong quá trình triển khai thương mại điện tử.

3 Thương mạ ộng tác (ci c -Business) Integrating / Collaborating

Kết nối các bộ ph n trong doanh nghi p ậ ệ

2 Thương mại giao d ch -Commerce) ị (t

Ký kết Hợp đồng qua m ng (E-contract) ạ

Thanh toán điệ ửn t -payment) (E

1 Thƣowng mại thông tin (i-Commerce)

Thông tin (Information), lập trang Web, tham gia vào các sàn giao dịch Trao đổi, đàm phán qua mạng, đặt hang qua e-mail, chat, forum

Hình 1.3 Các bước triển khai thương mại điện t ử

M i quan ố tâm của các nước đang phát tri ển và kém phát triể n

M i quan ố tâm của các nước phát triể n và các tập đoàn công nghiệ p hang đầ u

 Các thiế t b ị có khả năng truy cậ p internet (nhƣ máy tính cá nhân, PDA)

 Chính sách và kế ho ch c ạ ủa Chính phủ ề phát triển ngày v công nghệ thông tin

 Những mối đe dọa do t ự do hóa mang l i ạ

 S d ử ụng các ph ần mêm phù hợ p (h ợp pháp và chi phí thấ p)

 Máy tính có thể ể hi n th ngôn ngữ địa phương ị

 Những n ội dung đã được địa phương hóa

 Chính phủ ệ đi n t - ử các cơ sở ạ ầng do chính phủ h t cung c p ấ

 Các tiêu chuẩ n v s n xu ề ả ất, an toàn lao động và sứ c khỏe.

 Lu ật pháp về Công nghệ thông tin ( các giao d ịch điệ n t , ử chữ ký điệ ử ộ n t , t i phạm máy tính)

 V ấn đề an ninh- thông tin, tính hệ ố th ng, h ệ thố ng m ng ạ

 V ấn đề ch ng th c, ứ ự mã hóa

 Truy c p internet b ậ ằng băng thông rộ ng (tạ i doanh nghi p, ệ gia đình)

 Phát triể n ngu ồn nhân lự c v ề công nghệ thông tin

 Hợp tác về h ệ th ố ng m ạ ng

 Các cơ hội do t ự do hóa và khu vực hóa mang l i ạ

 Cơ sở ạ ầ h t ng cho vi c th c hi n ệ ự ệ thanh toán qua mạ ng

 V ấn đề ch p nh ấ ận xác thực liên quố c gia

 Bả o h ộ quy ề n s h ở ữu trí tuệ

 V ấn đề ả b o m ật thông tin cá nhân

T ng quan v ổ ề thanh toán điệ n t 20 ử 1 T ng quan v ổ ề thanh toán điệ ử n t

1.2.1 T ng quan v ổ ề thanh toán điện tử

Thanh toán là khâu quan trọng trong quy trình kinh doanh, giúp đẩy nhanh vòng quay vốn cho doanh nghiệp Thương mại điện tử mang lại lợi ích lớn nhờ vào phương thức thanh toán điện tử an toàn và nhanh chóng Thanh toán điện tử là một trong những yếu tố cốt lõi của thương mại điện tử, và thiếu hạ tầng thanh toán sẽ cản trở sự phát triển hoàn chỉnh của lĩnh vực này Do đó, hệ thống thanh toán điện tử hiện nay đang là trọng tâm phát triển, nhằm cải thiện trải nghiệm khách hàng với chi phí thấp hơn Những cải tiến trong lĩnh vực thanh toán hàng hóa và dịch vụ đang mở ra nhiều cơ hội kinh doanh mới cho các doanh nghiệp.

1.2.1.1 Cuộc cách mạng v ề thanh toán

Vào thế kỷ 10 trước Công nguyên, việc trao đổi hàng hóa chủ yếu diễn ra qua hình thức bartering Đồng tiền bằng kim loại đã xuất hiện tại Hy Lạp và Ấn Độ vào khoảng thế kỷ 6 đến 10 trước Công nguyên và được sử dụng trong giao dịch suốt 2000 năm Trong thời Trung cổ, các thương nhân Ý đã áp dụng phương thức thanh toán bằng séc.

Thẻ tín dụng đầu tiên được phát hành tại bang Massachusetts vào năm 1960, nhưng trước đó, vào năm 1950, thẻ tín dụng của Diners Club đã được giới thiệu đến công chúng Đến nay, tiền giấy vẫn được sử dụng phổ biến, trong khi séc trở thành phương thức thanh toán thông dụng trong các giao dịch không tiền mặt.

Ngày nay, cuộc cách mạng thanh toán đang diễn ra mạnh mẽ, với việc thanh toán bằng thẻ điện tử dần thay thế cho tiền mặt và séc Theo thống kê năm 2007 của Cục Dự trữ Liên bang Mỹ, vào năm 2003, việc sử dụng kết hợp giữa thẻ tín dụng và thẻ ghi nợ trong nội bộ công ty đã lần đầu tiên chiếm ưu thế hơn thanh toán bằng tiền mặt và séc.

Năm 2006, thanh toán điện tử đã tăng lên, với 2/3 tổng lượng thanh toán phi tiền mặt được thực hiện qua séc Theo thống kê năm 2007 của Cục Dự trữ Liên bang Mỹ, thẻ tín dụng chiếm khoảng 52% thanh toán nội địa, trong khi tiền mặt chỉ còn lại một phần nhỏ Từ năm 2003 đến 2006, việc sử dụng thẻ tín dụng trong thanh toán đã tăng từ 31% lên 45%, trong khi thanh toán bằng tiền mặt giảm từ 32% xuống 24%.

1.2.1.2 Khái niện về thanh toán điện tử

Khi kinh doanh trực tuyến, doanh nghiệp và cá nhân có thể thực hiện và quản lý mọi giao dịch thông qua một hệ thống thanh toán, chỉ cần có máy tính kết nối Internet.

Theo báo cáo Quốc gia về thuế và thương mại điện tử của Bộ Thương mại, thanh toán điện tử được hiểu theo nghĩa rộng là việc thanh toán tiền thông qua các thông điệp điện tử thay cho việc trao tay tiền mặt Theo nghĩa hẹp, thanh toán điện tử là việc thực hiện trả tiền và nhận tiền hàng cho các hàng hóa, dịch vụ được mua bán trên mạng Internet.

Các phương thức thanh toán trực tuy n ph bi n hi n nay bao gế ổ ế ệ ồm:

- Thanh toán qua điện thoại di động

Trong số các phương tiện thanh toán điện tử, thẻ thanh toán, đặc biệt là thẻ tín dụng, được ưa chuộng nhờ tính tiện lợi và phổ biến, nhất là tại Mỹ và các nước phát triển Có ba loại thẻ thanh toán chính: thẻ tín dụng cho phép chi tiêu dựa trên hạn mức tín dụng, thẻ ghi nợ chi tiêu dựa trên số dư tài khoản, và thẻ mua hàng cho phép chi tiêu với thanh toán định kỳ Các nhà cung cấp thẻ nổi tiếng hiện nay bao gồm Visa, MasterCard, American Express và EuroPay Thẻ tín dụng chiếm hơn 90% giá trị giao dịch trực tuyến, giúp doanh nghiệp xây dựng niềm tin với khách hàng, nâng cao doanh thu nhờ giải pháp thanh toán tiện lợi, đồng thời tiết kiệm thời gian và công sức trong xử lý giao dịch.

Trước đây, thanh toán điện tử được xem như một "nút thắt cổ chai", cản trở sự phát triển của thương mại điện tử Sự phát triển hạn chế của thanh toán điện tử chủ yếu do thói quen và nhận thức của người dân về thương mại điện tử còn yếu kém Hơn nữa, công nghệ thông tin chưa hoàn thiện, doanh nghiệp và ngân hàng chưa đáp ứng được yêu cầu, dẫn đến an ninh giao dịch không được đảm bảo và môi trường quản lý còn thiếu sót.

1.2.1.3 Quy trình thanh toán bằng th ẻ tín dụng tr c tuy nự ế

Quy trình thanh toán bằng th ẻ tín dụng tr c tuy n trự ế ải qua các bước sau:

- Người mua hang sau khi l a ch n s n ph m, quyự ọ ả ẩ ết định mua hang s nhẽ ập vào các thông tin thẻ tín dụng lên trang web của ngƣ i bán ờ

Các thông tin thẻ tín dụng được gửi trực tiếp từ Ngân hàng đến tài khoản của người bán hoặc bên cung cấp dịch vụ thanh toán mà không được lưu trữ trên máy chủ của người bán.

- Ngân hang mở tài khoản người bán gửi các thông tin thẻ tín dụng tới Ngân hang c p th ấ ẻ tín dụng

Ngân hàng sẽ cấp thẻ tín dụng sau khi kiểm tra thông tin và phản hồi cho người dùng Đồng thời, ngân hàng cũng mở tài khoản cho người bán, với phản hồi có thể là chấp nhận thanh toán (ghi có vào tài khoản) hoặc từ chối.

- Dựa trên phản h i cồ ủa Ngân hang cấp th ẻ tín dụng, người bán sẽ thực hiện đơn hang hoặ ừc t ch i ố

Quá trình giao dịch diễn ra nhanh chóng chỉ trong vài giây, giúp người mua ngay lập tức trừ tiền từ tài khoản, trong khi người bán cũng nhận được thanh toán gần như ngay lập tức.

Hình 1.4 Quy trình thanh toán điệ ử ằn t b ng th ẻtín dụng qua m ng ạ

Nguồn: Turban, Ecommerce, 2004, Prentice Hall

Phân bổ chi phí trong quy trình thanh toán bằng th ẻtín dụng:

Trong các giao dịch thông thường, nếu giá trị giao dịch là 100 USD, doanh nghiệp sẽ chỉ phải trả phí xử lý 0.16 USD và 2.5 USD cho ngân hàng phát hành thẻ.

Giao dịch viễn thông có giá trị nhỏ (dưới 20 USD), chẳng hạn như mua bài báo điện tử, trò chơi hay tải nhạc, thường sẽ áp dụng các chi phí giao dịch tối thiểu, thường là 25%.

35 cent ho c 2%-ặ 3% giá trị giao dịch).

Phân tích công nghệ NFC

Chương này giới thiệu công nghệ NFC, nêu rõ các nguyên lý chính và đặc điểm tiêu chuẩn triển khai Chúng tôi sẽ trình bày về hiệu suất sử dụng năng lượng và bảo mật của NFC, đồng thời giải thích lý do phát triển công nghệ này, quá trình phát triển và những người đứng sau Các tính năng chính và tiêu chuẩn sử dụng NFC cũng sẽ được miêu tả Cuối chương, chúng tôi sẽ đề cập đến cấu trúc dữ liệu được sử dụng bởi NFC tiêu chuẩn và so sánh NFC với các công nghệ không dây khác như Bluetooth và Wi-Fi.

Giao tiếp trường gần (NFC) là một tiêu chuẩn quan trọng cho việc kết nối smartphone và thiết bị di động qua sóng vô tuyến ở khoảng cách ngắn Công nghệ này dựa trên tiêu chuẩn RFID, đảm bảo tính tương thích với thẻ RFID và đầu đọc, hoạt động ở tần số 13.56 MHz.

Việc truyền dữ liệu qua NFC (Near Field Communication) là một phương pháp hiệu quả trong khoảng cách vài centimet Khuyến cáo rằng nên chạm các thiết bị trong quá trình truyền dữ liệu Kết nối gần giúp nâng cao tính bảo mật, khó nghe trộm thông tin trên kết nối vô tuyến Hơn nữa, NFC tiêu tốn ít năng lượng, cho phép hệ thống hoạt động trong thời gian dài mà không làm cạn kiệt pin của thiết bị Tính năng này rất quan trọng, vì thiết bị NFC có thể luôn luôn bật, giống như một thẻ truy cập liên tục, và có thể hoạt động tùy thuộc vào dữ liệu nhận được từ tag.

Chúng ta phân biệt hai chế độ chính của thiết bị tham gia vào kết nối: chế độ hoạt động chủ động và chế độ hoạt động bị động Thiết bị hoạt động chủ động cung cấp năng lượng cho kết nối, trong khi thiết bị thụ động được cung cấp năng lượng bởi thiết bị chủ động Dựa vào đó, ta phân biệt ba dạng thiết bị phụ thuộc vào chức năng của nó.

 NFC reader- m t thi t b ộ ế ị điệ ử có khả năng nhận t n d ữ liệu thông qua NFC

Thiết bị Bluetooth hoạt động ở chế độ thụ động có khả năng cả đọc và ghi thông qua NFC, như smartphone và các thiết bị đầu cuối thanh toán không dây.

NFC Tag hoạt động ở chế độ động, được cung cấp năng lượng bởi trường điện từ Tag thông thường bao gồm một anten và một bộ nhớ rất nhỏ Một module bộ nhớ có thể chỉ đọc, ghi một lần hoặc có thể ghi nhiều lần Chúng ta phân biệt ba dạng chế độ hoạt động như sau:

Chế độ Reader/Writer cho phép thiết bị chủ động đọc và ghi dữ liệu từ NFC tag Trong chế độ đọc, thiết bị sẽ thu thập thông tin từ tag, trong khi ở chế độ ghi, nó có khả năng lưu trữ dữ liệu lên tag.

Chế độ peer-to-peer cho phép hai thiết bị hoạt động ở chế độ chủ động, trong đó một thiết bị đảm nhiệm vai trò chủ động và cung cấp năng lượng cho việc truyền dữ liệu Vai trò đọc và ghi được xác định rõ ràng, tương tự như chế độ reader/writer, và có thể thay đổi linh hoạt Nhờ đó, chế độ giao tiếp bán song công được thực hiện hiệu quả.

Chế độ giả lập thẻ cho phép thiết bị hỗ trợ kết nối NFC hoạt động như một thẻ thông minh không dây, giúp người dùng sử dụng thiết bị tích hợp NFC như thẻ tín dụng, thẻ ghi nợ hoặc vé Tính năng này cho phép lưu trữ nhiều thẻ và vé khác nhau, là một trong những đặc điểm nổi bật của tiêu chuẩn NFC.

2.1.1.1 S ự pháttriển của công nghệ NFC

Công nghệ NFC, được phát triển bởi Philip và Sony vào cuối năm 2002, đã nhanh chóng trở thành một tiêu chuẩn quan trọng sau khi được ECMA và ISO ứng dụng và định nghĩa.

Năm 2004, NFC Forum được thành lập bởi Nokia, Philips và Sony với mục tiêu thúc đẩy sự phát triển của công nghệ NFC và cung cấp tài nguyên cần thiết cho các công ty ứng dụng NFC Hiện nay, NFC Forum là tổ chức chính chịu trách nhiệm về NFC và các tiêu chuẩn công nghệ liên quan Một trong những nhiệm vụ quan trọng của tổ chức là thúc đẩy sự phát triển công nghệ NFC trong ngành điện tử tiêu dùng và duy trì, phát triển tài liệu liên quan.

NFC Forum đã tiêu chuẩn hóa tất cả các mô hình trao đổi dữ liệu, bao gồm reader/writer và peer-to-peer Ngoài ra, tổ chức này cũng đã đưa ra khuôn dạng dữ liệu tiêu chuẩn cho thiết bị NFC và trao đổi dữ liệu, trong đó tiêu chuẩn biên dịch dữ liệu NDEF là một ví dụ điển hình.

2.1.2 Khuôn dạng trao đổi d u NFC ữliệ

Khuôn dạng dữ liệu NFC trao đổi (NDEF) là một đặc trưng quan trọng cho việc trao đổi thông tin giữa hai thiết bị Một bản tin NDEF có thể chứa một hoặc nhiều bản tin NDEF khác Mỗi bản ghi trong NDEF bao gồm một tiêu đề bản ghi (record header) và một hoặc nhiều trường dữ liệu (data payload).

2.1.2.1 Mào đầu b n nghi NDEF (NDEF Record Header) ả

Mào đầu NDEF mô tả dữ liệu được phân phát trong phần tải dữ liệu (payload) và tự miêu tả các thông tin về bản tin của nó Cấu trúc dữ liệu của mào đầu bao gồm byte đầu tiên chứa một số dữ liệu quan trọng.

Sau byte đầu tiên, có một vài byte tiếp theo nhƣ sau:

 TYPE_LENGTH- Xác định độ dài dữ u (d ng octet) cliệ ạ ủa trường TYPE

Chỉ ra li u bệ ản ghi này có phải là bản ghi đầu tiên trong toàn b bộ ản tin không.

Chỉ ra li u bệ ản ghi này có phải là bản ghi cuối cùng trong toàn bộ ản tin không b

Chỉ ra li u bệ ản ghi này có bị phân chia thành nhiều ph n t i ầ ả d ữliệu không.

Nếu dung, đây là mộ ảt b n tin ng n- ắ toàn bộ ph n t i d ầ ả ữ liệu n m trong m t octet ằ ộ

N u dung, phế ần header có chứa thong tin xác định độ dài Đại diện cho tên kiểu khuôn dạng (Type Name Format, ch ỉ ra cấu trúc của trường TYPE

 PAYLOAD_LENGTH- c t Đặ ả độ dài của phần payload theo đơn vị octet N u b n ghi g m nhiế ả ồ ều payload thì sẽ có nhiều byte PAYLOAD_LENGTH trong phần header

 TYPE-Chỉ ra ki u d ể ữ liệu payload (ví dụ, 0x55, hoặc ―U‖ chỉ ra ki u ể d ữliệu là URI)

 ID- xác định địa chỉ URI (ví dụ: http://www.)

 PAYLOAD-phần còn lại của dữliệu đƣợc truyền đi

B n tin ng n nhả ắ ất có thể là ả b n tin g m m t bồ ộ ản ghi Trong trường hợp đó, cờ

MB và ME đƣợc đặt =1, ch ra r ng bỉ ằ ản ghi này là bản ghi đầu tiên cũng là bản ghi cuối cùng trong bản tin

TNF (Type Name Format) là thuộc tính quan trọng mô tả cấu trúc của trường TYPE Nó xác định liệu dữ liệu có thuộc về một trong các dạng payload đã biết hay không, và nếu có, thì đó là dạng nào Một số giá trị đã được định nghĩa sẵn trong bảng 2.2.

2.1.2.2 Các dạng payload đã biết (Well-known Type)

NFC Forum cung c p mấ ột vài dạng bản ghi đƣợc định nghĩa sẵn Các bản ghi này xác định b ở giá trị TNF –x01 và đã đƣợc định nghĩa khuôn dạng

Phân tích nề n t ả ng h ệ điều hành di độ ng

Trong bài viết này, chúng ta sẽ khám phá cách tiêu chuẩn NFC được triển khai trên các nền tảng di động như iOS, Android, Windows Phone 8 và Blackberry 10.

2.2.1 B c c ố ụ Đố ới v i m i n n tỗ ề ảng, chúng ta sẽ mô tả cách có thể tri n khai NFC s d ng ể ử ụ các tài nguyên đƣợc cung c p bấ ởi nhà phát triển h ệ điều hành Chúng ta sẽ tìm hiểu cấu trúc của các công cụ đã đƣợc cung cấp và chúng ta cũng sẽ mô tả những điều gì có thể và những điều gì là không thể Cuối chương chúng ta sẽ so sánh khả năng của các nền tảng di động và sự n ltiệ ợi của chúng cho ứng d ng NFC ụ

Một ứng d ng vụ ới các ngữ ảnh đơn giả c n s ẽ đƣợc phát triển, nó sẽ mô tả các kh ả năng sau của thi t b ế ị smartphone tích hợp NFC

Ứng dụng NFC có khả năng đọc các bản tin dạng text được lưu trữ trên NFC tag và hiển thị trên thiết bị Bản tin sẽ được tạo theo tiêu chuẩn NDEF, với giá trị TNF được thiết lập là 0x01 và TYPE có giá trị là T, trong đó T đại diện cho dạng Text trong các bản ghi NFC đã được định nghĩa trước.

Việc ghi dữ liệu lên một NFC tag yêu cầu tuân thủ định dạng NDEF, đảm bảo rằng các giá trị trong phần header được thiết lập chính xác Điều này giúp dữ liệu được lưu trữ một cách hiệu quả và có thể đọc ra một cách chính xác.

Kích hoạt ứng dụng: Người dùng có thể đăng ký để điều khiển hành động kích hoạt thiết bị khi nhận được thông tin với giá trị TNF xác định.

2.2.3 iOS iOS là một h ệ điều hành di động đƣợc phát triển b i Apple H ở ệ điều hành đƣợc gi i thiớ ệu năm 2007 cùng với điện tho i iPhoneạ —điện thoại đầu tiên của Apple thời điểm đó Hệ điều hành được gi i thi u v i giao diớ ệ ớ ện người dùng được thiết k vế ới màn hình cảm ứng Cùng vớ ự phát triểi s n của màn hình cảm ứng, Apple đã giới thiệu cách sử ụng điệ d n tho i m i Thạ ớ ời điểm đó (4/4/2007) iOS đƣợc giới thiệu với phiên bản 6.1.3

Các ứng d ng cho h ụ ệ điề hành iOS có thể đƣợc phát triểu n s d ng Cocoa ử ụ Touch Framework, một framework đƣợc cung c p b i Apple, d ấ ở ự trên ngôn ngữ Objective-C 3

T i thạ ời điểm hi n tệ ại, không có thiết b ị nào chạy iOS h ỗ trợ trực ti p NFC ế

Chức năng NFC trên iCarte được xây dựng dựa trên công nghệ Mifare, nhưng chưa phổ biến rộng rãi Vì lý do này, các nhà phát triển hiện tại không thể triển khai NFC trên iOS.

Android là hệ điều hành di động mã nguồn mở, được phát triển ban đầu bởi công ty Android và sau đó được Google mua lại vào năm 2005 Google tiếp tục phát triển hệ điều hành này và vào năm 2007, họ giới thiệu Android cùng với việc thành lập Liên minh Thiết bị Di động Mở (Open Handset Alliance), bao gồm nhiều công ty quan tâm đến tiêu chuẩn cho thiết bị di động Thiết bị Android đầu tiên đã được giới thiệu vào năm 2008.

H ệ thống dựa trên lõi Linux (phiên bản 2.6, 3 cho tới 4) Tuy nhiên, mặc dù b n ch t c a d ả ấ ủ ự án là mã nguồn m ở và sử ụng lõi hệ điều hành Linux, nhƣng d

Android không đƣợc gọi là phiên ảb n c a Linux, bủ ởi vì một vài công cụ GNU không đƣợc th a k ừ ế

Kể từ phiên bản đầu tiên của dự án, nhiều nhà sản xuất thiết bị di động đã cố gắng tạo sự khác biệt cho sản phẩm của mình bằng cách tùy chỉnh hệ điều hành Android Một số hãng như Samsung và HTC cung cấp thiết bị với phiên bản Android đã được sửa đổi, trong đó giao diện người dùng thường được nâng cấp Tuy nhiên, việc không thể phát hành phiên bản cập nhật đồng bộ cho tất cả các thiết bị Android cùng một thời điểm khiến cho các nhà sản xuất thiết bị di động gặp khó khăn trong việc duy trì hệ điều hành Điều này dẫn đến việc một số thiết bị cũ không nhận được bản cập nhật, mặc dù chúng có khả năng chạy phiên bản mới Tính đến tháng 4 năm 2013, phiên bản Android phổ biến nhất là 2.3.6, trong khi phiên bản mới nhất hiện tại là 4.2.

Hình 2.2: T l s dỉ ệ ử ụng các phiên bản h ệ điều hành Android (nguồn: http://developer.android.com/about/dashboards/index.html.1.5.2013)

Hệ điều hành Android cung cấp một hệ thống API phong phú cho NFC, cho phép các nhà phát triển ứng dụng lựa chọn nhiều phương thức hỗ trợ Android hỗ trợ hai cách xử lý dữ liệu từ NFC tag và trao đổi dữ liệu giữa hai thiết bị.

Hệ thống phân phối thẻ NFC trên Android cho phép thiết bị nhận diện và xử lý thẻ NFC khi chúng đến gần Khi một thẻ được quét, hệ thống sẽ phân tích dữ liệu và ánh xạ thông tin vào các trường hợp cụ thể.

ACTION_NDEF_DISCOVERED được kích hoạt khi dữ liệu đến đúng chuẩn định dạng của bản tin NDEF và hệ thống nhận dạng được kiểu MIME Bản tin sẽ được nhận dạng như một bản tin NDEF Việc nhận dạng bản tin cũng phụ thuộc vào từng trường hợp cụ thể của TNF trong bản tin.

ACTION_TECH_DISCOVERED là một trạng thái trong hệ thống khi không thể nhận dạng dữ liệu, đặc biệt là khi dữ liệu không tương thích với định dạng NDEF chuẩn Trạng thái này xảy ra khi dữ liệu NDEF không ánh xạ vào bất kỳ loại MIME nào hoặc khi dữ liệu ban đầu không đúng với khuôn dạng NDEF Ngoài ra, các bản tin với TNF như Empty, Unchanged và Unknown cũng được đưa vào trạng thái này.

 ACTION_TAG_DISCOVERED D— ạng này bao gồm c 2 dả ạng trên.

Một ứng dụng có thể mô tả nhiều dạng trên và người phát triển ứng dụng có thể quyết định kiểu bản tin nào ứng dụng sẽ xử lý Ví dụ, nhà phát triển ứng dụng có thể tạo ra ứng dụng chỉ đọc tag đã được ghi lại ở chính ứng dụng đó, và ứng dụng sẽ được mô tả thành dạng thực thể cao nhất ACTION_NDEF_DISCOVERED Ngoài ra, có thể có ứng dụng được thiết kế để đọc nhiều dạng tag khác nhau và thu thập thông tin để nhận dạng các bản tin hệ thống nhận được, và ứng dụng sẽ được mô tả thành dạng thực thể ACTION_TAG_DISCOVERED.

Khi hệ thống nhận một bộ bản tin và xác định intent, nó sẽ gửi đi intent với mức ưu tiên cao nhất Ví dụ, khi nhận bản tin đúng định dạng NDEF, hệ thống sẽ gửi mộ g ACTION_TAG_DISCOVERED Nếu không có ứng dụng nào nhận intent, hệ thống sẽ gửi bản tin với mức ưu tiên thấp hơn như ACTION_TECH_DISCOVERED và ACTION_TAG_DISCOVERED sau đó Nhờ đó, tất cả các ứng dụng đều có cơ hội nhận được các intent mà chúng cần.

PHÂN TÍCH, THIẾ T K PH N M Ế Ầ ỀM THANH TOÁN ĐIỆ N

C ấu trúc của Eclipse và các khái niệm

3.1.1.1 Eclipse Workbench (Bàn làm việc của Eclipse):

Eclipse được cấu thành từ nhiều thành phần, trong đó thành phần cơ bản nhất là Eclipse Workbench Đây là phần cốt lõi xuất hiện khi Eclipse được khởi động Workbench có nhiệm vụ kết nối các thành phần và các trình bổ sung với nhau, giúp người dùng làm việc hiệu quả hơn Ví dụ, trong lập trình Java, Workbench không trực tiếp thực hiện biên soạn, thực thi hay gỡ lỗi chương trình, mà chỉ biết cách điều hướng các dự án và tài nguyên như tập tin và thư mục Các thao tác không thể thực hiện được trong Workbench sẽ được giao cho các thành phần khác; trong trường hợp lập trình Java, JDT (Java Development Toolkit) sẽ cung cấp các công cụ cần thiết cho lập trình viên để biên soạn, biên dịch, thực thi và gỡ lỗi các chương trình Java.

Trình bổ sung là một thành phần (component) cung c p m t s ấ ộ ố loại d ch v ị ụ trong khuôn khổ ủ c a Eclipse Workbench

Eclipse là một nền tảng mạnh mẽ cho việc phát triển các môi trường phát triển tích hợp (IDE), cung cấp các dịch vụ cốt lõi để kết hợp các công cụ lập trình Các nhà cung cấp công cụ có thể đóng góp vào hệ sinh thái Eclipse bằng cách gói gọn các công cụ của họ thành các thành phần có thể cài đặt (pluggable), được gọi là trình bổ sung Eclipse (Eclipse plug-in).

3.1.1.3 Perspective (phối cảnh), views (khung nhìn), editor (trình soạn thảo)

Workbench là một ứng dụng đa dạng với nhiều kiểu ô cửa sổ (pane) khác nhau, được gọi là các khung nhìn (views), trong đó có một view đặc biệt là trình soạn thảo (editor) Trong một số tình huống, một ô cửa sổ đơn có thể chứa nhóm các ô cửa sổ khác dưới dạng các thẻ (tabs) Tùy thuộc vào từng góc nhìn, một ô cửa sổ có thể chứa các thực thi lệnh, trong khi ô cửa sổ khác có thể hiển thị bản phác thảo của dự án đang làm việc Trình soạn thảo là thành phần căn bản không thể thiếu trong tất cả các góc nhìn.

Khi làm việc trong Eclipse, người dùng có thể dễ dàng chuyển đổi giữa các perspective bằng cách chọn Window -> Open Perspective Eclipse cũng hỗ trợ tự động thay đổi perspective khi cần thiết, chẳng hạn như khi chuyển từ Java perspective sang debug perspective Dưới đây là một số perspective cơ bản trong Eclipse.

Hướ ng d ẫn cài đặt Eclipse và các công cụ ỗ h tr ợ ập trình ứ l ng d ng ụ

Bước 1.T i v Android SDK (Software Development Kit) ả ề http://developer.android.com/sdk/index.html

Cài đặt Android SDK trên máy tính giúp thiết lập môi trường giả lập Android, cho phép người dùng kiểm tra ứng dụng, thử nghiệm phần mềm và thiết kế giao diện mà không cần phải mua thiết bị thật.

Khi t i Android SDK vả ề, chúng ta tiến hành giải nén vào bất k ỳ đâu cũng đƣợc Nên giải nén các tools phát triển trên cùng thƣ mục

Tải Eclipse IDE (Java) từ trang http://www.eclipse.org/downloads/ Bạn có thể chọn giữa Eclipse và Netbean, nhưng theo khuyến cáo của Google và kinh nghiệm cá nhân, nên chọn Eclipse Sau khi tải về, hãy tiến hành giải nén Eclipse và nên giải nén các công cụ phát triển vào cùng một thư mục để dễ quản lý.

Bước 3.Cài đặt Android Development Tools (ADT) plugin cho eclipse http://developer.android.com/sdk/eclipse-adt.html#downloading

- Vào Help > Install New Software (hoặc Software Updates với các phiên bản cũ hơn)

To download the Android Development Tools (ADT), you can visit the official website at [http://developer.android.com/tools/sdk/eclipse-adt.html#downloading](http://developer.android.com/tools/sdk/eclipse-adt.html#downloading) and select the "Archive" option, or you can directly enter the following URL: [https://dl-ssl.google.com/android/eclipse/](https://dl-ssl.google.com/android/eclipse/).

Nếu ko đƣợc:https://dl-ssl.google.com/android/eclipse/

- Chọ ất cả các gói Nhấn Next là Okn t

Hình 3.5 Cài đặt Android Development Tools

Bước 4.K t n i Android SDK v i Eclipse IDE ế ố ớ

Hơi phứ ạp chút so với develop trên BB là cầc t n th c hi n vi c k t n i SDK ự ệ ệ ế ố với Eclipse :

- Chọn Android t ừ cây danh mục bên trái

- Nhập SDK Location: là thư mục giải nén SDK đã thực hiện được ở bước 1

In this step, we can say that the main installation processes for the Android SDK and Eclipse IDE are complete To select the API and Emulator, navigate to the android-sdk-windows folder (the one installed in step 1) and run the SDK Manager.exe file Note: it is important to run this file with Administrator privileges on Windows The SDK Manager allows us to manage SDK Tools, SDK Platform Tools (including updates and new versions), various APIs, and Android Virtual Devices (AVDs).

Here, we can select the Android version for development For detailed information on Android versions, visit http://developer.android.com/about/index.html For instance, Android 4.1 corresponds to API 16, Android 4.0.3 to API 15, and Android 2.2 to API 8 This site provides detailed descriptions for both end users and developers The API guide is essential knowledge for developers, offering crucial insights into the functionalities and features of each version.

Sau khi đã thiế ập xong, vào Tools > Manager AVDs để ạt l t o virtual device.

Phân tích cấu trúc cơ bả n c a m ủ ộ t ứ ng d ụng trên nề n t ng h ả ệ điều hành

Android là một hệ điều hành di động, tương tự như Symbian, iOS và Windows Mobile Ban đầu, Android được phát triển bởi Android Inc và sau đó được Google mua lại Hiện nay, Android thuộc quyền sở hữu của Open Handset Alliance và hoàn toàn là mã nguồn mở, điều này đã góp phần làm tăng độ phổ biến của nó Google đã phát hành hầu hết các phiên bản Android mà không cần phải trình bày lại cho cộng đồng mã nguồn Nhiều phiên bản Android đã được ra mắt kể từ khi khởi đầu, trong đó phiên bản mới nhất là Froyo (V2.2) Android đã mở rộng ra ngoài việc chỉ là nền tảng cho các thiết bị di động; hệ thống truyền hình mới của Google cũng hoạt động trên nền tảng Android.

Một ứng dụng Android điển hình có các thành phần sau Dưới đây cũng trình bày các định nghĩa do trang Web của nhà phát triển Android cung c p: ấ

Hoạt động trong giao diện người dùng là những tương tác trực quan mà người dùng có thể thực hiện, giúp họ dễ dàng điều hướng và tập trung vào các lựa chọn Ví dụ, một hoạt động có thể hiển thị danh sách các mục trong menu để người dùng chọn, kèm theo hình ảnh và chú thích Một ứng dụng nhắn tin có thể có hoạt động để hiển thị danh sách địa chỉ liên lạc, cho phép người dùng gửi tin nhắn, viết tin nhắn cho địa chỉ đã chọn, xem lại tin nhắn cũ hoặc thay đổi cài đặt Mặc dù các hoạt động này tương tác với nhau để tạo ra một giao diện người dùng liền mạch, mỗi hoạt động vẫn độc lập và có thể hoạt động riêng biệt.

Nhà cung cấp nội dung đóng vai trò quan trọng trong việc tạo ra và cung cấp dữ liệu cho các ứng dụng khác Dữ liệu này có thể được lưu trữ trong hệ thống tập tin, trong cơ sở dữ liệu SQLite, hoặc theo cách hợp lý khác.

Dịch vụ (dịch vụ nền) là một loại dịch vụ không có giao diện người dùng trực quan, hoạt động ẩn sau trong một khoảng thời gian không xác định Chẳng hạn, một dịch vụ nền có thể phát nhạc khi người dùng tham gia vào các hoạt động khác, hoặc nó có thể thu thập dữ liệu qua mạng và thực hiện tính toán để cung cấp kết quả cho các nhiệm vụ cần thiết.

Các bộ thu quảng bá là thành phần chủ yếu trong hệ thống, có chức năng thu nhận và phát tín hiệu từ các thông báo quảng bá Những thông báo này thường bao gồm thông tin quan trọng như thay đổi múi giờ, cảnh báo pin sắp hết, và thay đổi ngôn ngữ ưa thích.

Một số thuật ngữ khác cần bi ết:

Ý định (Intent) là các hoạt động và dịch vụ được kích hoạt thông qua những thông báo không đồng bộ Một ý định đóng vai trò như một đối tượng để lưu trữ nội dung của thông báo Chẳng hạn, nó có thể được sử dụng để truyền đạt yêu cầu thực hiện một hành động, như hiển thị hình ảnh cho người dùng hoặc cho phép họ chỉnh sửa nội dung văn bản.

Bộ lọc ý định (Intent filter) là một đối tượng trong Android có khả năng xác định rõ ràng thành phần đích mà nó hướng tới Khi thành phần này được chỉ định, Android sẽ tìm kiếm và kích hoạt nó dựa trên các khai báo trong tệp bản kê Nếu không có thành phần nào được chỉ định rõ ràng, Android sẽ phải xác định thành phần phù hợp nhất để xử lý ý định đó Quá trình này diễn ra bằng cách so sánh đối tượng Intent với các bộ lọc ý định của các thành phần tiềm năng Bộ lọc ý định của một thành phần cung cấp thông tin cho Android về các loại ý định mà thành phần đó có thể xử lý.

3.2.2 Phân tích một dự án ứng dụng mẫu “Hello Android”

Để tạo một trình mô phỏng Android (Android Virtual Device - AVD), điều này là cần thiết để các ứng dụng có thể chạy và được thử nghiệm Lưu ý rằng việc khởi động AVD sẽ mất một chút thời gian Tuy nhiên, bạn không cần tạo AVD riêng biệt cho mỗi ứng dụng, vì một khi AVD đã được khởi động, bạn có thể triển khai nhiều ứng dụng khác nhau trong khi nó vẫn đang chạy Điều này cho phép bạn thử nghiệm và phát triển ứng dụng một cách hiệu quả.

Bước 1: Trong Eclipse, ch n ọ Window > Android SDK và AVD Manager (Trình quản lý AVD)

Bước 2: Ch n ọ Virtual Devices(Các thiế ị ả ở khung bên trái.t b o)

Bước 3: Nh n New H p tho i Create New AVD (T o AVD m i) xu t hi n ấ ộ ạ ạ ớ ấ ệBước 4: Gõ tên của AVD vào, ví dụ như "myPhone."

Bước 5: Chọn một đích cho trình mô phỏng, đó là một phiên bản Android SDK (ví dụ như 2.1) Bạn có thể lựa chọn các API của Google, nhưng điều này không cần thiết trừ khi bạn đặc biệt muốn sử dụng một số API của Google trong ứng dụng của mình Các trường còn lại có thể bỏ qua vào thời điểm này.

Bước 6: Nh n ấ Create AVD (T o AVD) ạ

Khi sử dụng AVD, bạn sẽ nhận thấy nó mang lại trải nghiệm giống như một điện thoại Android thực thụ, với đầy đủ bàn phím và hỗ trợ đa chạm AVD cho phép bạn tùy chỉnh nhiều cấu hình khác nhau để trải nghiệm ứng dụng của mình, bao gồm chế độ hiển thị ngang hoặc dọc, cường độ sáng và mạng di động Tất cả các tùy chọn này có thể được cấu hình thông qua trình quản lý AVD AVD hoàn toàn linh hoạt để mô phỏng các thiết bị khác nhau, cho phép bạn tạo ra nhiều AVD với các cấu hình khác nhau và thử nghiệm ứng dụng của bạn trên từng AVD để đảm bảo tính tương thích với mọi loại thiết bị.

3.2.2.2 T o m t d ạ ộ ự án Android mới Đây là cách tạo m t d ộ ựán Android mới trong Eclipse (xem Hình 1):

Để bắt đầu, trong Eclipse, bạn chọn File > New > Project Nếu bạn đã cài đặt thành công ADT cho Eclipse, một thư mục có tên là Android sẽ xuất hiện trong hộp thoại Khi mở rộng thư mục này, bạn sẽ thấy các tùy chọn để tạo một dự án mới.

Android m i Chớ ọn nó và nhấn Next

Bước 2: B n s ạ ẽ được nhắc điền các chi tiết sau đây vào trong một bi u m u: ể ẫ

 Project name (Tên dự án)— Đây là tên của d ự án của bạn và có thể là cái tên nào đó nhƣ "HelloWorld" chẳng h n ạ

Tên ứng dụng là tên hiển thị trên mọi nơi trong thiết bị Android của bạn, bao gồm các biểu tượng trong trình đơn, phím tắt và thanh tiêu đề khi bạn sử dụng ứng dụng Bạn có thể đặt tên cho ứng dụng theo ý thích, ví dụ như "Hello Android."

 Package name (Tên gói)—com.example.helloandroid hoặc vùng tên riêng của bạn Tên gói theo cùng các quy tắc nhƣ các tên gói trong ngôn ngữJava.

Hoạt động (Activity) trong Android, ví dụ như SaySomething, là một lớp được tạo ra bởi các công cụ phát triển Android (ADT) Một hoạt động đơn giản có thể thực hiện một số công việc và có thể có giao diện người dùng Một ứng dụng có thể chứa nhiều hoạt động, thường có mối quan hệ 1:1 với các màn hình trong ứng dụng Để di chuyển từ một hoạt động này sang hoạt động khác, ứng dụng sử dụng phương thức startActivity() hoặc startSubActivity().

 Min SDK version (Phiên bản SDK t i thi u)ố ể — Điều này quy định m c API t i thi u thứ ố ể eo yêu cầu của ứng d ng cụ ủa bạn Phiên bản m i nhớ ất là 7.

Các chi tiế ủt c a d ự án Hello Android (Chào Android)

Hello Android là mộ ự án Android cơ bảt d n, ch ỉ đơn giản in Hello World trên màn hình Nó có vai trò sau trong bài viết này:

 Đểtrình diễn quá trình tạo m t d ộ ự án Android mới

 Để đƣa ra mộ ổt t ng quan v ề các tệp trong m t d ộ ự án Android và mục đích của chúng

Để trình diễn cách triển khai một ứng dụng trên AVD và thử nghiệm hiệu suất của nó, bạn cần sử dụng khung nhìn Package Explorer trong Eclipse để xem các tệp và tài nguyên của dự án Android (Window > Show View > Package Explorer) Dự án Android vừa được tạo ra sẽ bao gồm các thành phần sau (xem Hình 2).

 Có hai thƣ mục chứa mã nguồn:

1- src chứ ấ ả các lớ do người dùng xác địa t t c p nh, bao g m l p ồ ớ hoạ ột đ ng mặc định

2- gen chứa các tệp do ADT t o t ng Tạ ự độ ệp R.java bên trong thƣ mục này chứa các tham chiếu tĩnh tớ ấ ả tài nguyên hiện có trong thƣ i t t c mục res để cho chúng có thể đƣợc tham kh o d ả ễ dàng và động t ừ mã Java Không nên sửa đổi th ủcông các nội dung c a R.java ủ

Hình 3.8Các nội dung của dự án Hello Android

Thi ế t k ế ệ h th ống thanh toán điệ n t ử NFC Payment

Xây dựng k ch b n hoị ả ạ ột đ ng h thệ ống thanh toán NFC Payment:

NFC Phone sẽ cung cấp cho khách hàng (KH) một phương thức thanh toán tiện lợi, thay thế cho thẻ thanh toán truyền thống Khi KH thực hiện giao dịch, họ chỉ cần chạm NFC Phone vào đầu đọc NFC của điểm bán hàng Điểm bán hàng sẽ tiến hành trao đổi dữ liệu với NFC Phone và gửi yêu cầu thanh toán đến máy chủ quản lý tài khoản của KH.

Server quản lý dữ liệu tài khoản khách hàng và thực hiện tiến trình thanh toán khi có yêu cầu từ client.

Khách hàng quản lý quy trình bán hàng và giao tiếp với thiết bị di động thông qua công nghệ NFC, đồng thời gửi yêu cầu lên máy chủ trong quá trình thanh toán.

NFC Phone lưu trữ toàn bộ dữ liệu tài khoản của khách hàng, giúp quá trình thanh toán trở nên nhanh chóng và tiện lợi Khi thực hiện thanh toán, NFC Phone sẽ truyền dữ liệu đến hệ thống quản lý bán hàng của Client thông qua giao tiếp hiệu quả.

1 KH yêu cầu thanh toán

2 Client yêu cầu NFC phone gửi dữ liệu thẻ thanh toán

3 NFC Phone gửi dữ liệu thẻ tới Client

4 Client gửi yêu cầu thanh toán đến Server

5 Server trả lời kết quả thực hiện thanh toán

Hình 3.12 ịch bả k n 1: thanh toán điệ ửn t qua NFC Phone

Khi khách hàng nhìn thấy một poster quảng cáo sản phẩm, họ thường muốn tìm hiểu thêm về sản phẩm và mua hàng online Để thực hiện điều này, khách hàng chỉ cần chạm điện thoại NFC vào vị trí có gắn NFC Tag trên poster Ngay lập tức, điện thoại sẽ tự động kết nối và chuyển hướng đến website bán hàng thông qua trình duyệt web.

Hình 3.13 kịch bản 2: khách hang check một NFC Poster

3.3.1 Thiết k module ng d ng quế ứ ụ ản lý dữ liệu trên thiết b ị di động h ệ điều hành Android

3.3.1.1 Thiết kế ệ cơ sở ữ h d liệu hư ng đ i tướ ố ợng chương trình

 Chương trình xây dựng trên cơ sở ữ ệ d li u g m 2 th c th ồ ự ể là: user (ngườ ử ụng) và card (thẻi s d tín dụng)

 Thực th ể người sử ụ d ng gồm có hai thuộc tính: tên người dùng và mật kh u ẩ

Hình 3.14: Thực thể ngườ ử ụng và các thuội s d c tính của nó

 Thực thể ẻ th (card) gồm có các thuộc tính:

Ngày hết hạn thẻ Mã số bảo mật Họ tên chủ

ID thẻ thẻ Loại thẻ

Hình 3.15: Thực thể thẻ và các thuộc tính của nó

 M i quan h giố ệ ữa thực th ể người sử ụng và thực thể d thẻ:

ID thẻ thẻ Loại thẻ Tên người dùng

Hình 3.16: M i quan h giố ệ ữa thực thể ngườ ử ụng và thực thểi s d thẻ

Trong bài viết này, chúng tôi sẽ trình bày về một thẻ chứa các thuộc tính quan trọng như ID thẻ, thông tin chủ thẻ, ngày hết hạn và mã số bảo mật Thẻ này liên quan đến người sử dụng và có các thuộc tính như ID người dùng, tên người sử dụng và mật khẩu Mỗi thẻ sẽ thuộc về một tài khoản người dùng cụ thể, và chỉ có một thẻ duy nhất được liên kết với mỗi tài khoản để đảm bảo tính bảo mật và riêng tư.

3.3.1.2 Thiết kế lưu đồ thuật toán chương trình

Log in Create new user

Crea te User succ ? essfu l

Crea te Card succ ? essfu l

Hình 3.17: lưu đồ thuật toán chương trình

Khi người dùng thực hiện kích hoạt hệ thống, hệ thống sẽ kiểm tra xem trong cơ sở dữ liệu đã có dữ liệu của người dùng hay chưa Nếu đã có, người dùng sẽ được chuyển sang giao diện đăng nhập Ngược lại, nếu chưa có dữ liệu, hệ thống sẽ chuyển người dùng sang giao diện để tạo cơ sở dữ liệu mới.

Khi người dùng đăng nhập vào hệ thống, họ có thể tạo cơ sở dữ liệu người dùng mới Nếu đăng nhập thành công, hệ thống sẽ kiểm tra tính hợp lệ của cơ sở dữ liệu thẻ của người dùng Nếu cơ sở dữ liệu thẻ đã tồn tại, hệ thống sẽ chuyển sang giao diện chính của ứng dụng Ngược lại, nếu cơ sở dữ liệu thẻ chưa tồn tại, hệ thống sẽ chuyển sang giao diện để tạo cơ sở dữ liệu thẻ mới.

Log-in User name Password

Hình 3.18: thiết kế màn hình log- in

Khi ứng dụng kiểm tra xác định cơ sở dữ liệu người dùng đã tồn tại, ứng dụng sẽ chuyển sang cửa sổ đăng nhập, cho phép người dùng có thể đăng nhập vào ứng dụng bằng username và password đã được thiết lập Nếu trường hợp người dùng không nhớ mật khẩu hoặc muốn tạo một username mới, họ có thể chọn nút NEW USER để thực hiện tạo user mới Tuy nhiên, khi tạo username mới, người dùng cũng phải cung cấp thông tin thẻ mới để đảm bảo tính bảo mật cho dữ liệu.

3.3.1.4 Thiết kế ử c a s tổ ạo tài khoản người sử ụ d ng m ới:

Create new user Enter your User name Enter your Password

Hình 3.19: thiết kế ử ổ ạo tài khoản ngườ ử ụ c a s t i s d ng m i ớ

Để tạo tài khoản mới, người dùng cần nhập tên người dùng và mật khẩu hai lần Sau khi đăng ký thành công, ứng dụng sẽ tự động chuyển người dùng sang cửa sổ đăng ký thẻ.

3.3.1.5 Thiết kế ử c a s tổ ạo cơ sở ữ d u th m liệ ẻ ới:

Create new card Card number Expiry date

Security code Name on card Card type

Khi tiến hành thanh toán online, người dùng cần nhập đầy đủ các thông tin cần thiết để sử dụng trong quá trình giao dịch sau này Các thông tin này bao gồm số thẻ tín dụng (Card number), ngày hết hạn thẻ (Expiry date), mã số an toàn trên thẻ (Security code), tên chủ thẻ (Name on card) và loại thẻ do các nhà cung cấp thẻ cấp cho chúng ta (Card type).

3.3.2 Thiết k Server quế ản lý tài khoản Khách hàng và Client quản lý bán hang trên máy tính

Máy chủ thực hiện chức năng quản lý cơ sở dữ liệu toàn bộ tài khoản khách hàng, xử lý quá trình thanh toán khi có yêu cầu từ Client và xác thực tài khoản thanh toán thông qua mã bảo mật trên thẻ.

Khách hàng sẽ thêm sản phẩm vào giỏ hàng thông qua nhân viên bán hàng Khi khách hàng hoàn tất việc chọn sản phẩm, nhân viên sẽ tiến hành thanh toán cho giỏ hàng thông qua chức năng thanh toán của Client.

CHƯƠNG 4: XÂY DỰNG HỆ THỐNG THANH TOÁN ĐIỆN

Dựa trên thiết kế cơ sở dữ liệu và lưu đồ thuật toán đã được trình bày trong chương 3, chương này sẽ hướng dẫn lập trình xây dựng công cụ cụ thể từ những thông tin đã thiết kế, với các thuộc tính và từng trường hợp sử dụng Chúng ta sẽ đảm bảo rằng các thuật toán điều kiện được thực hiện để đảm bảo ngữ nghĩa hoạt động đúng theo lưu đồ thuật toán thiết kế ban đầu.

Trong dự án đầu tiên, chúng ta sẽ xây dựng một Server quản lý hệ thống tài khoản Khách hàng và thực hiện chức năng thanh toán Bên cạnh đó, sẽ có một Client thực hiện chức năng bán hàng và giao tiếp với điện thoại NFC cùng với Server để tiến hành thanh toán Ngoài ra, một ứng dụng trên thiết bị di động sử dụng hệ điều hành Android sẽ được phát triển để thực hiện chức năng lưu trữ dữ liệu tài khoản Khách hàng và giao tiếp dữ liệu với Client thông qua NFC.

Chúng tôi sẽ phát triển một chương trình cho phép ghi một URL của một website bán hàng trực tuyến lên NFC Tag Khi người dùng chạm điện thoại NFC vào poster quảng cáo có gắn NFC Tag, điện thoại sẽ tự động kết nối đến website bán hàng đó.

4.1 Xây dựng Server quản lý tài khoản Khách àng và Client bán hàngh

4.1.1 Xây dựng Server quản lý tài khoản Khách hàng

- Server đƣợc xây dựng trên ngôn ngữ ập trình java, kế ợ l t h p v i h quớ ệ ản lý cơ s d ở ữ liệu MySQL Server và Client đƣợc xây dựng giao ti p v i nhau s d ng ế ớ ử ụ socket

- Sau khi xây dựng đƣợc cơ sở ữ ệu tài khoản trên MySQL, tai thự d li c hi n k t ệ ế nối từ Server đến cơ sở ữ d liệu nhƣ sau:

Class.forName("com.mysql.jdbc.Driver").newInstance();

"jdbc:mysql://localhost:3306/carddb", "root", "trungnq3"); Statement statement1 = connection1.createStatement();

XÂY DỰ NG H TH Ệ ỐNG THANH TOÁN ĐIỆ N T NFC Ử

Xây dự ng ng d ứ ụng khách hàng trên thiế t b ị di độ ng h ệ điều hành

4.2.1 Xây dựng cơ sở ữ d u liệ

4.2.1.1 Xây dựng cơ sở ữ d liệu người dùng

 Xây dựng cơ sở ữ ệu người dùng và các d li thuộc tính của nó

The User_Pass entity and its attributes are created and managed within the User_Pass class, as demonstrated in the package trungnq3.nfc.wallet This class includes an integer identifier (_id) for effective user management and data handling.

User_Pass( id,String user, String pass){ public int this._id=id; this._user=user; this._pass=pass;

User_Pass(String user,String pass){ public this._user=user; this._pass=pass;

} setID( id){ publicvoid int this._id=id;

String getUser(){ public returnthis._user;

} setUser(String user){ publicvoid this._user=user;

String getPass(){ public returnthis._pass;

} setPass(String pass){ publicvoid this._pass=pass;

Hàm tạo public User_Pass() được sử dụng để khởi tạo một đối tượng user pass với các thuộc tính trống Ngoài ra, hai hàm public User_Pass(int id, String user, String pass) và public User_Pass(String user, String pass) được dùng để khởi tạo đối tượng user pass với các thuộc tính tương ứng.

The Pass_Handler class, located in the package trungnq3.nfc.wallet, is designed for handling user authentication and database management It extends SQLiteOpenHelper, with a defined database version of 1 and a database name of "userManager." The class includes essential constants for user data management, such as the table name "user" and key identifiers like "id," "user_name," and "PASS_WORD." This structure facilitates efficient user data processing and storage within the application.

@Override publicvoid onCreate(SQLiteDatabase db) {

String CREATE_USERS_TABLE = "CREATE TABLE "+ TABLE_USERS+ "(" + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_USER_NAME + " TEXT," + KEY_PASS + " TEXT"+ ")"; db.execSQL(CREATE_USERS_TABLE) }

@Override publicvoid onUpgrade(SQLiteDatabase db, oldVersion, int newVersion) { int db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS); onCreate(db);

} void addUser(User_Pass user) {

The database connection is closed after inserting user details, including the user ID, username, and password, into the TABLE_USERS.

To retrieve user information from the database, a query is executed on the TABLE_USERS, selecting the KEY_ID, KEY_USER_NAME, and KEY_PASS fields where the KEY_ID matches a specified value If the cursor is not null, it is moved to the first entry, allowing access to the user ID by parsing the string from the cursor.

User_Pass user = newUser_Pass(Integer. cursor.getString(1), cursor.getString(2)); return user;

} publicint updateUser(User_Pass user) {

, user.getUser()); values.put(KEY_USER_NAME

, user.getPass()); values.put(KEY_PASS return db.update(TABLE_USERS, values, KEY_ID+ " = ?", new String[] { String.valueOf(user.getID()) });

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_USERS KEY_ID, + " = ?", new String[] { "1" }); db.close();

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_USERS, "1", new String[]{}); db.close();

String selectQuery = "SELECT * FROM "+ TABLE_USERS;

Cursor cursor = db.rawQuery(selectQuery, null); if (cursor != null)

{ if (cursor.getCount()>0){ cursor.close(); returntrue;

The `public Pass_Handler(Context context)` function initializes the database using the specified `DATABASE_NAME` Within the `public void onCreate(SQLiteDatabase db)` method, the command `db.execSQL(CREATE_USERS_TABLE);` creates a table for storing user passwords in the database The functions `void addUser (User_Pass user)`, `User _Pass getUser (int id)`, `public int updateUser (User_Pass user)`, and `public void deleteUser ()` handle the addition, retrieval, updating, and deletion of user passwords in the table, respectively Lastly, the `public Boolean isCreated()` function checks whether the user password database has been successfully created.

4.2.1.2 Xây dựng cơ sở ữ d liệu người thẻ

 Xây dựng cơ sở ữ ệ d li u th ẻ và các thuộc tính của nó

The Card class, defined in the package trungnq3.nfc.wallet, is responsible for creating and managing card entities and their attributes It includes integer properties such as _id and cardNumber, which are essential for identifying and storing card information.

} public Card(int cardnumber, String expirydate, String securitycode, String nameoncard, String cardtype){ this._cardnumber = cardnumber;

} public Card( id, int int cardnumber, String expirydate, String securitycode, String nameoncard, String cardtype){

} publicvoid setID( id){ i nt this._id = id;

} publicvoid setCardnumber(int Cardnumber){ this._cardnumber = Cardnumber;

} public String getExpirydate(){ returnthis._expirydate;

} publicvoid setExpirydate(String expirydate){ this._expirydate = expirydate;

} public String getNameoncard(){ returnthis._nameoncard;

} publicvoid setNameoncard(String nameoncard){ this._nameoncard = nameoncard;

} public String getSecuritycode(){ returnthis._securitycode;

} publicvoid setSecuritycode(String securitycode){ this._securitycode = securitycode;

} public String getCardtype(){ returnthis._cardtype;

} publicvoid setCardtype(String cardtype){ this._cardtype = cardtype;

The public constructors, including Card(), Card(cardnumber, String expirydate, String securitycode, String nameoncard, String cardtype), and Card(id, int cardnumber, String expirydate, String securitycode, String nameoncard, String cardtype), are designed to create card objects with their respective attributes.

The Card_Handler class, located in the package trungnq3.nfc.wallet, extends SQLiteOpenHelper to manage card data effectively It defines crucial constants such as DATABASE_VERSION set to 2, DATABASE_NAME as "cardsManager," and TABLE_CARDS as "cards." Key fields in the database include KEY_ID for the card identifier, KEY_CARDNUMBER for the card number, KEY_EXPIRYDATE for the expiration date, KEY_SECURITYCODE for the security code, KEY_NAMEONCARD for the cardholder's name, and KEY_CARDTYPE for the type of card The constructor initializes the database with the specified name and version.

@Override publicvoid onCreate(SQLiteDatabase db) {

String CREATE_CARDS_TABLE = "CREATE TABLE "+ TABLE_CARDS + "(" + KEY_ID+ " INTEGER PRIMARY KEY, "

+ KEY_CARDTYPE+ " TEXT"+ ")"; db.execSQL(CREATE_CARDS_TABLE);

@Override publicvoid onUpgrade(SQLiteDatabase db, oldVersion, int newVersion) { int db.execSQL("DROP TABLE IF EXISTS "+ TABLE_CARDS); onCreate(db);

, card ); values.put(KEY_CARDNUMBER _cardnumber // Card number

, card ); values.put(KEY_EXPIRYDATE _expirydate // Expiry date

, card ); values.put(KEY_SECURITYCODE _securitycode // Security code

, card ); values.put(KEY_NAMEONCARD _nameoncard // Name on card

, card. values.put(KEY_CARDTYPE _cardtype);//Card type db.insert(TABLE_CARDS, null, values); db.close(); // Closing database connection

Cursor cursor = db.query(TABLE_CARDS new KEY_ID

KEY_SECURITYCODE KEY_NAMEONCARD KEY_CARDTYPE, , }, KEY_ID +

"=?",new String[] { String.valueOf(id) }, null null null null);, , , if (cursor != null) cursor.moveToFirst();

Card card = new Card(Integer.parseInt(cursor.getString(0)), parseInt(cursor.getString(1)), cursor.getString(2), cursor.getString(3),

Integer. cursor.getString(4), cursor.getString(5)); return card;

, card.getCardnumber()); values.put(KEY_CARDNUMBER

, card.getExpirydate()); values.put(KEY_EXPIRYDATE

, card.getSecuritycode()); values.put(KEY_SECURITYCODE

, card.getNameoncard()); values.put(KEY_NAMEONCARD

, card.getCardtype()); values.put(KEY_CARDTYPE return db.update(TABLE_CARDS, values, KEY_ID+ " = ?", new String[] { "1" }); } publicvoid deleteCard(Card card) {

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_CARDS KEY_ID, + " = ?", new String[] { "1" }); db.close();

SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_CARDS, "1", new String[]{}); db.close();

String countQuery = "SELECT * FROM "+ TABLE_CARDS;

SQLiteDatabase db = this.getReadableDatabase(); b.rawQuery(countQuery,

Cursor cursor = d null); cursor.close(); return cursor.getCount();

String selectQuery = "SELECT * FROM "+ TABLE_CARDS;

Cursor cursor = db.rawQuery(selectQuery, null); if (cursor != null)

{ if (cursor.getCount()>0){ cursor.close(); returntrue;

Hàm public Card_Handler(Context context) là một cơ sở dữ liệu cho thẻ, trong khi hàm public void onCreate(SQLiteDatabase db) sử dụng db.execSQL(CREATE_CARDS_TABLE) để tạo bảng thẻ Các hàm void addCard(Card card), Card getCard(int id), public int updateCard(Card card), và public void deleteCard(Card card) tương ứng với việc thêm, truy xuất, cập nhật và xóa thẻ trong bảng thẻ Cuối cùng, hàm public Boolean isCreated() sẽ kiểm tra xem cơ sở dữ liệu đã được tạo hay chưa.

4.2.2 Xây dựng các Activity ứng dụng

4.2.2.1 Xây dựng Activity log in-

Trong lớp Log_in.java, toàn bộ quy trình đăng nhập và các thủ tục liên quan được thực hiện Lớp này thuộc gói trungnq3.nfc.wallet và kế thừa từ Activity.

@Override publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

Toast.makeText(context, "Da ton tai", Toast.LENGTH_LONG).show();

final Pass_Handler db_pass = new Pass_Handler(context);

final Card_Handler db_card = new Card_Handler(context);

final Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.log_in); dialog.setCancelable(true); dialog.setTitle("Log in");

final EditText login_user = (EditText) dialog.findViewById(R.id.login_user);

final EditText loging_password = (EditText) dialog.findViewById(R.id.login_password);

final Button btn_login_ok = (Button) dialog.findViewById(R.id.btn_login_OK);final Button btn_login_cancel = (Button) dialog.findViewById(R.id.btn_login_CANCEL);

final Button btn_login_newuser = (Button) dialog.findViewById(R.id.btn_login_new_user); btn_login_ok.setOnClickListener(new OnClickListener() {

String str_log_user = login_user.getText().toString();

String strPassword2 = loging_password.getText().toString();

User_Pass usr = new User_Pass(); usr = db_pass.getUser(1);

String old_user = usr.getUser();

String old_pass = usr.getPass(); if(!str_log_user.equals(old_user)||!strPassword2.equals(old_pass)){

Toast.makeText(context, "Wrong User name or Password! Please try again!", Toast.LENGTH_LONG).show();

Boolean iscreated_card = db_card.isCreated(); if(iscreated_card){

Intent intent = new Intent(getApplicationContext(),Main_screen_activity.class); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

Toast.makeText(context, "You have not got any card yet! Please enter a card!", Toast.LENGTH_LONG).show();

Intent intent = new Intent(getApplicationContext(),Insert_new_card.class); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

}); btn_login_cancel.setOnClickListener(new OnClickListener() {

}); btn_login_newuser.setOnClickListener(newOnClickListener() {

To create a warning dialog in Android, use the AlertDialog.Builder class with a specified context Set the title to "Lost of Data Warning!" and include a message indicating that creating a new user will result in the loss of all credit card information, prompting the user for confirmation Finally, add a positive button labeled "NEW USER" to proceed with the action.

@Override publicvoid onClick(DialogInterface dialog, which) { int db_pass.deleteTable_user(); db_card.delete_table_card();

Boolean iscreated = db_pass.isCreated();

Boolean iscreated_card = db_card.isCreated(); if (iscreated_card) {

Toast.makeText(context, "Error!! chua drop thanh cong card table", Toast.LENGTH_LONG).show();

Toast.makeText(context, "drop thanh cong card table", Toast.LENGTH_LONG).show();

Toast.makeText(context, "Error!! chua drop thanh cong user table! Please relog in!", Toast.LENGTH_LONG).show();

} else { //Neu drop user va card thanhcongthitao user moivatao card moi

Toast.makeText(context, "drop thanh cong user table", Toast.LENGTH_LONG).show();

Intent intent = new Intent(getApplicationContext(),Insert_new_user.class); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

}); alert.setNegativeButton("BACK", new DialogInterface.OnClickListener() {

@Override publicvoid onClick(DialogInterface dialog, which) { int

// TODO Auto-generated method stub dialog.cancel();

AlertDialog alertdialog = alert.create(); alertdialog.show();

Thủ tục đăng nhập ứng dụng sẽ được thực hiện khi người dùng nhấn nút OK Khi đó, ứng dụng sẽ truy xuất cơ sở dữ liệu để lấy thông tin người dùng và xác nhận việc đăng nhập có thành công hay không.

Khi người dùng đăng nhập thành công, ứng dụng sẽ kiểm tra cơ sở dữ liệu Nếu cơ sở dữ liệu chưa tồn tại, ứng dụng sẽ chuyển hướng người dùng sang tạo cơ sở dữ liệu mới.

4.2.2.2 Xây dựng Activity tạo tài khoản người dùng mới (Insert_New_User) package trungnq3.nfc.wallet; publicclass Insert_new_user extends Activity {

@Override publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

final Pass_Handler db_pass = new Pass_Handler(context);

final Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.input_user); dialog.setCancelable(true); dialog.setTitle("Create new user!");

Xây dựng chương trình ghi URL lên NFC Tag

Để đăng ký trên hệ điều hành Android cho phép thiết bị của chúng ta xử lý khi phát hiện một NFC Tag, cần khai báo một IntentFilter như sau:

Với Intenfilter này, khi hành động phát hiện m t NFC Tag ộ (ACTION_TAG_DISCOVERED) thì ứng d ng cụ ủa chúng ta sẽ đƣợc phép ƣu tiên giao ti p v i NFC Tag ế ớ

To enable the Android operating system to automatically detect and attach URLs to a default web browser, it is essential to write a specific NDEF record containing the correct URL onto an NFC tag The function to create an NDEF record with a URL is implemented as follows: private NdefRecord createRecord(String text) throws.

UnsupportedEncodingException { byte[] textBytes = text.getBytes(); int textLength = textBytes.length; byte[] payload = new byte[1+textLength]; payload[0]=0x01;//byte payload[0] = 0x01;//prefixes http://www to the URI

System.arraycopy(textBytes, 0, payload, 1, textLength);

NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], payload); return recordNFC;

Luận văn trình bày các kiến thức cơ bản về thương mại điện tử, thanh toán điện tử, công nghệ NFC và các hệ điều hành di động phổ biến Đây là nền tảng cần thiết để nghiên cứu, thiết kế và xây dựng hệ thống thanh toán điện tử ứng dụng công nghệ NFC trên nền tảng hệ điều hành di động Android, đáp ứng yêu cầu của đề tài.

Here is a rewritten paragraph that complies with SEO rules:"Dựa trên nền tảng lý thuyết, khóa luận đã phát triển và xây dựng thành công ứng dụng thanh toán điện tử sử dụng công nghệ NFC trên hệ điều hành di động Android Chương trình bao gồm Server quản lý dữ liệu tài khoản liên kết, Client bán hàng và ứng dụng trên thiết bị di động chạy hệ điều hành Android, cho phép người dùng thực hiện các giao dịch thanh toán nhanh chóng và an toàn."

Nghiên cứu thành công khóa luận sẽ hỗ trợ cho sự phát triển của công nghệ NFC Trong tương lai, khi các thiết bị di động tích hợp công nghệ NFC bùng nổ, việc ứng dụng hệ thống thanh toán điện tử thông qua công nghệ này trên các thiết bị di động sẽ trở nên dễ dàng, thuận tiện và phát triển mạnh mẽ hơn so với các loại thẻ thanh toán thông dụng hiện nay.

Các hướng phát triển tiếp theo của đề tài bao gồm việc tiếp tục nghiên cứu các nghiệp vụ ngân hàng và nghiệp vụ thanh toán nhằm tối ưu hóa và chuẩn hóa cơ sở dữ liệu, cũng như quy trình thanh toán Điều này sẽ được áp dụng vào việc thử nghiệm để cải thiện hiệu suất và độ chính xác trong các giao dịch thanh toán.

Cuối cùng, em xin gửi lời cảm ơn chân thành đến TS Phạm Văn Tiến vì đã hỗ trợ, định hướng và giải thích cho em những vấn đề còn vướng mắc trong quá trình thực hiện luận văn.

[1] Trần Đình Quế, Nguy n Mễ ạnh Hùng, Lập trình hướng đối tượng, Nhà xuất b n ả

Học viện Công nghệ Bưu chính Viễn thông

[2] Nguyễn Văn Thoan, Bài giảng thương mại điệ ửn t , Nhà xuấ ản Đạ ọt b i h c Ngoại Thương, 2009

[3] W.Frank Ableson, Charlie Collins, Robi Sen, Unlocking Android, Manning Publication Co, 2009

[4] David J.Eck, Introduction to Programming Using Java, Hobart and William Smith Colleges, 2011

[5] Satya Komatineni, Dave Maclean, Sayed Y.Hashimi, Pro Android 3, Apress,

[6] David Sheppard, Payment Systems, Bank of England, 1996

[8] http://docs.oracle.com/javase/7/docs/api/

[9] http://developer.android.com/idex.html

Ngày đăng: 26/01/2024, 15:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN