You are on page 1of 79

HỌC VIỆN NGÂN HÀNG

KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

BÁO CÁO CHUYÊN ĐỀ THỰC TẬP

TÊN ĐỀ TÀI

HOÀN THIỆN VÀ PHÁT TRIỂN HỆ THỐNG THANH TOÁN TRỰC TUYẾN


CHO NỀN TẢNG EPISERVER COMMERCE CỦA CÔNG TY EPISERVER

TÊN SINH VIÊN

BÙI VĂN BA

HÀ NỘI, NĂM 2019


HỌC VIỆN NGÂN HÀNG
KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

BÁO CÁO CHUYÊN ĐỀ THỰC TẬP

TÊN ĐỀ TÀI
HOÀN THIỆN VÀ PHÁT TRIỂN HỆ THỐNG THANH TOÁN TRỰC TUYẾN TẠI
NỀN TẢNG EPISERVER COMMERCE CỦA CÔNG TY EPISERVER

Giáo viên hướng dẫn: Ths. Chu Văn Huy

Sinh viên thực hiện: Bùi Văn Ba

Mã sinh viên: 18A4040019

Lớp: K18HTTTTA

Khóa: K18 (2015-2019)

Hệ: Chính Quy

Hà Nội, tháng 05/2019


LỜI CẢM ƠN
NHẬN XÉT
(Của cơ quan thực tập)
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
Hà Nội, ngày tháng năm 2019
Người nhận xét
(Ký tên, đóng dấu)
NHẬN XÉT
(Của giáo viên hướng dẫn)
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
Kết luận : …………...…………………………………………………………………..
Hà Nội, ngày tháng năm 2019
Giáo viên hướng dẫn
(Ký tên)
MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BÀI TOÁN NGHIÊN CỨU 12


1.1. Giới thiệu đơn vị thực tập 12
1.1.1 Sự hình thành và phát triển 12
1.1.2 Các phòng ban tại công ty Episerver Việt Nam Error! Bookmark not defined.
1.1.3 Các giải pháp công ty episerver hiện đang cung cấp cho khách hàng 14
1.2 Giới thiệu bài toán 15
CHƯƠNG 2: NHỮNG LÝ LUẬN CƠ BẢN VỀ HỆ THỐNG THANH TOÁN TRỰC
TUYẾN 17
2.1. Một số khái niệm cơ bản 17
2.1.1. Khái niệm thanh toán điện tử 17
2.1.2. Khái niệm thanh toán trực tuyến 18
2.1.3. Khái niệm cổng thanh toán trực tuyến 18
2.1.4. Thanh toán thẻ trực tuyến 18
2.2 Hệ thống thanh toán trực tuyến 22
2.2.1. Đặc điểm của hệ thống thanh toán trực tuyến 22
2.2.2. Các yếu tố cấu thành của một hệ thống thanh toán trực tuyến 22
2.2.3. Phân loại các hệ thống thanh toán trực tuyến 23
2.2.5. Cổng thanh toán ngân lượng 28
2.2.5.1. Giới thiệu cổng thanh toán ngân lượng 28
2.2.5.3. Những thuận lợi khi tích hợp thanh toán qua NgânLương.vn 29
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 32
3.1. Tổng Quan Hệ Thống 32
3.1.1. Mô hình chức năng Website Quicksilver 32
3.1.2 Mô hình luồng dữ liệu. 34
3.1.3 Cơ sở dữ liệu dùng cho việc thanh toán 38
3.1.4 Mô hình kết nối 45
CHƯƠNG 4: TÍCH HỢP CỔNG THANH TOÁN TRỰC TUYẾN NGÂN LƯỢNG VÀO
WEBSITE QUICKSILVER 47
4.1 Website tiến hành tích hợp QuickSilver Error! Bookmark not defined.
4.1.1. Giới Thiệu Website QuickSilver Error! Bookmark not defined.
4.1.2 Tìm hiểu cấu trúc trang order trong QuicksilverError! Bookmark not
defined.
4.1.3. Trạng thái đơn hàng trong quá trình thanh toánError! Bookmark not
defined.
4.1.4. Quy trình mua hàng trên website Quicksilver Error! Bookmark not defined.
4.2. Phương pháp tích hợp 52
4.3 Định nghĩa dữ liệu truyền nhận 52
4.3.1 Tham số truyền sang Ngân Lượng (URL REDIRECT)Error! Bookmark not
defined.
4.3.2 Tham số Ngân Lượng trả về (URL RETURN) Error! Bookmark not defined.
4.4. Triển khai tích hợp 55
4.4.1 Các bước triển khai và tích hợp thực tế 55
4.5 Kết quả thực nghiệm 58
4.5.1 Thực hiện thanh toán sau khi tích hợp 58
DANH MỤC CÁC CHỮ VIẾT TẮT

Từ Viết Tắt Ý Nghĩa

TMĐT Thương mại điện tử

TTĐT Thanh toán điện tử

TTTT Thanh toán trực tuyến

TTKDTM Thanh toán không dùng tiền mặt

CNTT Công nghệ thông tin

ATTT An toàn thông tin

ĐVCNT Đơn vị chấp nhận thẻ


DANH MỤC HÌNH VẼ, SƠ ĐỒ

Hình 1: Sơ đồ các phòng ban công ty ............................................................................... 13


Hình 2: Các giải pháp của công ty Episerver ................................................................... 14
Hình 3: Quy trình thanh toán thẻ trực tuyến ..................................................................... 20
Hình 4: Mô hình hoạt động cổng thanh toán NgânLượng.vn ......................................... 29
Hình 5: Biểu đồ phân cấp chức năng ............................................................................... 32
Hình 6: Biểu đồ luồng dữ liệu mức khung cảnh............................................................... 34
Hình 7: Biểu đồ luồng dữ liệu mức đỉnh .......................................................................... 35
Hình 8: Biểu đồ luồng dữ liệu mức 1 chức năng giao dịch .............................................. 36
Hình 9: Biểu đồ luồng dữ liệu mức 1 chức năng quản trị ................................................ 37
Hình 10: Sơ đồ cơ sở dữ liệu ............................................................................................ 38
Hình 11: Mô hình kết nối cổng thanh toán ngân lượng.................................................... 45
Hình 12: Giao diện trang Quicksilver .............................. Error! Bookmark not defined.
Hình 13: Cấu trúc một order trong Episerver Commerce Error! Bookmark not defined.
Hình 14: Sơ đồ trạng thái đơn hàng trong quá trình mua hàngError! Bookmark not
defined.
Hình 15: Quy trình mua hàng trên Website Quicksilver .................................................. 50
Hình 16: Quy trình cung cấp dịch vụ ............................................................................... 52
Hình 17: Giao diện đăng ký tích hợp thanh toán tại ngân lượng ................................. 55
Hình 18: Danh sách website đăng ký tích hợp thanh toán thành công............................. 56
Hình 19: Cấu hình trang NganLuongConfirmationPage. ................................................. 57
Hình 20: Sơ đồ quy trình thực hiện thanh toán demo ...................................................... 59
Hình 21: Giao diện khi thêm sản phẩm vào giỏ hàng ...................................................... 60
Hình 22: Giao diện trang quản trị giỏ hàng khi có sản phẩm ........................................... 60
Hình 23: Giao diện chọn thanh toán qua Ngân lượng ...................................................... 61
Hình 24: Giao diện chọn hình thức thanh toán................................................................. 61
Hình 25: Giao diện trang điền thông tin thanh toán ......................................................... 62
Hình 26: Giao diện trang điền thông tin thẻ ..................................................................... 63
Hình 27: Giao diện trang hiển thị thông báo thành công ................................................. 63
Hình 28: Giao diện trang nhận kết quả trả về phía người thanh toán .............................. 64
Hình 29: Giao diện trang nhận kết quả trả về phía người quản trị ................................... 64
DANH MỤC BẢNG BIỂU

Bảng 1: Phân loại hệ thống thanh toán trực tuyến............................................................. 27


Bảng 2: Phân tích chức năng thanh toán ........................................................................... 33
Bảng 3: OrderForm ............................................................................................................ 39
Bảng 4: OrderFormDiscount ............................................................................................. 39
Bảng 5: OderformPayment ................................................................................................ 40
Bảng 6: OrderGroup .......................................................................................................... 40
Bảng 7: OrderGroupAdreess ............................................................................................. 42
Bảng 8: : LineItem ............................................................................................................. 43
Bảng 9: LineItemDiscount ............................................................................................... 43
Bảng 10: Shipment ............................................................................................................ 44
Bảng 11: ShipmentDiscount ........................................................................................ 44
Bảng 12: Danh sách thông số gửi sang ngân lượng .......................................................... 54
Bảng 13: Tham số Ngân lượng trả về ................................................................................ 55
MỞ ĐẦU
Ra đời như một tất yếu của sự phát triển TMĐT, TTĐT tuy mới xuất hiện ở Việt
Nam trong vài năm gần đây nhưng đã tỏ ra có ưu thế vượt trội về tốc độ cũng như sự tiện
lợi so với hoạt động thanh toán dùng tiền mặt. Sau một thời gian học tập và nghiên cứu
trên ghế nhà trường cũng cùng với kiến thức thực tế tiếp thu được trong quá trình thực tập
tại công ty Episerver Việt Nam, tôi đã tìm hiểu về thanh toán điện tử nói chung và hệ thống
thanh toán hiện có trong nền tảng của công ty nói riêng.

Công ty Episerver là một công ty phần mềm toàn cầu cung cấp giải pháp quản lý
nội dung web, thương mại kỹ thuật số và tiếp thị kỹ thuật số. Episerver được biết đến là
một trong những công ty hàng đầu về cung cấp giải pháp thương mại điện tử. Tuy nhiên
hệ thống thanh toán trên nền tảng của công ty hiện chưa cung cấp giải pháp thanh toán trên
một số cổng thanh toán tại Việt Nam. Vấn đề này dẫn đến công ty chưa đáp ứng được hết
nhu cầu của khách hàng và hoàn thiện hệ thống này chính là giải pháp giải quyết vấn đề
đó.

Nên tôi thực hiện đề tài “Hoàn thiện và phát triển hệ thống thanh toán trực tuyến tại
nền tảng episerver commerce của công ty episerver” làm chuyên đề tốt nghiệp của mình.
Thông qua nghiên cứu, ngoài việc giúp tôi nâng cao, bổ sung kiến thức tôi hy xong những
nghiên cứu của mình còn có thể đóng góp giúp công ty hoàn thiện nền tảng của mình.
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BÀI TOÁN NGHIÊN CỨU

1.1. Giới thiệu đơn vị thực tập


1.1.1 Sự hình thành và phát triển
Episerver được thành lập vào năm 1994 tại Stockholm, Thụy Điển, bởi Mikael
Runhem. Sau đó được gọi là Elektropost Stockholm AB, công ty tập trung vào thư điện tử
dựa trên internet. Elektropost Stockholm AB đã mở rộng để cung cấp công nghệ xây dựng
trang web và giới thiệu phiên bản đầu tiên của nền tảng EPiServer CMS vào năm 1997.

Năm 2002, phiên bản đầu tiên của EPiServer CMS đã được dựa trên Microsoft ‘s
.NET Framework, EPiServer CMS 4.0, đã được đưa ra. Năm 2006, Mikael Runhem đã đổi
tên công ty thành EPiServer AB. Vào năm 2007, phiên bản EPiServer CMS dựa trên .NET
thứ hai đã được ra mắt, phiên bản 5.

Năm 2010, công ty thuộc sở hữu của một nhóm các nhà đầu tư, bao gồm Amadeus
Capital, Martin Bjäringer, Monterro Holdings, Northzone Ventures, Mikael Runhem và
gia đình và nhân viên. Vào tháng 11 năm 2010, tập đoàn này đã bán công ty cho IK
Investment Partners .

Vào tháng 12 năm 2014, IK Investment Partners đã bán Episerver cho Accel-KKR,
một công ty đầu tư cổ phần tư nhân tập trung vào công nghệ Accel-KKR gần đây cũng đã
mua Ektron, một công ty CMS có trụ sở tại Nashua, New Hampshire. Vào tháng 1 năm
2015, Episerver và Ektron đã hợp nhất. Hai cựu giám đốc điều hành của KANA Software,
CEO Mark Duffell và CMO James Norwood, lần lượt được bổ nhiệm làm Chủ tịch và
Giám đốc điều hành và Phó chủ tịch điều hành Chiến lược và CMO của Episerver. Martin
Henricson, Giám đốc điều hành của doanh nghiệp Episerver trước đây đảm nhận vai trò
Chủ tịch điều hành cho đơn vị được sáp nhập.

Công ty đã kết hợp phần mềm của mình vào Đám mây trải nghiệm kỹ thuật số
Episerver và vào tháng 6 năm 2015, Episerver đã ra mắt phiên bản chính đầu tiên của nền
tảng của mình sau khi sáp nhập Ektron.Vào tháng 11 năm 2015, công ty đã đổi thương hiệu
cho chính mình, thay đổi EPiServer thành Episerver, và bao gồm cả tên rút gọn là E Epi.

Vào tháng 8 năm 2016, Episerver đã mua lại Peerius, một công ty cá nhân hóa
thương mại có trụ sở tại London ở Anh. Thương hiệu hiện được tích hợp hoàn toàn dưới
dạng EpiPersonalization vào Nền tảng Episerver. Cựu giám đốc điều hành Peerius Roger
Brown rời công ty.
1.1.2 Các phòng ban tại công ty Episerver

Hình 1: Sơ đồ các phòng ban công ty


Managing Director: Giám đốc điều hành chịu trách nhiệm lập kế hoạch và định
hướng chiến lược chung cho công ty, đảm bảo đạt được các mục tiêu hiện tại và tương lai
của công ty như mong đợi của ban giám đốc

Deputy Managing Director: Phó giám đốc điều hành chịu trách nhiệm kiểm soát,
cân đối giữa mục tiêu doanh số, sự tăng trưởng, ngân sách hoạt động và lợi nhuận của từng
dự án và kết quả kinh hoạt động sản xuất kinh doanh năm tài chính. Xây dựng và phát triển
văn hóa công ty để tạo ra môi trường làm việc năng động, cạnh tranh lành mạnh, đoàn kết
chia sẽ và gắn kết giữa các bộ phận trong công ty. Xây dựng được giá trị cốt lõi của công
ty. Cơ cấu hợp lý nhân sự công ty và hoạch định cho nguồn nhân lực đối phó với sự biến
động nhân sự. Xử lý các quan hệ nội bộ công ty.

Team leads Software Engineering: Chịu trách nhiệm quản lý, lãnh đạo toàn bộ thành
viên trong team, quản lý tiến độ của từng thành viên trong team, hướng dẫn các thành viên
trong team làm việc, nhất là những thành viên mới, chưa trải qua dự án nào cùng team.

Manager reliability engineering: Chịu trách nhiệm quản lý chất lượng dự án, đảm
bảo các dự án hoàn thành đúng yêu cầu đề ra.

IT Department: Chịu trách nhiệm quản trị mạng, bảo mật công ty, hỗ trợ lập trình
viên, khắc phục sự cố, thực hiện các công việc liên quan đến phổ biến triển khai các tiêu
chuẩn quốc tế về an toàn, bảo mật cho công ty.
Finance Department: Phòng có nhiệm vụ lập kế hoạch tài chính hàng năm và dài
hạn của công ty.

Human Resources: Các công việc của HR liên quan đến các hoạt động tuyển dụng,
lên kế hoạch triển khai các chính sách phù hợp để duy trì nguồn nhân lực cho công ty và
có kế hoạch bồi dưỡng phát triển năng lực các cá nhân, phòng ban để có thể hoàn thành
công việc một cách hiệu quả nhất.

1.1.3 Các giải pháp công ty Episerver hiện đang cung cấp cho khách hàng

Hình 2: Các giải pháp của công ty Episerver


Episerver CMS: Cung cấp các khả năng quản lý nội dung web mạnh mẽ, bao gồm
giao diện người dùng trực quan, các tính năng đa xuất bản và phê duyệt và API linh hoạt
với các headless options.

Episerver Commerce: Kết hợp các khả năng thương mại điện tử mạnh mẽ với giao
diện người dùng quản lý nội dung web trực quan và API linh hoạt để tùy chỉnh và mở rộng.

Episerver Campaign: Cung cấp giải pháp quản lý chiến dịch đa kênh mạnh mẽ để
tạo và quản lý trực quan nội dung chiến dịch, bao gồm email, SMS và phân tích chiến dịch.

Episerver Personalization bao gồm theo dõi, đề xuất sản phẩm / nội dung được cá
nhân hóa và kết quả tìm kiếm, kích hoạt tin nhắn tự động và trực quan hóa phân tích dữ
liệu hồ sơ.
Episerver Find: Mở rộng các tính năng tìm kiếm cho Episerver và cho phép bạn xây
dựng bộ lọc cá nhân hóa nâng cao và điều hướng theo khía cạnh, dựa trên hành vi của
khách truy cập trang web và API thông thạo.

Episerver Social API: Là API thời gian thực dựa trên các dịch vụ vi mô với các dịch
vụ mở rộng để mô hình hóa và quản lý nội dung do người dùng tạo như xếp hạng và nhận
xét.

Integrations & add-ons: Cho phép bạn mở rộng nền tảng trong nhiều lĩnh vực như
phân tích, tự động hóa tiếp thị, thanh toán,dịch thuật.

Digital Experience Cloud Service: Chạy giải pháp Episerver của bạn trong Episerver
Digital Experience Cloud Service cho tốc độ truy cập cao, bảo mật mạnh mẽ và dịch vụ
được quản lý với sự hỗ trợ của chuyên gia cùng khả năng tự phục vụ.

1.2 Giới thiệu bài toán


Theo khảo sát của Ngân hàng Thế giới, thanh toán không dùng tiền mặt nói chung
và thanh toán điện tử đã trở thành phương thức thanh toán phổ biến tại nhiều quốc gia phát
triển trên thế giới với giá trị chi tiêu của người dân chiếm tới hơn 90% tổng số giao dịch
hằng ngày. Ở khu vực châu Á, Nhật Bản, Hàn Quốc cũng tiến hành từ những năm 2003-
2004. Ở Đông Nam Á, Malaysia và Singapore là những quốc gia đầu tiên chuyển đổi hệ
thống thanh toán thẻ sang chuẩn EMV (Hệ thống các tiêu chuẩn đưa ra bởi Europay,
MasterCard và Visa) từ năm 2005, tiếp sau đó là Thái Lan, Indonesia, Philipines và Việt
Nam.

Từ năm 2010 trở lại đây, người tiêu dùng có thể sử dụng các phương thức thanh
toán hiện đại để chi trả cho những giao dịch trực tuyến cũng như tại các cửa hàng, trung
tâm mua sắm… Các hình thức thanh toán phát triển không ngừng, ngoài Visa, Master Card,
Paypal còn có các hình thức mới áp dụng công nghệ như QR Code, NFC và mPOS, Internet
Banking và Mobile Web Payment.

Tại Việt Nam, thanh toán điện tử ra đời năm 2008 với mô hình đầu tiên là ví điện
tử. Hiện nay có nhiều doanh nghiệp khai thác mô hình ví điện tử nhưng theo thông tin từ
Ngân hàng Nhà nước, hiện chỉ có 9 doanh nghiệp như: Payoo, MoMo, Mobivi, Ngân
Lượng… được cấp phép thử nghiệm loại hình dịch vụ này.

Hơn 90% giao dịch thanh toán ở Việt Nam là thanh toán bằng tiền mặt và khách
hàng, người tiêu dùng thích COD (Cash On Delivery: Trả tiền mặt khi nhận hàng) hơn
thanh toán trực tuyến. Tuy nhiên, thay đổi hành vi thanh toán của người tiêu dùng và các
chính sách mới, cũng như sự khuyến khích gần đây của chính phủ để tăng giao dịch không
bằng tiền mặt là những yếu tố thúc đẩy các nhà cung cấp dịch vụ thanh toán điện tử.

Hiên nay công ty Episerver đang cung cấp nền tảng cho đối tác có thể dễ dàng xây
dựng một website thương mại điện tử dựa trên những nền tảng có sẵn của hệ thống do
episerver xây dựng, trong các thành phần cơ bản đã được xây dựng đó thanh toán đóng một
vai trò rất quan trọng, việc xây dựng lên dự án cơ sở nhằm tích hợp các hệ thống thanh
toán vào website của khách hàng dựa trên cơ sở những thành phần có sẵn là một là một
nhu cầu cấp thiết.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Một số khái niệm cơ bản


2.1.1. Khái niệm thanh toán điện tử
Theo nguyên nghĩa từ Electronic payment: Thanh toán điện tử là việc thanh toán
dựa trên nền tảng công nghệ thông tin, trong đó sử dụng máy tính nối mạng để truyền các
thông điệp điện tử, chứng từ điện tử giúp cho quá trình thanh toán nhanh chóng, an toàn và
hiệu quả. TTĐT 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 bằng tiền mặt.

Theo góc độ tài chính: TTĐT được hiểu là việc chuyển giao các phương tiện tài
chính từ một bên sang một bên khác thong qua sử dụng phương tiện điện tử.

Theo góc độ viễn thông: TTĐT được hiểu là việc truyền thông tin về phương tiện
thanh toán qua các mạng viễn thông hoặc qua phương tiện điện tử khác.

Tiếp cận dưới góc độ công nghệ CNTT: TTĐT được hiểu là việc thanh toán dựa
trên nền tảng CNTT để xử lý các thông điệp điện tử, chứng từ điện tử…giúp cho quá trình
thanh toán được diễn râ một cách nhanh chóng an toàn hiệu quả.

Tiếp cận dưới góc độ phương tiện sử dụng: TTĐT được hiểu là việc sử dụng các
phương tiện điện tử để thanh toán cho các hàng hóa, dịch vụ được mua bán.

Dưới góc độ tự động hóa: TTĐT được hiểu là việc ứng dụng công nghệ chủ yếu là
công nghệ thông tin để tự động hóa các giao dịch tài chính và các kênh thông tin thanh
toán.
Tiếp cận thanh toán điện tử dưới góc độ trực tuyến: Thanh toán điện tử được hiểu
là việc chi trả cho các hàng hóa dịch vụ trao đổi thông tin trực tiếp trên internet cùng nhiều
dịch vụ trực tuyến khác.
Từ những khái niệm trên, tôi chọn khái niệm “Thanh toán điện tử là việc thanh toán
dựa trên nền tảng công nghệ thông tin, trong đó sử dụng máy tính nối mạng để truyền các
thông điệp điện tử, chứng từ điện tử giúp cho quá trình thanh toán nhanh chóng, an toàn và
hiệu quả. TTĐT 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 bằng tiền mặt” làm khái niệm chính trong đề tài của mình.

2.1.2. Khái niệm thanh toán trực tuyến


TTTT là việc trả tiền và nhận tiền hàng cho các dịch vụ mua bán hàng hóa, dịch vụ
được bán trên mạng Internet thông qua các thông điệp điện tử thay cho việc trao đổi tiền
mặt của phương thức truyền thống.

2.1.3. Khái niệm cổng thanh toán trực tuyến


Cổng thanh toán trực tuyến là một phần mềm máy tính cho phép chủ thẻ thanh toán
trực tuyến bằng thẻ ngân hang ngay trên các website thương mại điện tử như e-businesses,
online retailers, bricks and clicks. Nó tương tự như một POS/EDC (Máy đầu cuối cà thẻ
khi thanh toán mua hang trực tuyến) khi thanh toán trực tuyến trên thẻ Internet. Cổng thanh
toán trực tuyến cho phép mã hóa các thông tin nhạy cảm như số thẻ tín dụng, để đảm bảo
thông tin có thể bảo mật và giao dịch thuận tiện giữa người bán và người mua. Hiểu đơ
giản hơn, cổng thanh toán trực tuyến là công cụ nối liền website thương mại điện tử của
người bán (ĐVCNT) với tài khoản ngân hang của chính nhà cung cấp hang hóa đó. Cổng
thanh toán trực tuyến chỉ có chức năng trung gian hỗ trợ thanh toán, dựa vào đó, có thể xây
dựng các hệ thống trung chuyển tiền từ Trang Web (Website) -> Cổng thanh toán trực
tuyến -> tài khoản tại ngân hang. Cổng thanh toán trực tuyến thường do một công ty (có
thể là ngân hang, hoặc tổ chức phi tín dụng không phải ngân hàng) cung cấp như một dịch
vụ, một loại hình dịch vụ được biết đến với tên gọi là: dịch vụ thanh toán điện tử, dịch vụ
thanh toán trực tuyến. hoặc dịch vụ thanh toán thẻ trực tuyến.

2.1.4. Thanh toán thẻ trực tuyến


Thanh toán điện tử được biết đến với một hình thức hết sức phổ biến là thanh toán
thẻ. Từ lâu, người ta đã quen thuộc với dịch vụ thanh toán thẻ qua ATM. Qua POS/EDC.
Viêc áp dụng thương mại điện tử đòi hỏi các doanh nghiệp phải tự tìm cho mình phương
thức thanh toán trực tuyến để hoàn thiện mô hình. Dich vụ thanh toán thẻ trực tuyến đáp
ứng được đòi hỏi đó.

2.1.4.1. Khái niệm dịch vụ thanh toán thẻ trực tuyến

Dich vụ thanh toán thẻ trực tuyến là dịch vụ thanh toán thẻ trên môi trường Internet,
nhờ phương tiện phần mềm hỗ trợ là cổng thanh toán trực tuyến. Dịch vụ cổng thanh toán
trực tuyến là dịch vụ trên Internet do một doanh nghiệp cung cấp. Đó có thẻ là chính ngân
hàng phát hành, ngân hang thanh toán, hoặc do một công ty (tổ chức) khác hợp tác với
ngân hang cung cấp cho khách hang (bao gồm cả DVCNT và chủ thẻ).
Hiện tại, các doanh nghiệp ở Việt Nam có thẻ áp dụng phương thức thanh toán điện
tử là thanh toán thẻ trực tuyến đối với khách hang của mình. Thẻ thanh toán là do ngân
hang hoặc tổ chức tài chính tín dụng phát hành. Thẻ mang thương hiệu quốc tế phổ biến là
Visa, MasterCard, American Express…Đây là những loại thẻ được chấp nhận rộng rãi trên
toàn cầu, tại hang triệu điểm chấp nhận thẻ có gắn logo thương hiêu thẻ. Tại Việt Nam, có
rất nhiều ngân hang đang phát hành các loại thẻ mang thương hiệu quốc tế, dẫn đầu là
Vietcombank, ACB, Techcombank, Sacombank… Các ngân hang trong nước còn phát
hành rein thẻ ghi nợ nội địa, người Việt Nam quen gọi là thẻ ATM, thẻ này có phạm vi
hoạt động trong quốc gia. Áp dụng phương thức thanh toán thẻ trực tuyến, doanh nghiệp
cho phép khách hang sở hữu các loại thẻ như Visa, MasterCard… hoặc thẻ ATM nội địa
để thanh toán trên Internet. Thanh toán thẻ không giới hạn phạm vi, không gian và thời
gian, bất kì đâu trên thế giới. Chỉ với một chiếc máy tính kết nối nternet, khách hàng có thẻ
hoàn thành khâu thanh toán chỉ trong vòng vài giây. Các doanh nghiệp Việt Nam triển khai
hình thức này có thể lựa chọn nhà cung cấp dịch vụ quốc tế hoặc trong nước. Một số nhà
cung cấp quốc tế được lựa chọn phổ biến trên thế giới như PayPal, 2CheckOut,
WorldPay…

Thanh toán thẻ trực tuyến là một hình thức thanh toán điện tử then chốt trong thương
mại điện tử. Nó phải đảm bảo được các yếu tố: an toàn, bảo mật, nhanh chóng, chính xác
và tin cậy. Các khai niệm thường dung trong thanh toán thẻ trực tuyến:

SET là viết tắt của các từ Secure Electronic Transaction, là một hình thức tập hợp
những kỹ thuật mã hóa và bảo mật nhằm mục đích đảm bảo an toàn cho các giao dịch mua
bán trên mạng. Những tiêu chuẩn và công nghệ SET được áp dụng và thể hiện nhất quán
trong các doanh nghiệp, các ngân hàng/công ty chấp nhận thẻ, tổ chức tín dụng và trung
tâm xử lý thẻ tín dụng qua mạng. Về cơ bản, thanh toán thẻ trực tuyến có những đặc điểm
giống thanh toán thẻ truyền thống, và cũng gồm cso các chủ thể: Ngân hàng phát hành thẻ
(Issuer) là nơi phát hành các loại thẻ dung cho thanh toán trực tuyến (Ngân hàng phát hành
thẻ và ngân hàng thanh toán có thẻ là một); Ngân hàng thanh toán (Acqurer) là nơi xử lý
các yêu cầu thanh toán từ phía cổng thanh toán; nhà cung cấp dịch vụ Cổng thanh toán trực
tuyến (online Payment Getwway provider) là nơi tiếp nhận yêu cầu thanh toán từ phía
người bán và kết nối với các ngân hàng phát hành thẻ để kiểm tra hợp lệ thông tin thẻ; Chủ
thẻ (Cardholder) là người thực hiện yêu cầu thanh toán với bên bán hàng và nhận kết quả
từ người bán (thông qua công cụ giao tiếp như website, ứng dụng mạng…); Người bán
(Merchant) có thẻ là nhà hàng, doanh nghiệp, công ty, siêu thị…có kinh doanh dịch vụ, sản
phẩm trực tuyến. Người bán sẽ kí kết sử dụng dịch vụ thanh toán trực tuyến của một bên
thứ ba (cổng thanh toán) hoặc có thẻ kí kết trực tiếp với ngân hàng thanh toán để họ chấp
nhận thanh toán ccasc loại thẻ đề nghị từ người bán.
2.1.4.2. Quy trình thanh toán thẻ trực tuyến

Hình 3: Quy trình thanh toán thẻ trực tuyến


Mô tả quy trình:

1) Chủ thẻ yêu cầu thanh toán tới Người bán


2) Người bán gửi thông tin chủ thẻ tới Cổng thanh toán hoặc Ngân hàng thanh toán
mà họ liên kết.
3) Cổng thanh toán hoặc Ngân hàng thanh toán sẽ kiểm tra tính hợp lệ của thẻ với
ngân hàng phát hành thẻ (hoặc nơi phát hành thẻ) thông qua giao thức SET
4) Ngân hàng phát hành thẻ sẽ phản hồi (thông tin phản hồi được mã hóa theo quy
định) cho Ngân hàng mà Người bán liên kết hoặc bên thứ ba về tính hợp lệ của
thẻ
5) Sau đó thông tin này được giải mã và gửi về cho người bán.
6) Người bán dựa trên thông tin phản hoogi này quyết định bán hay không bán.

2.1.4.3. Khái niệm, đặc điểm nhà cung cấp dịch vụ cổng thanh toán trực tuyến

Nhà cung cấp dịch vụ cổng thanh toán trưc tuyến là bên thứ ba cung cấp các dịch
vụ trực tuyến cho các đơn vị chấp nhận thanh toán điện tử theo các cách khác nhau như
thanh toán bằng thẻ tín dụng quốc tế, thẻ ghi Nợ nội địa, chuyển khoản, thanh toán với thời
gian thực dựa trên nền tảng ngân hàng trực tuyến. Ngoài ra cũng có những khái niệm do
các tổ chức khác đưa ra về nhà cung cấp dịch vụ thanh toán trực tuyến như khái niệm của
Ameris, một doanh nghiệp cung cấp các giải pháp hỗ trợ về mạng và công nghệ máy tính
ở London – Anh: “Nhà cung cấp dịch vụ thanh toán trực tuyến là bên thứ ba cung cấp dịch
vụ xử lý các giao dịch thẻ tín dụng trong thời gian thực thay mặt cho các website hoặc tổ
chức ”.

Với các khái niệm như trên, nhà cung cấp dịch vụ cổng TTTT có những đặc điểm
như sau:

Mô hình nhà cung cấp dịch vụ cổng TTTT phải tuân theo những chuẩn quốc tế nhất
định về thanh toán. Để một nhà cung cấp dịch vụ cổng TTTT được chấp nhận và kết nối
với các tổ chức thanh toán quốc tế thì họ phải xây dựn mô hình thro những tổ chức thanh
toán quốc tế và đạt các tiêu chuẩn theo 12 quy định PCI DSS:

- Cài đặt và duy trì tường lửa để bảo vệ dữ liệu điện tử.

- Không sử dụng các nhà cung cấp dịch vụ mật khẩu bảo mật và các thông số bảo
mật khác.

- Bảo vệ dữ liệu lưu trữ.

- Mã hóa việc truyền dữ liệu chủ thẻ và các thông tin nhạy cảm.

- Sử dụng thường xuyên cập nhật phần mềm diệt virus.

- Phát triển và duy trì các hệ thống và ứng dụng bảo mật.

- Hạn chế quyền truy cập vào dữ liệu của doanh nghiệp.

- Chỉ định một ID riêng cho mỗi người với truy cập máy tính.

- Hạn chế các truy cập vật lý và dữ liệu của chủ thẻ.

- Theo dõi và giám sát tất cả các quyền truy cập và nguồn lực mạng lưới dữ liệu chủ
thẻ.

- Thường xuyên kiểm tra hệ thống và quy trình bảo mật.

- Duy trì một cách hiệu quả chính sách bảo mật thông tin.

Nhà cung cấp dịch vụ cổng TTTT là một trung gian thanh toán, cung cấp dịch vụ
và giải pháp hỗ trợ TTTT. Vì vậy dịch vụ này được các nhà kinh doanh trực tuyến với quy
mô nhỏ quan tâm, đặc biệt là những người mới bắt đầu tiếp cận với hình thức kinh doanh
này. Doanh thu kinh doanh của nhà cung cấp dịch vụ cổng TTTT được hưởng theo phần
tram giá trị thanh toán và số lượng giao dịch của khách hàng.
2.2 Hệ thống thanh toán trực tuyến
2.2.1. Đặc điểm của hệ thống thanh toán trực tuyến
Hệ thống TTTT có một tập hợp các phần tử đa dạng, phong phú. Bao gồm hệ thống
chuyển tiền điện tử trong cùng hệ thống ngân hàng, hệ thống thanh toán liên ngân hàng
quốc tế qua SWIFT, hệ thống ngân hàng điện tử e-banking.

Sử dụng hệ thống TTTT, tiền sẽ được chuyển từ tài khoản người mua qua tài khoản
người bán tại tài khoản được mở ở ngân hàng người mua và ngân hàng người bán. Tham
gia quá trình này bao gồm 3 bên là người mua, người bán và ngân hàng.

Khả năng có thể chấp nhận được: Để được thành công thì cơ sở hạ tầng của việc
thanh toán phải được công nhận rộng hơn, môi trường pháp lý đầy đủ, đảm bảo quyền lợi
cho cả khách hàng và doanh nghiệp, công nghệ áp dụng ở các ngân hàng cũng như các tổ
chức thanh toán phải đồng bộ

An toàn và bảo mật: Do các dịch vụ thực hiện qua mạng Internet được cung cấp
toàn cầu nên càn đảm bảo khả năng chống lại sự tấn công để tìm kiếm hay điều chỉnh thông
tin bảo mật, thông tin cá nhân, các thông điệp được gửi đi

Khả năng có thể hoán đổi: Tiền số có thể chuyển thành tiền mặt hay chuyển từ quỹ
tiền điện tử về tài khoản cá nhân hoặc từ tiền điện tử có thể phát hành séc điện tử, séc thật.
Tiền số bằng ngoại tệ này có thể dễ dàng chuyển sang ngoại tệ khác với tỷ giá tốt nhất.

Hiệu quả, tiện lợi. Dễ sử dụng: Chi phí cho mỗi giao dịch rất nhỏ, đặc biệt với những
giá trị giao dịch thấp

Tính linh hoạt, hợp nhất và tin cậy: Cung cấp nhiều phương thức thanh toán cho
mọi đối tượng với giao diện thống nhất dễ sử dụng theo từng ứng dụng và tránh những sai
sót không đáng có.

2.2.2. Các yếu tố cấu thành của một hệ thống thanh toán trực tuyến
a. Các bên tham gia

Người bán: Có thể bán bán hàng hóa dịc vụ thông qua một website liên kết hoặc
trên chính website của mình sở hữu. Doanh thư bán hàng trong hai trường hợp là khác
nhau. Nếu bán hàng hóa qua website khác thì doanh thu không đạt được 100% vì phải mất
phí đăng ký.

Người mua: Bao gồm doanh nghiệp và cá nhân, hình thức được áp dụng trong hai
trường hợp này là khác nhau:

- Người mua là cá nhân: Giá trị giao dịch nhỏ, phương thức thanh toán thẻ cá
nhân, ví điện tử
- Người mua là doanh nghiệp: Giá trị giao dịch lớn hơn, phương thức thanh toán
là chuyển khoản, séc điện tử.

Các ngân hàng: Đóng vai trò là bên thứ 3 đảm bảo về tính chính xác, độ tin cậy cho
việc xác thực, xử lý các giao dịch và các thông tin về phương tiền thanh toán với khách
hàng.

Các tổ chức phát hành thanh toán là những tổ chức chuyên cung cấp các phương
tiện thanh toán điện tử cho khách hàng như NganLuong, BaoKim. Các nhà cung cấp dịch
vụ thanh toán trung gian đó là các tổ chức chuyên cung cấp cho những người bán hàng sự
chấp nhận của thanh toán điện tử như thanh toán bằng thẻ tín dụng, thẻ ghi nợ, sec điện tử,
chuyển khoản điện tử. Tài khoản do tổ chức phát hành phương tiện thanh toán được kết
nối với một tài khoản ngân hàng của người bán hàng.

b. Các công cụ sử dụng

Là những thiết bị điện tử được sử dụng để tiếp nhạn, truyền tải, xử lý các thông tin
để thanh toán.

c. Các phương tiện thanh toán

Phương tiện thanh toán điện tử là những phương tiện do các tổ chức tính dụng phát
hành hoặc nhà cung cấp dịch vụ trung gian được sử dụng trong thanh toán điện tử.

- Do các tổ chức tín dụng bao gồm ngân hàng cung cấp dịch vụ thanh toán, Visa,
Mastercard.

- Do các nhà cung cấp dịch vụ thanh toán trung gian: Ngân lượng, Bảo kim…

2.2.3. Phân loại các hệ thống thanh toán trực tuyến

STT Hệ thống thanh toán trực tuyến Phân loại và đặc điểm của hệ thống thanh toán
trực tuyến
1 Hệ thống thanh toán thẻ Thẻ tín dụng
Khái niệm: Thẻ tín dụng là loại thẻ mà chủ sở hữu
thẻ tạo lập bằng cách sử dụng uy tín cá nhân của
mình hoặc bằng tài sản thế chấp
Đặc điểm: Cho phép chi tiêu trước trả tiền sau
Có thể sử dụng bằng tất cả các loại tiền: mang thẻ
đến bất kỳ quốc gia nào để tiêu tiền của quốc gia
đó( yêu cầu thẻ phải chuẩn quốc tế như Visa,
mastercard…)
Không hưởng lãi suất số dư trong tài khoản
Tài khoản hoặc tài sản thế chấp độc lập với việc
chi tiêu
Thường mất phí cao khi rút tiền mặt

Thẻ ghi nợ
Khái niệm: Thẻ ghi nợ được hiểu là loại thẻ cho
phép chủ sở hữu thẻ chi tiêu trực tiếp trên tài
khoản tiền gửi ngân hàng tại ngân hàng phát hành
thẻ.
Đặc điểm:
Chi tiêu đến đâu tài khoản lập tức bị khấu trừ đến
đấy
Được hưởng lãi suất số dư trong tài khoản
Cho phép chi tiêu bằng các loại tiền
Không mất phí hoặc mất một khoản phí rất nhỏ
khi thực hiện rút tiền mặt

Thẻ thông minh


Khái niệm: Thẻ thông minh là loại thẻ điện tử mà
trên thẻ có gắn một vi xử lý gọi là chip, có khả
năng giới hạn trước các hoạt động, thêm vào hoặc
xóa bớt đi dữ liệu trên thẻ
Phân loại:
Thẻ tiếp xúc vật lý: Là loại thẻ điện tử trên thẻ có
gắn một mạch vi xử lý, trên mặt có gắn miếng kim
loại nhỏ bằng mạ vàng, khi đưa thẻ tiếp xúc với
thiết bị đọc thẻ thông qua dữ liệu trên thẻ sẽ được
truyền từ chip qua miếng kim loại mạ vàng sang
thiết bị đọc thẻ
Thẻ phi tiếp xúc: Là loại thẻ thông minh mà trên
mạch có gắn Angten. Khi đưa thẻ lại gần thiết bị
đọc thẻ thông minh dữ liệu trên thẻ sẽ truyền từ
chip qua Angten tới Angten của thiết bị đọc thẻ.
Loại thẻ này thường được sử dụng để thanh toán
tại những nơi đông người chẳng hạn thanh toán
tại siêu thị, thanh toán cước phí giao thông công
cộng

2 Hệ thống thanh toán ví điện tử (tiền Khái niệm: Ví thanh toán điện tử được hiểu là một
điện tử) tài khoản điện tử được kết nối liên thông với một
hệ thống tài khoản ngân hàng và một hệ thống
thanh toán trực tuyến( cổng thanh toán), Ví điện
tử được sử dụng cho các giao dịch thanh toán trực
tuyến vừa và nhỏ.
Đặc điểm:
Ví điện tử là một dịch vụ rất nhạy cảm về mặt tài
chính hoạt động giống như một ngân hàng điện tử
trên internet vì vậy nó chịu sự điều chỉnh của luật
ngân hàng và tổ chức tín dụng
Cho phép kết nối một cách liên thông giữa tài
khoản ví điện tử với tài khoản ngân hàng. Vì vậy
người sử dụng có thể chuyển đổi một phần hoặc
toàn bộ số tiền trong tài khoản ngân hàng sang tài
khoản ví điện tử và ngược lại
Giống như bất kì một phương tiện thanh toán điện
tử nào ví điện tử bao giờ cũng được kết nối tới
cổng thanh toán nhằm bảo mật thông tin, xác thực
toàn vẹn dữ liệu đối với người sử dụng

3 Hệ thống vi thanh toán điện tử Khái niệm: Ví thanh toán điện tử được hiểu là
khái niệm kinh doanh chỉ rõ cách thu tiền từ mỗi
trang web được xem, mỗi click, mỗi đường link
đến đều phải trả tiền và bất kỳ hàng hóa dịch vụ
nào được mua bán qua web mà giá tiền hết sức
nhỏ từ 1 cent tới dưới 10USD
Đặc điểm:
Đặc điểm kỹ thuật: Vi thanh toán điện tử được xây
dựng trên hai hệ thống
- Vi thanh toán dựa trên tài khoản: Chiếm
tỷ trọng lớn nhất
- Tính năng dễ sử dụng hay là thuận tiện:
Một hệ thống vi thanh toán điện tử cần
phải được thiết kế các bước thanh toán
đơn giản, dễ sử dụng với hầu hết người
tham gia
- Tính ẩn danh: Đối với hệ thống vi thanh
toán điện tử nếu có yêu cầu khách hàng
khai báo các thông tin cá nhân thì các
thông tin này cần được đảm bảo bí mật.
Nói cách khác là ẩn danh đối với ác khách
hàng là người mua còn người bán thì
không bao giờ vô danh
- Khả năng mở rộng: Một hệ thống vi thanh
toán điện tử cần phải đảm bảo được về mặt
tốc độ cũng như sự ổn định của hệ thống
kể cả khi xử lý cho một giao dịch. Cho nên
khi xử lý với một giao dịch tăng lên đột
biến hệ thống vẫn vận hành một cách ổn
định
- Tính hợp lệ: Một hệ thống vi thanh toán
điện tử cần phải đảm bảo xử lý các thông
tin một cách chính xác có khả năng nhận
dạng các giao dịch hợp lệ và xác thực
được khách hàng tham gia
- Tính an toàn: Một hệ thống vi thanh toán
điện tử cần phải đảm bảo tốt việc chống
lại các nguy cơ đe dọa từ bên ngoài nhằm
đảm bảo về an toàn cho hệ thống và các
khách hàng tham gia
- Khả năng cộng tác: Một hệ thống vi thanh
toán cần phải được thiết kế để tiếp cận các
hình thức thanh toán khác do các tổ chức
tài chính hoặc các nhà cung cấp dịch vụ
thanh toán khác phát hành
Đặc điểm phi kĩ thuật:
- Tính tin cậy
- Mức độ bao phủ
- Tính bảo mật
- Hệ thống trả trước hoặc trả sau
- Phạm vi thanh toán hoặc hỗ trợ nhiều đơn
vị tiền tệ

4 Hệ thống thanh toán bằng chuyển Khái niệm: Chuyển khoản điện tử được hiểu là
khoản điện tử giao dịch chuyển tiền thanh toán giữa khách hàng
trong cùng hệ thống hoặc khác hệ thống thông qua
mạng máy tính và các phương tiện điện tử khác
Phân loại:
Chuyển khoản điện tử cùng hệ thống
Là nghiệp vụ chuyển tiền thanh toán giữa các chi
nhánh trong nội bộ ngân hàng do đó không làm
thay đổi tổng nguồn vốn của hệ thống ngân hàng
đó.
Chuyển khoản điện tử khác hệ thống: là nghiệp
chuyển tiền thanh toán giữa 2 hay nhiều ngân
hàng thương mại với nhau

5 Hệ thống thanh toán séc điện tử Khái niệm: Séc điện tử là cơ chế thanh toán điện
tử đầu tiên được kho bạc mỹ lựa chọn để tiến hành
thanh toán cho các giao dịch thanh toán giá trị lớn
trên Internet
Đặc điểm
Có tính chất thời hạn: Séc điện tử có giá trị tiền tệ
hoặc giá trị thanh toán trong một khoản thời gian
được ghi rõ trên séc, Ngoài thời gian này séc trở
nên vô giá trị
6 Hệ thống thanh toán hóa đơn điện Khái niệm: Thanh toán hóa đơn điện tử là giải
tử pháp cho phép các nhà cung cấp và khách hàng
tiến hành trao đổi dữ liệu điện tử để cho họ tự trình
bày và xử lý thanh toán
Phân loại: Bao gồm 2 loại là biller trực tiếp và
biller tích hợp. Các nhà cung cấp dịch vụ cho
khách hàng thường làm cho các hóa đơn cần thanh
toán sẵn có trên web của mình. Sau đó họ gửi 1
email thông báo về các hóa đơn khách hàng cần
thanh toán với một liên kết nhúng trong email này
để khách hàng có thể truy cập thông qua một kết
nối an toàn tới nhà cung cấp dịch vụ

Bảng 1: Phân loại hệ thống thanh toán trực tuyến


2.2.4 Các tiêu chí đánh giá một hệ thống thanh toán trực tuyến của website

 Tốc độ xử lý giao dịch

Trong một giao dịch, khi tốc độ được xử lý nhanh, có thể khách hàng không cảm
nhận được gì, nhưng nếu lâu chắc chắn họ sẽ cảm thấy bực bội.

Một hệ thống thanh toán tốc độ cao cũng chứng tỏ sức mạnh số, sức mạnh công
nghệ phần mềm, phần cứng của doanh nghiệp cung cấp dịch vụ.

 Khả năng bảo mật

Khả năng bảo mật chính là thước đo để người dùng quyết định sử dụng hệ thống
thanh toán hay không. Doanh nghiệp có một hệ thống bảo mật tốt sẽ đảm bảo được các
thông tin cá nhân người dùng không bị lộ, đảm bảo an toàn cho giao dịch là một yêu cầu
tất yếu.

 Tính tương tác với người dùng dễ hay khó

Tính tương tác với người dùng được đề cập với nhiều tiêu chí hơn, thứ nhất cần một
giao diện hợp lý, dễ nhìn, dễ thao tác. Thứ hai là các hoạt động diễn ra đơn giản hóa tối ưu
để khách hàng với trình độ hạn chế cũng có thể hiểu. Mặt khác, cần các dịch vụ hỗ trợ trực
tuyến để mang lại những câu trả lời nhanh gọn nhất phục vụ mọi lúc trong giờ hành chính.

 Mức độ ổn định

Đây là tiêu chí đưa ra nhằm đánh giá hệ thống khi số lượng truy cập hoặc số lượng
giao dịch tăng đột biến. Hệ thống này cần đảm bảo đủ sức mạnh để quá trình thực hiện
không bị gián đoạn, thậm trí cần đảm bảo quyền lợi của khách hàng nếu trường hợp rủi ro
xảy ra.

 Chi phí

Chi phí cho mỗi giao dịch luôn là điều mọi người quan tâm đến. Với khả năng như
nhau, hệ thống thanh toán nào có mức chi phí thấp hợp chắc chắn sẽ được ưu tiên, tuy
nhiên với mức độ cạnh tranh gay gắt như hiện nay thì giá cả có thể coi như tương đương.

 Khả năng tích hợp

Không phải doanh nghiệp nào cũng đủ mạnh để đầu tư hay phát triển bộ phân
chuyên phụ trách hệ thống thanh toán riêng cho nên tích hợp là giải pháp hữu dụng mà
nhiều doanh nghiệp hướng đến. Khả năng tích hợp càng đơn giản thì hệ thống thanh toán
trực tuyến đó dễ nhận được sự ưu ái của doanh nghiệp

2.2.5. Cổng thanh toán ngân lượng

2.2.5.1. Giới thiệu cổng thanh toán ngân lượng


NgânLượng.vn là Ví điện tử và Cổng Thanh toán Trực tuyến (TTTT) tiên phong và
uy tín hàng đầu tại Việt Nam, cả về sản phẩm dịch vụ, độ phủ thị trường và lưu lượng thanh
toán. Được phát triển bởi Nexttech Group (tiền thân là PeaceSoft Group) từ năm 2009,
Ngân Lượng cho phép các cá nhân và doanh nghiệp gửi và nhận tiền thanh toán trên
Internet một cách nhanh chóng, an toàn, tiện lợi.

NgânLượng.vn hoạt động theo mô hình ví điện tử, theo đó người dùng đăng ký tài
khoản loại cá nhân hoặc doanh nghiệp với 3 chức năng chính là: nạp tiền, rút tiền và thanh
toán; tất cả đều hoàn toàn trực tuyến thông qua thẻ nội địa hoặc quốc tế và tài khoản của
các ngân hàng. Vốn đầu tư từ các tập đoàn hàng đầu thế giới về tài chính và công nghệ bao
gồm IDG (Mỹ), SoftBank (Nhật) và liên doanh chiến lược với eBay (Mỹ) cho phép
NgânLượng.vn đảm bảo tài chính cho toàn bộ các giao dịch TTTT tại Việt Nam.

Ví điện tử và cổng thanh toán là dịch vụ nhạy cảm về mặt tài chính, hoạt động như
một "ngân hàng điện tử" trên Internet và chịu sự điều chỉnh của "Luật ngân hàng và các tổ
chức tín dụng" để ngăn ngừa các doanh nghiệp huy động vốn thông qua việc giữ hộ tiền
thanh toán của người mua và người bán rồi mất khả năng thanh khoản gây thiệt hại cho xã
hội. Giấy phép ví điện tử số 2608/QĐ-NHNN do Ngân hàng Nhà nước cấp giúp đảm bảo
uy tín về mặt pháp lý và an toàn cho khách hàng của NgânLượng.vn.
2.2.5.2. Mô hình hoạt động

Hình 4: Mô hình hoạt động cổng thanh toán NgânLượng.vn

2.2.5.3. Những thuận lợi khi tích hợp thanh toán qua NgânLương.vn
1. An toàn thông tin cho người sử dụng

Người sử dụng tạo lập và sử dụng tài khoản ngân lượng trên hệ thống
NgânLượng.vn, các thông tin về cá nhân, tài khoản được NgânLượng.vn đảm bảo và bảo
mật.
Tất cả các giao dịch đều được thực hiện Online thông qua website
của NgânLượng.vn, khoản "ngân lượng" thanh toán tiền hàng được chuyển ngay tức thì từ
tài khoản người Mua đến tài khoản người Bán, và được hệ thống tài chính lớn mạnh
của NgânLượng.vn đảm bảo.
2. Giá trị được bảo toàn
Vì chức năng của Nganluong.vn là giữ hộ tiền VND cho các bên mua và bán hàng
hóa dịch vụ, nên giá trị tiền tệ của người sử dụng đã gửi vào được chuyển hóa vào Ngân
lượng, chứ không thay đổi. Vì vậy có thể tham gia mọi quá trình trao đổi, sử dung hàng
hóa dịch vụ với điều kiện giao dịch đó chấp nhận thanh toán qua nganluong.vn

Thông qua website https://www.nganluong.vn/, NgânLượng.vn cung cấp dịch vụ


Ví điện tử với chức năng giữ hộ tiền Việt Nam đồng (VND) cho các bên Mua và bên Bán
hàng hóa dịch vụ có sử dụng NgânLượng.vn. Dựa trên căn cứ là số tiền giữ hộ đó,
NgânLượng.vn bảo lãnh cho việc chuyển tiền thanh toán tức thời của bên Mua cho bên
Bán.” trích hợp đồng sử dụng

3. Phương thức giao dịch đơn giản và nhanh chóng, thuận tiện

Thay vì phải mất nhiều công đoạn chuyển khoản, hoặc giao dịch tiền mặt thông qua
ngân lượng khách hàng sử dụng website có tích hợp thanh toán qua ngân lượng có thể dễ
dàng mua bán chỉ với vài bước xác nhận đơn giản và nhanh chóng, mọi thứ trở nên nhanh
chóng hơn bao giờ hết. Chưa kể chi phí giao dịch thấp, thuận tiện cho các giao dịch với giá
trị nhỏ.

Như vậy, với NgânLượng.vn, người Mua không còn phải di chuyển để thanh toán
trong khi người Bán đã biết chắc mình nhận được tiền để có thể chuyển hàng ngay, quy
trình mua bán qua mạng đã được rút gọn & tiện lợi tối đa.

4. Giao dịch an toàn

Cách thức giao dịch qua Nganluong.vn, hàng hóa sẽ đến tay người mua sau khi người
mua xác nhận thì tiền sẽ được chuyển vào tài khoản của người bán, do đó giảm thiểu được
nhiều hành vi lừa đảo qua mạng, tạo nên sự tin cậy đối với người sử dụn

Từ những phân tích đánh giá được điểm mạnh của Cổng thanh toán ngân lượng đã
phần nào đáp ứng được những tiêu chí của một cổng thanh toán an toàn tiện lợi, tôi đề xuất
phương án hoàn thiện hệ thống thanh toán cho nền tảng Episerver bằng cách tích hợp cổng
thanh toán NgânLượng.vn.

2.3. Nền tảng Episerver Commerce

2.3.1. Giới thiệu nền tảng Episerver Commerce


Episerver Commerce là một bộ thương mại kỹ thuật số hoàn chỉnh do công ty
Episerver xây dựng. Episerver Commerce cung cấp giải pháp để quản lý nhiều thành phần
trong thương mại điện tử bao gồm quản lý danh mục, quản lý đơn hàng, khuyến mại, thanh
toán...Nền tảng này giúp cho doanh nghiệp có thể phục vụ khách hàng tốt hơn thông qua
việc tạo ra những trải nghiệm tốt hơn cho khách hàng. Để làm được điều đó Episerver
Commerce đã ứng dụng trí tuệ nhân tạo vào các giải pháp nhằm mục đính cá nhân hóa
người dùng, tương tác với người dùng tốt nhất từ đó giúp doanh nghiệp tối ưu hóa lợi
nhuận.

2.3.2. Các thành phần trong Episerver Commerce

 Catalogs and content:


 Initialization:
 Orders:
 Payment:
 Shipping:
 Pricing:
 Marketing (discounts):
 Warehouse and inventories:
 Search:
 Security:
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG

3.1. Tổng Quan Hệ Thống


3.1.1. Mô hình chức năng Website Quicksilver
Biểu đồ phân cấp chức năng

Website Quicksilver

Giao dịch Quản trị Tìm kiếm

Đăng nhập Quản lý tài


khoản Tìm kiếm
theo tên sp
Đăng kí Quản lý sản
phẩm
Xem TT SP
Quản lý
Đặt hàng đơn hàng

Thanh toán Quản lý


khuyến mại

Hình 5: Biểu đồ phân cấp chức năng


Trong phạm vi bài toán tập trung vào hoàn thiện hệ thống thanh toán nên tôi tập
trung vào phân tích chức năng thanh toán cũng như các chức năng hỗ trợ chức năng thanh
toán
Phân tích chức năng thanh toán

Mô tả Thanh toán giỏ hàng.


Đầu vào Thông tin sản phẩm, hình thức thanh toán.

Quá trình xử lý Cho phép người dùng thay đổi một số thông tin.
Lưu thông tin giỏ hàng và tính tổng tiền.

Đầu ra Đưa thông tin giỏ hàng vào cơ sở dữ liệu.

Bảng 2: Phân tích chức năng thanh toán


3.1.2 Mô hình luồng dữ liệu.
Biểu đồ luồng dữ liệu mức khung cảnh

Các thông tin tiện ích Yêu cầu thống kê kho


Khách
hàng
hàng
TT Hóa đơn

Quản trị

Mua hàng
Báo cáo trả lời
Website
Quicksilver
Thông tin đăng nhập

Quản trị
Thông tin phản hồi

Hình 6: Biểu đồ luồng dữ liệu mức khung cảnh


Biểu đồ luồng dữ liệu mức đỉnh

Sản phẩm
TT Sản
phẩm
Xem
TT

Tìm kiếm Giao dịch

Khách Hóa đơn


hàng
Quản trị TT phản
hồi
TT hóa đơn
Khách
Cập nhật thông tin khách hàng hàng

Hình 7: Biểu đồ luồng dữ liệu mức đỉnh


Biểu đồ dữ liệu mức 1 chức năng giao dịch

Đăng
nhập
Xem TT
sản phẩm

Sản
phẩm
Khách hàng Khách
hàng

Đặt
hàng

Thanh
toán
Đăng ký

Đơn hàng
Hóa đơn

Hình 8: Biểu đồ luồng dữ liệu mức 1 chức năng giao dịch


Biểu đồ luồng dữ liệu mức 1 chức năng quản trị

Quản lý
tài khoản
Thông tin
khuyến

TT nhà Sản phẩm


sản xuất

Khách
hàng

Đơn
hàng
Thông tin
đơn hàng

Hình 9: Biểu đồ luồng dữ liệu mức 1 chức năng quản trị


3.1.3 Cơ sở dữ liệu dùng cho việc thanh toán

Hình 10: Sơ đồ cơ sở dữ liệu


Bảng OrderForm

Tên thuộc tính Kiểu dữ liệu Ràng buộc


OrderForm int Khóa chính
OrderGroupId int
BillingAddressId nvarchar(64)
DiscountAmount decimal(38, 9)
SubTotal decimal(38,9)
ShippingTotal decimal(38,9)
HandlingTotal decimal(38,9)
TaxTotal decimal(38,9)
Total decimal(38,9)
Status nvarchar(64)
ProviderId nvarchar(255)
OrigOderGroupId int
ExchangeOrderGroupId int
AuthorizedPaymentTotal decimal(38, 9)
CapturedPaymentTotal decimal(38, 9)

Bảng 3: OrderForm
Bảng OrderFormDiscount

Tên thuộc tính Kiểu dữ liệu Ràng buộc


OrderFormDiscountId int Khóa chính
OrderGroupId int
OrderFromId int
DiscountId Int
DiscountAmount decimal(38, 9)
DiscountName nvarchar(50)
DisplayMessage nvarchar(100)
DiscountValue decimal(38, 9)

Bảng 4: OrderFormDiscount
Bảng OrderformPayment

Tên thuộc tinah Kiểu dữ liệu Ràng buộc


PaymentId int Khóa chính
OrderFormId int
OrderGroupId int
BildingAddressId nvarchar(64)
PaymentMethodId uniqueidentifier
PaymentMethodName nvarchar(128)
CustomerName nvarchar(64)
Amount decimal(38, 9)
PaymentType int
ValidationCode nvarchar(64)
AuthorizationCode nvarchar(255)
TransactionType nvarchar(255)
TransactionID nvarchar(255)
Status nvarchar(64)
ImplementationClass nvarchar(255)
ProviderTrấnctionID nvarchar(255)

Bảng 5: OderformPayment
Bảng OrderGroup

OrderGroupId Int
Instanceld uniqueidentifier
Affiliateld uniqueidentifier
Name nvarchar(64)
CustomeId uniqueidentifier
CustomerName nvarchar(64)
AddressId nvarchar(50)
ShippingTotal decimal(38, 9)
HandlingTotal decimal(38, 9)
TaxTotal decimal(38, 9)
SubTotal decimal(38, 9)
Total decimal(38, 9)
BillingCurrency nvarchar(64)
Status nvarchar(64)
ProviderId nvarchar(255)
SiteId Nvarchar(255)

Bảng 6: OrderGroup
Bảng OrderGroupAdreess

Tên thuộc tính Kiểu dữ liệu Ràng buộc


OrderGroupAddressId int Khóa chính
OrderGroupId int
Name nvarchar(64)
FirstName nvarchar(64)
LastName nvarchar(64)
Organization nvarchar(64)
Line1 nvarchar(80)
Line2 nvarchar(80)
City nvarchar(64)
State nvarchar(64)
CountryCode nvarchar(50)
CountryName nvarchar(50)
PostalCode nvarchar(20)
RegionCode nvarchar(50)
DaytimePhoneNumber nvarchar(32)
EveningPhoneNumber nvarchar(32)
FaxNumber nvarchar(32)
Email nvarchar(64)

Bảng 7: OrderGroupAdreess
Bảng LineItem

Tên thuộc tính Kiểu dữ liệu Ràng buộc


LineItemId int Khóa chính
OrderFormId int
OrderGroupId Int
Catalog nvarchar(255)
CatalogNode nvarchar(255)
ParentCatalogEntryId nvarchar(255)
CatalogEntryId nvarchar(255)
Quantity decimal(38, 9)
PlacedPrice decimal(38, 9)
ListPrice decimal(38, 9)
LineItemDiscountAmount decimal(38, 9)
OrderLevelDiscountAmount decimal(38, 9)
ShippingMethodName nvarchar(128)
ShippingMethodId uniqueidentifier
ExtendedPrice decimal(38, 9)
Description nvarchar(255)
Status nvarchar(64)
EpiSalesTax decimal(38, 9)
EpiTaxCategoryId int

Bảng 8: : LineItem
Bảng LineItemDiscount

Tên thuộc tính Kiểu dữ liệu Ràng buộc


LineItemDiscountId Int Khóa chính
OrderGroupId Int
LineItemId Int
DiscountId Int
DiscountAmount decimal(38, 9)
DiscountCode nvarchar(50)
DiscountName nvarchar(50)
DisplayMessage nvarchar(100)
DiscountValue decimal(38, 9)

Bảng 9: LineItemDiscount
Bảng Shipment

ShipmentId Int
OrderFỏmId Int
OrderGroupId Int
ShippingMethodId uniqueidentifier
ShippingAddressld nvarchar(64)
ShipmentTrackingNumber nvarchar(128)
ShipmentTotal decimal(38, 9)
ShippingDiscountAmount decimal(38, 9)
EpiShippingCost decimal(38, 9)
EpiShippingTax decimal(38, 9)
Status nvarchar(64)
LineItemIds nvarchar(MAX)
WareouseCode nvarchar(50)
PickListId int
SubTotal decimal(38, 9)
OperationKeys decimal(38, 9)

Bảng 10: Shipment

Bảng ShipmentDiscount

ShipmentDiscountId int
OrderGroupId int
ShipmentId int
DiscountId int
DiscountAmount decimal(38, 9)
DiscountCode nvarchar(50)
DiscountName mvarchar(50)
DisplayMessage nvarchar(50)
DiscountValue decimal(38, 9)

Bảng 11: ShipmentDiscount


3.1.4 Mô hình kết nối

Hình 11: Mô hình kết nối cổng thanh toán ngân lượng
Bước 1: Đặt mua hàng hóa dịch vụ

- Khách hàng truy cập website Quicksilver để đặt mua hàng hóa dịch vụ

- Quicksilver nhận đơn hàng điện tử của khách hàng và gửi sang cổng thanh toán
Ngân lượng để tiếp tục thực hiện xử lý thanh toán. Trong bản tin gửi sang phải có
đầy đủ dữ liệu như mô tả trong mục dữ liệu truyền nhận

Bước 2: Nhập thông tin tài khoản và xác thực thông tin thanh toán

- Khách hàng được chuyển qua website cổng thanh toán Ngân Lượng để xác thực
thông tin giao dịch thanh toán

- Người dùng có thể quyết định thanh toán hoặc hủy giao dịch

- Lấy thông tin tài khoản do người mua hàng nhập trên cổng thanh toán và gửi sang
hệ thống quản lý tài khoản để xác thực
Bước 3: Xác thực đồng ý thanh toán/Từ chối giao dịch

- Người dùng có thể quyết định thanh toán hoặc hủy giao dịch

- Lấy thông tin tài khoản do người mua hàng nhập trên hệ thống và gửi sang hệ thống
quản lý tài khoản để xác thực

Bước 4: Xác thực tài khoản khách hàng và kiểm tra tính hợp lệ giao dịch

- Xác thực tài khoản

- Kiểm tra tính hợp lệ của tài khoản và giao dịch: Trạng thái tài khoản, hạn mức giao
dịch, số dư khả dụng...đủ điều kiện thanh toán

- Nếu giao dịch không đủ điều kiện thanh toán thì chuyển sang bước 6 để thông báo

- từ chối giao dịch cho khách hàng

- Xác thực giao dịch bằng cơ chế OTP

- Nếu giao dịch đủ điều kiện thanh toán thì chuyển sang bước hạch toán

Bước 5: Hạch toán ghi nợ tài khoản người mua, ghi có tài khoản tạm thu người bán

- Hạch toán ghi nợ tài khoản người mua

- Hạch toán ghi có tài khoản của người bán(tạm thu hoặc chuyên thu)

Bước 6: Thông báo kết quả trên cổng thanh toán và chuyển kết quả về cho website merchant

- Hiển thị kết quả giao dịch thành công/thất bại trên cổng thanh toán

- Trả về kết quả cho Website Quicksilver

- Tự động Redirect sang trang của Quicksilver

- Bước 7: Website Quicksilver thông báo kết quả cho người dùng

- Nhận kết quả từ cổng thanh toán Ngân Lượng, hiển thị kết quả thanh toán thành

- công/thất bại trên Website Quicksilver

- Cung cấp hàng hóa cho người mua nếu giao dịch thanh toán thành công
CHƯƠNG 4: TÍCH HỢP CỔNG THANH TOÁN TRỰC TUYẾN NGÂN
LƯỢNG VÀO WEBSITE QUICKSILVER

4.1 Website tiến hành tích hợp QuickSilver


4.1.1. Giới Thiệu Website QuickSilver

Hình 12: Giao diện trang Quicksilver


4.1.2 Tìm hiểu cấu trúc trang order trong Quicksilver

Ordergroup

OrderForm

Line Item 1a
Shipment 1 Shipment Line Item 2a
Line Item na

Line Item 1b
Shipment
Shipment 2 Line Item 2b
Line Item nb

Payment Infor
Payment Binding
Address

Hình 13: Cấu trúc một order trong Episerver Commerce


4.1.3. Trạng thái đơn hàng trong quá trình mua hàng

Hình 14: Sơ đồ trạng thái đơn hàng trong quá trình mua hàng
4.1.4. Quy trình mua hàng trên website Quicksilver

Website
shopping

2. Start 3. Add 4. Add 5.Order


checkout address payment create

1. Cart
created

6.Order
processing

10. Return/ 9.Order 8. Add to 7.Shipment


Exchanges completed pick list released

Hình 15: Quy trình mua hàng trên Website Quicksilver

1. Cart create

Một người mua hàng không cần phải đăng ký trên trang web để có thể mua hàng.
Khi người mua hàng chọn một sản phẩm và thêm nó vào giỏ hàng sản phẩm được lưu
trong hệ thống và có thể được xem theo thứ tự trong giỏ hàng. Nếu người mua hàng
không hoàn thành thủ tục thanh toán, giỏ hàng sẽ ở lại trong hệ thống trong một thời
gian cụ thể
2. Start checkout

Người mua hàng tiến hành thanh toán cho giỏ hàng đã tạo khi tiến hàng thêm sản
phẩm vào giỏ hàng ở bước 1.

3. Add address
Địa chỉ của người mua hàng có thể tự động điền nếu khách hàng đó đang đăng nhập
tài khoản đã đăng ký với website trước đó hoặc được nhập thủ công tại bước này nếu người
mua hàng chưa có tài khoản đăng nhập

4. Add payment

Sau khi người dùng thêm địa chỉ ở bước 3 hệ thống sẽ tính tổng số tiền bao gồm
tổng tiền sản phẩm và phí vận chuyển. Trong bước này, người mua hàng chọn phương thức
thanh toán, ví dụ bằng thẻ tín dụng hoặc ngân lượng hoặc paypal.

5. Order created

Sau khi điền đầy đủ thông tin người mua hàng xác nhận việc mua hàng bằng việc
nhấn vào nút chấp nhận thanh toán. Đến bước này giỏ hàng được chuyển đổi thành đơn đặt
hàng, tại giao diện trang quản trị người quản trị đơn hàng có thể nhìn thấy đơn hàng với
trạng thái "Đang xử lý".

6. Order processing

Khi đơn hàng được tạo, quá trình xử lý đơn hàng bắt đầu. bao gồm các bước để
kiểm tra tình trạng kho hàng và hàng tồn kho cho các sản phẩm theo thứ tự và để tạo ra lô
hàng thực tế. Tùy thuộc vào trạng thái tồn kho của các sản phẩm, đơn hàng có thể được
chia thành nhiều lần giao hàng.

7. Shipment released

Khi lô hàng được xác minh, nó sẽ được vận chuyển. đơn đặt hàng bây giờ sẽ xuất
hiện trong orders, trong "shipping/receiving" và "released for shipping"

8. Add to picklist

Gồm các bước liên quan đến việc thêm các mục sản phẩm vào danh sách chọn theo
địa chỉ. Bước này cũng sẽ tạo ra một phiếu đóng gói, đó là giấy sẽ được gắn vào gói hàng
sẽ được vận chuyển

9. Order completed/shipped

Khi picklist với thứ tự khác nhau và phiếu đóng gói tương ứng của chúng được tạo,
đơn hàng sẽ được đặt thành “hoàn thành”.

10. Return/Exchanges

Chỉ hoàn thành đơn hàng có thể được trả lại. Tùy thuộc vào cách hệ thống được
thiết lập, trả về có thể được tạo tự động hoặc thủ công.
4.2. Phương pháp tích hợp
Checkout tiêu chuẩn

Tích hợp cổng thanh toán Ngân Lượng theo hình thức Checkout Tiêu chuẩn là hình
thức merchant site redirect khách hàng sang Ngân Lượng chọn hình thức thanh toán. Các
phương thức thanh toán:

Hình 16: Quy trình cung cấp dịch vụ

4.3 Định nghĩa dữ liệu truyền nhận


4.3.1 Tham số truyền sang Ngân Lượng (URL REDIRECT)
Danh sách tham số gửi lên cổng thanh toán

Tên trường Kiểu Null Mô tả


merchant_site_code String(10) No Mã website/merchant đã khai báo tại
nganluong (ID kết nối)
return_url String(500) No Địa chỉ trang merchant nhận kết quả thanh
toán để xử lý và thông báo đơn hàng hóa thành
công trên merchant
receiver String(255) No Email ngân lượng của merchant dùng để nhận
tiền thanh toán
transaction_info String(500) Yes Thông tin giao dịch
order_code String(150) No Mã đơn hàng, tên sản phẩm, tên dịch vụ của
merchant
Giá trị này có thể trùng nếu là tên sản phẩm
hoặc tên dịch vụ. Khuyến cáo không nên để
trùng nếu là mã đơn hàng
price Int(11) No Tổng số tiền đơn hàng cần thanh toán
currency String(3) No Mã tiền tệ. Nhận 1 trong 2 giá trị vnd hoặc usd
quality Int(11) No Số lượng đơn hàng
tax Int(11) No Số tiền thuế
discount Int(11) No Số tiền giảm giá
fee_cal Int(1) No Nhận giá trị 0 hoặc 1. Do hệ thống
NgânLượng.vn cho phép chủ tài khoản cấu
hình nhập/thay đổi phí lúc thanh toán hay
không. Nếu website của bạn đã có phí vận
chuyển và không cho sửa thì tham số này = 0
fee_shipping Int(11) No Phí vận chuyển
order_description String(100 Yes Mô tả về sản phẩm, đơn hàng
0)
buyer_info string(255) Yes Thông tin người mua có cấutrúc string: "Họ
tênngười mua *|* Địa chỉ Email *|* Điện thoại
*|* Địachỉ nhận hàng"

affiliate_code string(100) Yes Mã đối tác tham gia chương trình liên kết
củaNgânLượng.vn
lang String(3) Yes Ngôn ngữ hiển thị trên trang thanh toán
checkout củaNgânLượng nhận 1 trong 2 giá
trị: vi,en
secure_code string(100) No MD5Của chuỗi giá trị các tham số nối nhau
bằngdấu cách:secure_code
=MD5(Merchant_site_code + ' ' + return_url
+ ' ' + receiver+ ' ' + transaction_info + ' ' +
order_code + ' ' + price+ ' ' + currency + ' ' +
quantity + ' ' + tax + ' ' +discount + ' ' + fee_cal
+ ' ' + fee_shipping + ' ' +
order_description + ' ' + buyer_info + ' '
+affiliate_code + ' ' +secure_pass')`Trong
đósecure_pass: là mật khẩu kết nối tương ứng
merchant_site_code
cancel_url string(500) Yes Link hủy thanh toán, khi người dùng bấm vào
nút hủy thanh toán
notify_url string(500) Yes Link nhận kết quảtrả về qua server sau khi
thanhtoán thành công

Bảng 12: Danh sách thông số gửi sang ngân lượng

4.3.2 Tham số Ngân Lượng trả về (URL RETURN)


Kết quả thanh toán đơn hàng

Tham số ngân lượng trả về cho merchant


Tên trường Kiểu Mô tả
transaction_info String(255) Thông tin về giao dịch, Giá trị do website gửi
sang
price Int(11) Tổng tiền đã thanh toán
payment_id Int(11) Mã giao dịch tại ngân lượng
payment_type Int(1) Hình thức thanh toán:1-Thanh toán ngay (tiền đã
chuyển vào tài khoảnNgânLượng.vn của người
bán);2-Thanh toán Tạm giữ (tiền người mua đã
thanh toán nhưngNgânLượng.vn đang giữ hộ)
error_text String(255) Giao dịch thanh toán có bị lỗi hay không.
$error_text == "" làkhông có lỗi. Nếu có lỗi, mô
tả lỗi được chứa trong $error_tex
secure_code String(50) Mã checksum (mã để kiểm tra, xác minh thanh
toán)
token_nl String Token ngân lượng trả về
order_code String(255) Mã hoá đơn/tên sản phẩm

Bảng 13: Tham số Ngân lượng trả về

4.4. Triển khai tích hợp


4.4.1 Các bước triển khai và tích hợp thực tế
Bước 1: Đăng ký tích hợp thanh toán

Hình 17: Giao diện đăng ký tích hợp thanh toán tại ngân lượng
Hình 18: Danh sách website đăng ký tích hợp thanh toán thành công

Bước 2: Tiến hành lập trình tạo module thanh toán

Xây dựng module thanh toán có tên


Episerver.Business.Commerce.NganLuongPayment và tiến hành references đến module
EPiServer.Business.Commerce.

Bước 2.1: Tiến hành nhúng nút thanh toán

- Thêm nút thanh toán quan ngân lượng vào website vào file có tên _NganLuong.cshtml
trong thư mục view.Để xem source code chi tiết có thể xem ở phụ lục 1

Bước 2.2: Xây dựng link kết nối đến ngân lượng

- Tạo url redirect sang trang ngân lượng trong NganLuongPaymentGateway class. Để
tham khảo source class NganLuongPaymentGateway có thể xem ở phụ lục 2.
- Mã hóa thông tin gửi sang bằng thuật giải thuật MD5. Để có thêm thông tin chi tiết
hàm mã hóa có thể tham khảo thêm thông tin ở phụ lục 3.

Bước 2.3: Nhận kết quả trả về và thông báo cho khách hàng tình trạng thanh toán
- Xây dựng Controller xử lý quá trình nhận kết quả trả về có tên
NganLuongPaymentController.cs. Để có thêm thông tin chi tiết Controller có thể tham
khảo thêm thông tin ở phụ lục 4
- Xây dựng trang nhận kết quả trả về có tên NganLuongPage.cs. Tham khảo thêm thông
tin trang NganLuongPage.cs ở phụ lục 5

- Có hai trường hợp có thể xảy ra là thanh toán thành công hoặc cancel bởi người bán,
để cho ngân lượng biết sẽ trả kết quả thông qua trang nào phải tiến hành cấu hình
thông số ReturnURL.
<add key="NganLuong:ReturnUrl"
value="http://localhost:50244/nganluongpayment"/>

- Thông số ReturnURL sẽ giúp ngân lượng biết sẽ trả kết quả về khi người dùng tiến
hành thanh toán qua trang ngân lượng, khi tiến hành thanh toán ở trang ngân lượng
sẽ có hai trường hợp xảy ra:
TH1: Người mua hàng nhấn cancel trong quá trình thanh toán thì sẽ được trả về
trang Checkout.
TH2: Nếu thanh toán thành công ngân lượng sẽ gửi thông thanh toán về cho website
thông qua trang nhận kết quả trả về NganLuongPage.cs xây dựng phía trên.
- Để phục vụ cho quá trình cập nhật đơn hàng sau khi thanh toán em xây dựng trang
NganLuongPaymentController.cs
- Nhiệm vụ của trang nganluongpaymentcontroller.cs là kiểm tra URL lượng gửi về để
xác định tình trạng thanh toán của khách hàng,
TH1: Nếu URL ngân lượng gửi về rỗng thì nganluongpaymentcontroller.cs sẽ tiến
hành chuyển người dùng sang trang Checkout
TH2: Nếu URL ngân lượng gửi về có thông tin thanh toán thì sẽ tiến hành đưa người
dùng đến trang NganLuongConfirmationPage.

Hình 19: Cấu hình trang NganLuongConfirmationPage.


Bước 2.4 Kiểm tra kết quả thanh toán sau đó cập nhật thông tin đơn hàng
- Sau khi nhận được kết quả trả về tiến hành kiểm tra thông tin thanh toán và
tiến hàng cập nhật thông tin đơn hàng dựa theo kết quả trả về của ngân lượng

4.5 Kết quả thực nghiệm


4.5.1 Thực hiện thanh toán sau khi tích hợp
Sơ đồ minh họa quy trình thực hiện

Hình 20: Sơ đồ quy trình thực hiện thanh toán demo

Mô tả quy trình thực hiện thanh toán

- Để bắt đầu quá trình thanh toán người dùng phải tiến hành them sản phẩm vào giỏ
hàng.
Hình 21: Giao diện khi thêm sản phẩm vào giỏ hàng

- Sản phẩm sau khi thêm vào giỏ hàng sẽ được hiển thị trong giỏ hàng phí người dùng
đồng thời sản phẩm đó cũng xuất hiện trong quan quản trị giỏ hàng.

Hình 22: Giao diện trang quản trị giỏ hàng khi có sản phẩm

- Khi muốn thanh toán cho giỏ hàng vừa tạo người dùng tiến hàng chọn thanh toán
qua ngân lượng.
Hình 23: Giao diện chọn thanh toán qua Ngân lượng
- Thông tin đơn hàng được gửi sang Ngân lượng, tại đây người dùng chọn phương
thức thanh toán.

Hình 24: Giao diện chọn hình thức thanh toán


- Sau khi chọn thông phương thức thanh toán tiến hành nhập thông tin thanh toán

Hình 25: Giao diện trang điền thông tin thanh toán
Hình 26: Giao diện trang điền thông tin thẻ
- Khi tiến hành thanh toán thành công Ngân lượng sẽ đưa ra thông báo cho người
dùng

Hình 27: Giao diện trang hiển thị thông báo thành công
- Sau khi người dung thanh toán thành công bên trang ngân lượng, ngân lượng sẽ gửi
thông tin thanh toán của người dung về trang order-confirmation

Hình 28: Giao diện trang nhận kết quả trả về phía người thanh toán
- Đồng thời sản phẩm trong giỏ hàng được chuyển từ giỏ hàng qua phần quản lý đơn
hàng

Hình 29: Giao diện trang nhận kết quả trả về phía người quản trị
KẾT LUẬN
Đánh giá kết quả đạt được

Website đã tích hợp được cổng thanh toán trực tuyến NgânLượng.vn thuận lợi cho
khách hàng khi mua hàng và tiến hành thanh toán. Dữ liệu trạng thái đơn hàng được cập
nhật tự động vào cơ sở dữ liệu.
Hướng phát triển

Trong thời gian thử nghiệm sẽ tiến hành bổ sung, khắc phục những thiếu sót và lỗi
phát sinh, trong tương lại sẽ xây cải tiến nhận kết quả trả về của NgânLượng.vn thông qua
Web service
PHỤ LỤC 1: MÃ NGUỒN TRANG _NganLuong.cshtml

@model
EPiServer.Business.Commerce.NganLuongPayment.NganLuongPaymentMethod
@Html.HiddenFor(model => model.SystemKeyword)
<div class="alert alert-info">
Ngan Luong - cong thanh toan so 1 Vietnam.
</div>
PHỤ LỤC 2: MÃ NGUỒN TRANG Episerver.Business.Commerce.NganLuongPayment

using EPiServer.Commerce.Order;
using EPiServer.ServiceLocation;
using EPiServer.Web;
using Mediachase.Commerce.Orders;
using Mediachase.Commerce.Plugins.Payment;
using System;
using System.Configuration;
using System.Linq;0
using System.Security.Cryptography;
using System.Text;
using System.Web;

namespace EPiServer.Business.Commerce.NganLuongPayment
{
public class NganLuongPaymentGateway : AbstractPaymentGateway,
IPaymentPlugin
{
private IOrderNumberGenerator _orderNumberGenerator;

public NganLuongPaymentGateway() :
this(ServiceLocator.Current.GetInstance<IOrderNumberGenerator>())
{}

public NganLuongPaymentGateway(IOrderNumberGenerator
orderNumberGenerator)
{
_orderNumberGenerator = orderNumberGenerator;
}

public override bool ProcessPayment(Payment payment, ref string message)


{
var orderGroup = payment.Parent.Parent;
var processingResult = ProcessPayment(orderGroup, payment);

if (processingResult.RedirectUrl.Length > 0)
{
HttpContext.Current.Response.Redirect(processingResult.RedirectUrl);
}

return processingResult.IsSuccessful;
}

public PaymentProcessingResult ProcessPayment(IOrderGroup orderGroup,


IPayment payment)
{

var message = "message";


var redirectUrl = CreateRedirectUrl(orderGroup);
return PaymentProcessingResult.CreateSuccessfulResult(message, redirectUrl);
}

public string CreateMD5Hash(string input)


{
// Use input string to calculate MD5 hash
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);

// Convert the byte array to hexadecimal string


StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2"));
// To force the hex string to lower-case letters instead of
// upper-case, use he following line instead:
// sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}

public String GetMD5Hash(String input)


{

System.Security.Cryptography.MD5CryptoServiceProvider x = new
System.Security.Cryptography.MD5CryptoServiceProvider();

byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);

bs = x.ComputeHash(bs);

System.Text.StringBuilder s = new System.Text.StringBuilder();

foreach (byte b in bs)


{

s.Append(b.ToString("x2").ToLower());

String md5String = s.ToString();

return md5String;
}

private string CreateRedirectUrl(IOrderGroup orderGroup)


{
var orderCode = _orderNumberGenerator.GenerateOrderNumber(orderGroup);
var redirectUrl =
ConfigurationManager.AppSettings["NganLuong:RedirectUrl"].ToString();

var securePass =
ConfigurationManager.AppSettings["NganLuong:SecurePass"].ToString();

var merchantSiteCode =
ConfigurationManager.AppSettings["NganLuong:SiteCode"].ToString();

var returnUrl =
ConfigurationManager.AppSettings["NganLuong:ReturnUrl"].ToString();

var receiver =
ConfigurationManager.AppSettings["NganLuong:Receiver"].ToString();

var transactionInfo =
ConfigurationManager.AppSettings["NganLuong:TransactionInfor"].ToString() +
orderCode;

var payment = orderGroup.GetFirstForm().Payments.First();


var price = payment.Amount.ToString();
var currency = orderGroup.Currency.CurrencyCode;
var quantity = "1";
var tax = "0";
var discount = "0";
var feeCal = "0";
var feeShipping = "0";
var orderDescription =
ConfigurationManager.AppSettings["NganLuong:OrderDescription"] + orderCode;

var billingAddress = payment.BillingAddress;


var buyerInfo = $"{billingAddress.FirstName}
{billingAddress.LastName}*|*{billingAddress.Email}*|*{billingAddress.DaytimePho
neNumber}*|*{billingAddress.Line1}";
var affiliateCode = "";
var lang = "vi";
var cancelUrl =
ConfigurationManager.AppSettings["NganLuong:CancelUrl"].ToString();

var security_code = merchantSiteCode;


security_code += " " + returnUrl;
security_code += " " + receiver;
security_code += " " + transactionInfo;
security_code += " " + orderCode;
security_code += " " + price;
security_code += " " + currency;
security_code += " " + quantity;
security_code += " " + tax;
security_code += " " + discount;
security_code += " " + feeCal;
security_code += " " + feeShipping;
security_code += " " + orderDescription;
security_code += " " + buyerInfo;
security_code += " " + affiliateCode;
security_code += " " + securePass;

string secureCodeMd5 = CreateMD5Hash(security_code);

redirectUrl = UriUtil.AddQueryString(redirectUrl, "merchant_site_code",


merchantSiteCode);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "return_url",
HttpUtility.UrlEncode(returnUrl).ToLower());
redirectUrl = UriUtil.AddQueryString(redirectUrl, "receiver",
HttpUtility.UrlEncode(receiver));
redirectUrl = UriUtil.AddQueryString(redirectUrl, "transaction_info",
HttpUtility.UrlEncode(transactionInfo));
redirectUrl = UriUtil.AddQueryString(redirectUrl, "order_code", orderCode);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "price", price);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "currency", currency);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "quantity", quantity);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "tax", tax);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "discount", discount);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "fee_cal", feeCal);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "fee_shipping",
feeShipping);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "order_description",
HttpUtility.UrlEncode(orderDescription));
redirectUrl = UriUtil.AddQueryString(redirectUrl, "buyer_info",
HttpUtility.UrlEncode(buyerInfo));
redirectUrl = UriUtil.AddQueryString(redirectUrl, "affiliate_code",
affiliateCode);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "lang", lang);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "secure_code",
secureCodeMd5);
redirectUrl = UriUtil.AddQueryString(redirectUrl, "cancel_url",
HttpUtility.UrlEncode(cancelUrl));

return redirectUrl;
}
}
}

PHỤ LỤC 3: MÃ NGUỒN CLASS MÃ HÓA MD5

public string CreateMD5Hash(string input)


{
// Use input string to calculate MD5 hash
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);

// Convert the byte array to hexadecimal string


StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2"));
// To force the hex string to lower-case letters instead of
// upper-case, use he following line instead:
// sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}

PHỤ LỤC 4: MÃ NGUỒN CONTROLER NganLuongPaymentController

=
using EPiServer.Commerce.Order;
using EPiServer.Core;
using EPiServer.Security;
using EPiServer.ServiceLocation;
using EPiServer.Web.Mvc;
using EPiServer.Web.Routing;
using Mediachase.Commerce.Orders;
using Mediachase.Commerce.Security;
using System.Linq;
using System.Web.Mvc;

namespace EPiServer.Business.Commerce.NganLuongPayment
{
public class NganLuongPaymentController : PageController<NganLuongPage>
{
private readonly IOrderRepository _orderRepository;
private readonly IContentLoader _contentLoader;
private readonly UrlResolver _urlResolver;

public NganLuongPaymentController() :
this(ServiceLocator.Current.GetInstance<IOrderRepository>(),
ServiceLocator.Current.GetInstance<IContentLoader>(),
ServiceLocator.Current.GetInstance<UrlResolver>())
{}
public NganLuongPaymentController(IOrderRepository orderRepository,
IContentLoader contentLoader, UrlResolver urlResolver)
{
_orderRepository = orderRepository;
_contentLoader = contentLoader;
_urlResolver = urlResolver;
}

public ActionResult Index()


{
if (Request.QueryString.Count == 0)
{
// cancel order
var cancelUrl = GetUrlFromStartPageReferenceProperty("CheckoutPage"); //
get link to Checkout page
return Redirect(cancelUrl);
}

var cart =
_orderRepository.LoadCart<ICart>(PrincipalInfo.CurrentPrincipal.GetContactId(),
Cart.DefaultName);
var payment = cart.GetFirstForm().Payments.First();
var purchaseOrder = MakePurchaseOrder(cart, payment,
Request.QueryString["order_code"]);

// redirect to Order Confirmation page


var redirectUrl = "http://vnexpress.net";

return Redirect(redirectUrl);
}

private IPurchaseOrder MakePurchaseOrder(ICart cart, IPayment payment, string


orderNumber)
{
var orderReference = _orderRepository.SaveAsPurchaseOrder(cart);
var purchaseOrder =
_orderRepository.Load<IPurchaseOrder>(orderReference.OrderGroupId);
purchaseOrder.OrderNumber = orderNumber;

// Remove old cart


_orderRepository.Delete(cart.OrderLink);

purchaseOrder.OrderStatus = OrderStatus.InProgress;
_orderRepository.Save(purchaseOrder);

return purchaseOrder;
}

/// <summary>
/// Gets url from start page's page reference property.
/// </summary>
/// <param name="propertyName">The property name.</param>
/// <returns>The friendly url.</returns>
private string GetUrlFromStartPageReferenceProperty(string propertyName)
{
var startPageData =
_contentLoader.Get<PageData>(ContentReference.StartPage);
if (startPageData == null)
{
return _urlResolver.GetUrl(ContentReference.StartPage);
}

var contentLink = startPageData.Property[propertyName]?.Value as


ContentReference;
if (!ContentReference.IsNullOrEmpty(contentLink))
{
return _urlResolver.GetUrl(contentLink);
}
return _urlResolver.GetUrl(ContentReference.StartPage);
}
}
}

PHỤ LỤC 5: MÃ NGUỒN TRANG NganLuongPage

using EPiServer.Core;
using EPiServer.DataAnnotations;

namespace EPiServer.Business.Commerce.NganLuongPayment
{
[ContentType(GUID = "CA3AAF78-09AC-4FB7-A8A5-6BEDF978D06D",
DisplayName = "Ngan Luong Payment Page",
Description = "Ngan Luong Payment process page.",
GroupName = "Payment",
Order = 100)]
public class NganLuongPage : PageData
{
}
}
TÀI LIỆU THAM KHẢO
HỌC VIỆN NGÂN HÀNG

KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

===========================

NHẬT KÝ THỰC TẬP

Họ và tên: Bùi Văn Ba

Lớp/Khóa: K18HTTTA Mã SV:18A4040019

Email: babuimis.hvnh@gmail.com Điện thoại: 0988950408

Đề tài thực tập: Hoàn thiện và phát triển hệ thống thanh toán trực tuyến tại nền tảng
Episerver Commercer của công ty Episerver

Giảng viên hướng dẫn: Ths. Chu Văn Huy

Cơ quan thực tập: Công ty trách nhiệm hữu hạn một thành viên nghiên cứu và phát triển
tin học Episerver

Địa chỉ cơ quan: Tầng 6,7,11 Tòa nhà Sông Hồng Building số 165 Thái Hà, Đống Đa, Hà
Nội.

Điện thoại:

ST Ngày tháng GVHD trao đổi công việc cần thực hiện Kết quả thực hiện của
T (2) (3) sinh viên
(1) (4)

You might also like