Ví điện tử là một phương tiện thanh toán trung gian, nó như một ví tiềntrênmạng Internet và điện thoại di động mà người tiêu dùng có thể sử dụng đểmua bánhàng hóa tại các trang web hoặc
Trang 3MỤCLỤC ii
DANHMỤCHÌNHVẼ iii
LỜINÓIĐẦU iv
CHƯƠNG1 TỔNG QUANVỀVÍ ĐIỆNTỬ 5
1.1 Kháiniệm về ví điệntử 5
1.2 Dịchvụ ví điệntử 5
1.2.1 Hoạtđộng cungứng Ví điệntử 6
1.2.2 Hồsơ mở ví điệntử 6
1.3 Nhữngchứcnăng củaví điệntử 7
1.4 Lợiíchcủaví điệntử 8
CHƯƠNG2 HỆTHỐNGVÍĐIỆNTỬ 10
2.1 WalletEntities 10
2.2 WalletAccounting Structure 11
2.3 Technicaloverview 13
2.3 Multi-Subsidiary 14
2.4 Balance Transactions 15
2.5 FeeHandling 20
2.6 WalletandPayment Module Interaction 22
2.7 UserModule 27
DANHMỤCHÌNHV
Trang 4Hình1 V í đ i ệ n tử 4
Hình2 W a l l e t E n t i t i e s 9
Hình3 T e c h n i c a l Overview 12
Hình4 G i a o dịchởmột côngtycon 13
Hình5 G i a o dịchởnhiềucôngty con 13
Hình6 G i a o dịchsốdư khácnhau 15
Hình7 B i ể u đồ hoạt động giaodịchbằngví điệntử 16
Hình8 B i ể u đồ hoạt động liênkếtví điệntử với thẻ ngân hàng 17
Hình9 U s e c a s e tổng quát 19
Hình1 0 B i ể u đồ hoạt động nạptiền vào ví điệntử 32
Trang 5Ngày càng nhiều doanh nghiệp nhận thức được lợi ích to lớn của việctiếnhành hoạt động thương mại bằng những phương tiện điện tử Thông quacácphương tiện điện tử, mọi hoạt động kinh doanh đều được tiến hành nhanhchóng,hiệuquả và tiếtkiệm hơn, khôngphụ thuộc vàothời gianvàkhoảngcáchđịalí
Với việc ứng dụng ngày càng cao về công nghệ thông tin, việc phi vậtchấthoá các trung gian thanh toán ngày càng được thực hiện tốt hơn, điều đó chophéptăngđộ tin cậycủaquátrình thanh toán
Ví điện tử là một phương tiện thanh toán trung gian, nó như một ví tiềntrênmạng Internet và điện thoại di động mà người tiêu dùng có thể sử dụng đểmua bánhàng hóa tại các trang web hoặc thanh toán chi phí điện, nước, điện thoại… Tươngtự như ở các nước có nền thương mạiđiện tử phát triển, người sử dụng ở Việt Namhiện cũng có thể nạp tiền từ tài khoản ngân hàng vào ví điện tử hoặc ngượclại,hoặcchuyểntiềndễdàng
Thị trường ví điện tử ở Việt Nam mặc dù mới trong giai đoạn phát triểnbanđầun h ư n g đ a n g t r ở n ê n s ô i đ ộ n g v ớ i s ự t h a m g i a c ủ a c ả n h à c u n g c ấ p d ị c
h v ụ nướcngoài,đ iề unàygópp hầ n tạochongười tiêudùngnh iề u cơhội hơntrongviệclựachọnmột phươngthứcthanh toánđiệntử phù hợp
Nhận thức được những lợi ích cũng như tiềm năng phát triển của loạihìnhthanh toán không dùngtiền mặt này, nhóm chúng em đã chọn đề tài “Tìm hiểuvềhệthống ví thanh toán điệntử”
Sau thời gian thực hiện bài tập lớn, các mục tiêu về cơ bản đã đạt được.Rấtmong được sự góp ý của các thầy cô, cũng như các bạn bài tập lớn này đượchoànthiệnhơn
SINHVIÊNTHỰCHIỆN
Nguyễn ChíBìnhTrần NguyệtChiQuáchNgọcQuả
ng
Trang 61.2. Dịchvụvíđiệntử
Hình1 Víđiệntử
Dịch vụ ví điện tử là dịch vụ cung cấp cho khách hàng một tài Khoản điệntửđịnh danh do các tổ chức cung ứng dịch vụ trung gian thanh toán tạo lập trênvậtmang tin (như chip điện tử, sim điện thoại di động, máy tính ), cho phép lưugiữmột giá trị tiền tệ được đảm bảo bằng giá trị tiền gửi tương đương với số tiềnđượcchuyển từ tài Khoản thanh toán của khách hàng tại ngân hàng vào tài Khoảnđảmbảothanh toán củatổchứccungứng dịchvụ ví điệntửtheo tỷ lệ1:1
Theo quy định tại Điều 2 Thông tư 39/2014/TT-NHNN Dịch vụ ví điện tửlàmộtdịchvụ thuộc dịchvụ hỗ trợdịchvụ hỗtrợthanh toán
Dịch vụ ví điện tử là dịch vụ cung cấp cho khách hàng một tài Khoản điệntửđịnh danh do các tổ chức cung ứng dịch vụ trung gian thanh toán tạo lập trênvậtmang tin (như chip điện tử, sim điện thoại di động, máy tính ), cho phép lưugiữmột giá trị tiền tệ được đảm bảo bằng giá trị tiền gửi tương đương với số tiềnđượcchuyển từ tài Khoản thanh toán của khách hàng tại ngân hàng vào tài Khoảnđảmbảo thanh toán của tổ chức cung ứng dịch vụ ví điện tử theo tỷ lệ 1:1.” (khoản8Điều1 Nghị định 80/2016/NĐ-CP)
Trang 7Việc nạp tiền vào Ví điện tử, rút tiền ra khỏi Ví điện tử của khách hàngphảithựchiệnthông qua tài khoản thanhtoán củakhách hàng tại ngânhàng.
1.2.2 Hồsơmởvíđiệntử
Hồ sơ mở Ví điện tử theo quy định tại khoản 3 Điều 1 Thông tư NHNNgồm những giấytờsau:
23/2019/TT-a) ĐốivớiVíđiện tửcủacánhân:
Thôngtincủacá nhânmởVíđiệntửtheoyêucầucủa tổchứccungứngdịchvụVíđiệntử
và phù hợp với quy định tại khoản2 Điềunày;
Căn cước công dân hoặc chứng minh nhân dân hoặc hộ chiếu còn thời hạn,giấykhai sinh (đối với cá nhân là công dân Việt Nam chưa đủ 14 tuổi); thị thực nhậpcảnh hoặc giấy tờ chứng minh được miễn thịthực nhập cảnh của cá nhân mở Víđiệntử (đối với cánhânlàngười nướcngoài);
tờ khác theo quy định của phápluật;
Các giấy tờ chứng minh tư cách đại diện của người đại diện theo pháp luậthoặcđại diện theo ủy quyền (gọi là người đại diện hợp pháp) của tổ chức mở Ví điệntử kèm theo căn cước công dân hoặc chứngminh nhân dân hoặc hộ chiếu cònthờihạn củangười đó;
Trang 8c) Khách hàng đăng ký mở Ví điện tử có thể xuất trình các tài liệu quy địnhtạiđiểma(ii),b(ii)vàb(iii)khoản nàydướihìnhthứcbảnchínhhoặcbảnsaohoặcbảnquét(scan) từbảngốchoặchìnhthứckháctheoquyđịnhcủatổchứccungứngdịchvụ Ví điệntử;
d) Khách hàng có thể đăng ký và gửi Hồ sơ mở Ví điện tử trực tiếp tại trụ sở,chinhánh,phònggiaodịchcủatổchức cungứngdịchvụVíđiệntử hoặccáckênhgiaod ịc ht r ự c t u y ế n c ủ a t ổ c h ứ c c u n g ứ n g d ị c h v ụ V í đi ện t ử h o ặ c c á c p h ư
ơ n g thức khác theo quy định của tổ chức cung ứng dịch vụ Ví điện tử và phù hợp vớiquyđịnh củapháp luật
Ví điện tử ra đời nhằm thúc đẩy chủ trương thanh toán không dùng tiềnmặtcủa chính phủ Nhiều chuyên gia tài chính cũng khá e ngại trước tình trạngthờigian qua hàng loạt đơn vị đua nhau ra mắt các loại ví điện tử để giúp kháchhàngthuận tiện trong các giao dịch điện tử lại cho sử dụng các hình thức nạp, rúttiềnngoài ngân hàng Nhưng một trong những nguy cơ của nạn rửa tiền của tộiphạmchínhlàtìmcáchđưadòngtiềnbấthợpphápvàolưuchuyểntronghệthốngkinhtế tài chính Đây là giai đoạn khó khăn của tội phạm rửa tiền vì tiền và tài sảnbấthợpphápsẽđượccơquanđiềutratheodõi.Hơnnữa,cáccơquanchứcnăngsẽđặt ra các quy chế, quy định pháp luật để khống chế tội phạm rửa tiền thông quaviệc quy định lượng tiền mặt đượcchuyển qua biên giới, số tiền được thanh toán,khai báo ngân hàng Quy chế nàyđược cụ thể hóa thông qua Điều 9 Thông tư39/2014/TT-NHNN quy địnhvềhoạtđộngví điệntửnhư sau:
2 Tổ chức cung ứng dịch vụ Ví điện tử phải có công cụ để Ngân hàng Nhà
nướckiểm tra, giám sát theo thời gian thực tổng số tiền của khách hàng trên các
Ví điệntử và tổng số tiền trên tài khoản đảm bảo thanh toán của tổ chức cung ứng dịch vụVíđiệntử tại cácngân hàng
3 Việc nạp tiền vào Ví điện tử, rút tiền ra khỏi Ví điện tử của khách hàng
phảithựchiệnthông qua tàikhoản thanh toán củakháchhàng tại ngân hàng
1.3. Nhữngchứcnăngcủavíđiệntử
Nhưđịnhnghĩavềvíđiệntửlàgìthìvísẽhoạtđộngkhicósựliênkếtvớitàikhoảnngâ
n hàng Từđó, ví điệntử sẽcónhững chứcnăngcụthể nhưsau:
Trang 9 Thanhtoán:
Dùngví đ iệ ntửđ ểthanh t oá nc á c lo ại hoáđơ nd ịc h vụ,m ua sắmnhư: tiềnđiện,tiềnnước,muavéxemphim, đóngphí bảo hiểm…
Chuyểnvànhậntiền:Víđiệntửcóthểchuyểnvànhậntiềntừcáctàikhoảnvíđiệntửvới nhaucũngnhưtừ víđến tàikhoản ngânhàng hoặc ngượclại
Lưutrữ:
Víđiệntửcóthểgiữtiềnvớisốlượngkhálớn,giúpbạndễdàngmuahàng, nhận thanh toán, tiết kiệm…
Đặcbiệtcầnlưuý,tấtcảchứcnăngcủavíđiệntửđượcápdụngtrongmôitrườngtrựctuyến
1.4. Lợiíchcủavíđiệntử
Ví điện tử hiện nay được sử dụng phổ biến trên toàn Thế giới với cácthươnghiệu như Moneybooker, WebMoney,…Còn ở Việt Nam, hình thức thanhtoán nàycũng đang dần trở nên bùng nổ hơn Các đơn vị tham gia phát triển vàkhách hàngđang ngày càng tin tưởng, tin dùng nhiều hơn Bởi lẽ ví tiền điện tửmang đến chochủnhânsở hữu nhiều lợiíchvôcùngđặc biệt.Trongđóchẳnghạn như:
Đảmbảosựtiệnlợichongườitiêudùng:lýdolàvìvíđiệntửkhimangtheocó thể giúpngười dùng hạn chế số lượng thẻ và tiền mặt Tất cả những gì ngườidùng cần làm là sử dụng ví điện tử để thanh toán cho các mặthàng Chỉ cầnngười dùng quét thẻ hoặc chạm vào các thiết bị thanh toán là được Vìvậy màquá trìnhthanh toán nhanhgọn, tiện lợi và tiết kiệm tối đa thời gian chờđợi.Hơn nữa người dùng cũng có thể hạn chế tình trạng trộm cắp tiền mặt haykhókhăn khi thanh toán
Cung cấp quyền truy cập cho nhiều loại thẻ khác nhau: ví điện tử là tổ hợplưutrữ thẻ tín dụng cũng nhưthẻ ghi nợ Loại ví này có thể ứng dụng đa dạngchonhiềuloạithẻkhácnhau.Đặcbiệtnếunhàcungcấptươngthíchcùngvớiloạivíđiệntửchúngtađangdùngcònấntượnghơn.Chúngtađượcphéplưutrữthẻtích điểm hay thẻ khách hàng khi thanh toán Thậm chí chúng ta còn đượcnhận các phiếu giảm giá cho phépbạn tận hưởng cuộc sống mà không cần giấytờ
Bảo mật tốt hơn: cụ thể ví tiền điện tự giống một chiếc thẻ ghi trợ trongquátrìnhg i a o d ị c h N g a y k h i t h ự c h i ệ n b ấ t k ỳ t h a n h t o á n n à o , n g ư ờ i d ù
n g c ũ n g phải cần nhập mã PIN để ủy quyền thanh toán Một số thiết bị tích hợp sinh trắchọc người dùng cần có dấu vân taythì mới thanh toán được.Hơn hết ví điện tửcòn được xác minh qua nhà cung cấp bên thứ 3.Ngay cả khi người dùng mất víđiện tử thì vẫn có thể truy cập vào tài khoảnbằng một thiết bị mới Vì vậy khisử dụng ví tiền điện tử bạn hoàn toàn an tâm
về các rủi ro mất cắp tiền bạc.Đồng thời hạn chế tối đa tình trạngmượn danhtính thanh toán hoặc rút tiền.Đây là một lợi thế lớn so với việc chúng ta sửdụng tiền mặt hay các loại tàikhoản ngân hàng khác
Trang 10 Dễ dàng theo dõi thói quen chi tiêu:đ â y l à m ộ t t r o n g n h ữ n g đ i ề u
ý khinhắcđếnlợiíchdùngvíđiệntửlàgì.Bởilẽvíđiệntửcóthểtạocácbáocáo chitiết loại chi tiêu cụ thể của người dùng trong ngày, tháng Từ đó ngườidùng có thể kiểm soát tài chính củamình một cách hiệu quả.M ặ t k h á c v í đ i ệ n tử cũng có thể giúp ngườidùng quản lý các chi tiêu một cách có logic Chỉ cầnkhi sử dụng, chúng ta cốđịnh ngân sách cho các danh mục chi tiêu làđược.Điềun à y sẽ g i ú p c h ú n g t a m u a sắ m đ ú n g v ớ i k h o ả n c h i t i ê u đ ề r a v à k
h ô n g vượt quá mức quy định.Tuy nhiên trong trường hợp nếu mua mặt hàng quá lớnthì
có thể vô hiệu quá tính năng quản lý Như vậy chúng ta sẽ có đủ số tiền đểthựchiệnthanh toán trong nhữnglúccầnthiết
Trang 11CHƯƠNG2.HỆTHỐNG VÍĐIỆN TỬ 2.1 WalletEntities
Hình2 WalletEntities
Subsidiaryđại diện cho pháp nhân hệ thống là đối tác hợp đồng hợp
phápcho mọi Người dùng Nó có bộ tài khoản kế toán (đóng) riêng và là cơ sở chohầuhếtcáccấuhình
Userđại diện cho một pháp nhân khách hàng là đối tác hợp đồng hợp
phápchoCôngtycon.Ngườidùngcóthểcócácthuộctínhnhưtên/địachỉ,cóthểcósốnhận dạng (chẳng hạn như địa chỉ email hoặc số điện thoại được sử dụng đểđăng nhập / nhận dạng) và dữ liệuxác thực (ví dụ: mật khẩu hoặc thông tin đăngnhập API và vai trò bảo mật) Ngườidùng là chủ sở hữu của một chiếc ví Ngườidùngcómứcxác minhtươngứng với quytrìnhKYC đượcthựcthi
Walletđại diện cho hợp đồng giữa Công ty con và Người dùng, đồng thời
lànơichứatài khoản ví và côngcụthanh toán
WalletAccountđại diện cho một tài khoản trong ví với một loại tiền tệ
duynhất và một mục đích xác định, tùy thuộc vào loại tài khoản-ví Thông thường,ítnhất một tài khoản ví chính tồn tại trong một ví hoặc nhiều tài khoản trongtrườnghợpvíhỗtrợnhiềuloạitiềntệ.Tàikhoản vícóthểlưutrữtiềnvàkhảnăngsửdụngphụ thuộc vào cấuhìnhkế toánvà giaodịchtrong hệthống
Trang 12WalletAccountItemđại diện cho một hoạt động trên tài khoản ví, có
thểhoặc không ảnh hưởng đến số dư tài khoản ví Ví-tài-khoản-mục từ bảng sao
kê tàikhoản Thông thường, mỗi giao dịch có một hoặc nhiều ví-tài khoản-mục Ví-tài-khoản-mục tổng hợp tất cảcác-chuyển-kế-toán có thể được yêu cầu cho một sựkiệngiaodịch
PaymentIusalmentđại diện cho tài khoản ngân hàng, thẻ tín dụng hoặc
vítiềnđiệntử đượcsửdụng để nạp tiềnhoặc rút tiềntừ tài khoản ví
Transactionlà loại chung cho bất kỳ thực thể / quy trình nào ảnh hưởng
đếnsố dư tài khoản ví, chẳng hạn như thanh toán, hóa đơn hoặc mua hàng Một giaodịch luôn tham chiếu đến mộthoặc nhiều tài khoản ví và có thể có bất kỳ số lượngví-tàikhoản-mục nào
EmoneyAccountlà tài khoản trong cấu phần kế toán, lưu trữ tiền của
mộtloại nhất định cho một tài khoản ví Một tài khoản ví có thể có nhiều tàikhoảnemoney, ví dụ: cho các loại tiền khác nhau (không hạn chế hoặc mã MCC bịhạnchế)
StructureAccountingconcept
SubsidiaryĐại diện cho một pháp nhân chính mà ví thuộc về Tất cả các
kếtchuyển kế toán đều nằm trong một công ty con, do đó mỗi công ty con được coilàmộtp h ạ m v i k ế t o á n r i ê n g b i ệ t N h ư v ậ y , m ỗ i c ô n g t y c o n c ó b ộ t à i k h o ả
n h ệ thống,định nghĩaVAT, v.v
WalletĐại diện cho thực thể ví chính, có thể có 0 hoặc nhiều Tài
khoảnWalletAccount Một hoặc nhiều người dùng có thể có quyền truy cập vào
ví Vì nóchỉ là một vùng chứa cho WalletAccounts, nó không có số dư hoặc đơn vị tiền tệ,ngoàisốdưtổng hợpcủatất cảcácTài khoảnWalletAccountđượcsởhữu
Trang 13WalletAccountĐại diện cho thực thể tài khoản chính hiển thị cho
ngườidùng, bằng một đơn vị tiền tệ duy nhất Không có hoặc nhiều Giao dịch thayđổi sốdư tài khoản Không có hoặc nhiều WalletAccountItems, đại diện cho hoạt độngtrênWalletAccount, cóthểảnhhưởnghoặc không ảnhhưởngđếnsố dư
WalletAccountItemTrình bày một hoạt động hiển thị trên
WalletAccountcho người dùng Có thể được coi là một dòng trên bảng sao kê tàikhoản, luôn nằmtrong WalletAccount-tiền tệ Tuy nhiên, WalletAccountItem không cần phải cóhiệu lực tàichính, ví dụ: nó có thể thể hiện trong Thanh toán 'đang chờ xử lý', chưađược xử lý.Thường thuộc về một Giao dịch Chứa thông tin trao đổi tiền tệ trongtrườnghợp Giaodịchnhiềuloạitiềntệ
TransactionĐại diện cho một quy trình ví, chẳng hạn như Hóa đơn,
Muahàng, Chuyển khoản P2P, Thanh toán, Giao dịch Thuộc về một Tài khoảnWallet,khôngc ó h o ặ c n h i ề u W a l l e t A c c o u n t I t e m s t ù y t h u ộ c v à o q u y t r ì n h C ó t h ể b ằ n g đơn vị tiền tệ khác với đơn vị tiền tệ của WalletAccount, trong trường hợp đó, quytrìnhtraođổitiềntệđượcápdụng
AccountingAccountĐ ạ i d i ệ n c h o m ộ t t à i k h o ả n t à i
c h í n h đ ơ n g i ả n b ằ n g một loại tiền tệ duy nhất Chứa các Mục tài
khoản tạo nên số dư tài khoản Có thểlànguồn hoặc đíchchoChuyểnkhoản
AccountItemThể hiện số tiền ghi có hoặc ghi nợ trên Tài khoản Kế
toán.Chứa số dư tài khoản và chuyển khoản tại thời điểm của mục tài khoản chocácmục đích lịch sử, được thiết lập bởi một công việc không đồng bộ (do đó cómột sốđộtrễ)
TransferĐ ạ i d i ệ n c h o v i ệ c c h u y ể n g i a o g i ữ a h a i
T à i k h o ả n K ế t o á n , v ớ i một Mục tài khoản ghi nợ và ghi có.
TransferType xác định, trong số những thứkhác, việc chuyển tiền ảnh hưởng nhưthế nào đến TurnOver của tài khoản ghi nợvàtín dụng, ví dụ: Khôngcó,Tăng,Giảm
AccountBalanceSốdưtàikhoảnlàsốtiềnhiệncótrongtàikhoản,cóthểlàs ố
â m h o ặ c s ố d ư ơ n g N ó l à t ổ n g c ủ a t ấ t c ả c á c m ụ c t à i k h o ả n t h u ộ c v ề t à i khoản
Vì lý do hiệu suất, chúng tôi lưu vào bộ nhớ cache số dư tài khoản tổng hợp(nếukhông, việc tính toán số dư tài khoản sẽ kém hiệu quả hơn với số lượng mụctàikhoản ngày càng tăng) Số dư tài khoản tại một thời điểm nhất định được xácđịnhbằngcáchkiểm tramục tàikhoản mới nhất trướcthời điểmđó
Account TurnOverDoanh thu tài khoản là một giá trị được tính toán
dựatrên cácquy tắc kinh doanh và cáckhoản mục tài khoản Nhìn chung,đ ó l à
m ộ t con số ngày càng tăng, nhưng một số chuyển khoản cũng có thể làm giảmlượtchuyển của một tài khoản, ví dụ như việc hủy mua hàng Loại chuyển khoản
Trang 14xácđịnhc ác h m ộ t m ụ c t à i k h o ả n ản hh ư ở n g đ ế n v i ệ c c h u y ể n g i a o tà ik h o ả n ,
v í d ụ :
Trang 15hoàn toàn không (Không có), tăng (Tăng) hoặc giảm (Giảm) Loại chuyển giaonàođược sử dụng trong tình huống nào hoàn toàn là một định nghĩa về sản phẩm.Thông thường, chuyển khoảnđược sử dụng để giới hạn hoạt động tài khoản chokhách hàng, ví dụ: bằng cáchgiới hạn số tiền có thể được nạp vào ví bằng thanhtoán / tín dụng thương gia /…Lượt đi trong một khoảng thời gian nhất định đượctínhbằng cáchtrừ lượt đi tạit0cholượt đi tại t1.
Account types :Hệ thống chứa nhiều loại tài khoản cho
AccountAccounts:Systemaccounts (per subsidiary)
Trang 16Hình4 Giaodịchởmộtcôngtycon
Mộtgiaodịchmuaởnhiều côngtyconcóthểgiốngnhưsau:
Trang 17Hình5 Giaodịchởnhiềucôngtycon
Tổng số dư tài khoản của 'Tài khoản cửa hàng phụ' và 'Tài khoản ngườitiêudùng phụ' cuối cùng phải luôn bằng 0 (ngay lập tức luôn luôn nếu cả hai côngtycon nằm trong cùng một DB) Các tài khoản này phản ánh các khoản nợ phảitrảnộibộ giữacảhai côngty con
2.4 BalanceTransactions
Tính năng Giao dịch số dư cung cấp một API đột biến số dư chung cóthểđược sử dụng để xây dựng quy trình giao dịch theo sản phẩm cụ thể API cungcấpcác hoạt động cân bằng chi tiết với hành vi kế toán mặc định (nhưng có thểtùychỉnh)
Điều quan trọng là các quy trình làm việc sử dụng BalanceTransactionsphảiáp dụng kiểm soát truy cập thích hợp! Các phương thức BalanceTransaction chophép đột biến số dư yêu cầubối cảnh hệ thống và không cung cấp bất kỳ kiểm soáttruy cập cụ thể nào, bởi vì điều này luôn dànhriêng cho quy trình kinh doanh sửdụng nó
Đây là một tính năng chính để cung cấp sự phân tách phù hợp của quytrìnhgiao dịch tùy chỉnh và các đột biến số dư nhất quán Mỗi BalanceTransactioncómột Chủ sở hữu giao dịch, đề cập đến một giao dịch tùy chỉnh sử dụngTypedID(thamchiếuyếu)
CácthaotácsaucósẵntrongdịchvụBalanceTransactionService:
Reservedự trữ một số tiền trên WalletAccount và tạo một Wallet AccountItemnếucần
AdjustReservationđiều chỉnh số lượng Dự trữ hiện có (cao hơn hoặc
thấphơn), bao gồm cả WalletAccountItem được liên kết Giao dịch Cân bằng Dựtrữđượccậpnhật (khôngcóGiaodịchCânbằng mớinào đượctạo)
Authorizechuyển trực tiếp một số tiền từ Tài khoản Wallet sang tài
khoảnkhác(TàikhoảnWallethoặctàikhoảnhệthống)vàtạoMụcnhậpWalletAccountItemnếu cần
Capturegiải phóng một số tiền Dự trữ và chuyển nó sang một tài khoản
khác(Tài khoản Wallet hoặc tài khoản hệ thống), đồng thời tạo mộtWalletAccountItemnếu cần Một BalanceTransaction mới được tạo cho mỗi Capture, được liên kết vớiDự trữBalanceTransaction Có thể nắm bắt toàn bộ số tiền hoặc một phần số tiền.Các chếđộ sauxác định cáchxử lýKhoản dự trữ:
ReleaseFullReservation - đặt trước đầy đủ sẽ được giải phóng, ngay cảkhichỉthu đượcmột phần
Trang 18 KeepRemainingReservation-chỉsốtiềnđãchiếmđượcmớiđượcgiảiphóng,mọikhoản tiềncònlại vẫn đượcgiữlại
Cancel- hủy Giao dịch Cân bằng hiện có và hoàn nguyên tất cả các giao
dịchchuyểnti ền đư ợc li ên k ế t vớ in ó Mộ t B a l a n c e T r a n s a c t i o n k h ô n g t hể b
ị h ủ y bỏ ,nếucóbất kỳ khoản Hoàntrảkhông bịhủy nào liênquanđến nó
Refundhoàn lại số tiền Đã nắm bắt hoặc Được ủy quyền và chuyển tiền trở
lạiTài khoản WalletAccount ban đầu và tạo một WalletAccountItem nếu cần.MộtGiao dịch Cân bằng mới được tạo cho mỗi Khoản tiền hoàn lại, được liên kếtvớiGiaodịchNắm bắt hoặc Ủy quyền GiaodịchCân bằng
Credit- chuyển một số tiền từ tài khoản khác (tài khoản WalletAccount hoặctài khoản hệ thống) sang tài khoản WalletAccount và tạo WalletAccountItem
nếucần.Tham số kiểucho BalanceTransactionxácđịnh trình xửlý kế toán nàosẽđược
sử dụng cho các lần chuyển tiền Loại phụ có thể được sử dụng để xác địnhnhiều biến thể, ví dụ: cho các mục tài khoản ví Cấu hình kế toán ví phải được
thiếtlậpđúngcáchđể hỗtrợtừngGiaodịchCân bằngdựatrên
loại/loạiphụ.Loạigiaodịchtươngứngbaogồmnhưsau:BalanceTransaction
/{type}/{subtype}
Sơđồsauđây cho thấycácgiaodịchsố dư khácnhaucóliênquan nhưthế nào
Hình6 Giaodịchsốdư khácnhau
Mộtsố thamsốtùychọnchophép tinhchỉnh hànhvithực tế:
MinimumainBalance - xác định số dư dự kiếnc ò n l ạ i t r ê n
W a l l e t A c c o u n t saukhitiềnđượcchuyển.Nếukhôngđượcchỉđịnh,khôngcógiớihạnsốdư(dođósốdưcũngcóthểtrởthànhsốâm).Nếuđượcchỉđịnh,ngườixửlý kế toán sẽ sử dụng kiểm tra số dư độc quyền để đảm bảo việc hạn chế sốdưđượcthựcthi
MinimumainReservedAmount: - được sử dụng đặc biệt cho các yêu cầunắmbắt,chophép thu thập nhiềuhơn sốtiềndự trữ
Mặc địnhlà0chophépchúngtôilấytốiđasố tiền dựtrữ
Trang 19 externalId - nếu được cung cấp, thực thi tính duy nhất của externalIdnàytrong phạm vi của chủ sở hữu giao dịch Điều này có thể được sử dụngđểngăn chặn việc bắt giữ / hoàn lại tiền hai lần ngẫu nhiên, ví dụ: do lỗikỹthuật,thử lại, v.v.
CómộttriểnkhaimặcđịnhchoAccountingHandler(DefaultBalanceTransactionAccountingHandler),có thểđịnhcấuhìnhởmộtmứcđộnàođó:
transactionType-xácđịnhloạiBalanceTransactionnàyAccountingHandlersẽđược sử
dụng,mặcđịnhlà'BalanceTransaction.Default'
Luồngthanhtoán
Trang 20Hình7 B i ể u đồ hoạtđộnggiao dịchbằng víđiệntử
Trang 212 Ngườidùngclickchọnxácnhận,giaodịchđược tạothôngquahệthốngcủaví điệntử.
3 Víđiệntửyêu cầuhệthống SMSgửiOTPđếnchongườidùng
4 HệthốngtựnhậndiệnđcOTPgửiđến thiếtbịvàtựđộngđiền
5 Ngườidùng clickvào nútxác nhận gửiOTPđếnhệ thống
6 Hệthốngkiểmtravàtiếnhànhgiaodịch,sau đógửilạithôngbáocùngvớichi tiết giaodịchchongười dùng
Điềukiện:Ngườidùng đãđăngký víđiệntử vàOTPđượcnhậpchínhxác
Hình8 B i ể u đồ hoạtđộng liênkết víđiệntửvới thẻngân hàng
Luồngsựkiện:
Bước1:Đăngnhập và liênkếtví điệntử vớiNgânhang
Trang 22 Kháchhàngmởứngdụng víđiệntử củatổ chức trunggianthanhtoán
Kháchhànglựachọntínhnăngliênkếtngânhàngtheocácbước.Chọnthêmliênkết Chọn ngân hàngcầnliênkết
Bước2: Víhiểnthịmànhìnhnhập thôngtin liênkết ví điệntử
Bước 3: Khách hàng nhập thông tin liên kết (Thông tin thẻ nội địa/tàikhoảnngânhàng – Active Plus)
Khách hàng nhập thông tin thẻ bao gồm: (1) Số thẻ, (2)t h á n g v à
n ă m pháthành thẻ, (3) Têndập nổi củathẻ
Hệ thống ví điện tử của tổ chức trung gian thanh toán chuyển thôngtinliên kết sang ngân hàng, thông tin gửi sang ngân hàng bao gồm: (1)Sốthẻ, (2) tháng & năm phát hành thẻ, (3) tên dập nổi của thẻ, (4) SốđiệnthoạiKH, (5) CMND /Căncước/Passport
Bước4:Ví điệntử gửithông tinliênkết vísangngân hàng
Bước 5: Hệ thống MB kiểm tra tính hợp lệ của thông tin hệ thống tổchứctrunggianthanh toángửi sang:
Nếu số thẻ không hợp lệ hoặc trạng thái của thẻ bị khóa hoặc thẻ hếthạn,ngân hàng trả thông báo số thẻ không hợp lệ về Tổ chức trung gianthanhtoán, ứng dụng của Tổ chức trung gian thanh toán hiển thị thông báotớikhách hàng
Nếu tháng & Năm phát hành thẻ không đúng với thông tin của thẻ,ngânhàng trả thông báo tháng&năm phát hành thẻ không hợp lệ về Tổ chứctrunggian thanh toán, Ứng dụng Tổ chức trung gian thanh toán hiển thị thông báotới kháchhàng
Nếu tên dập nổi của khách hàng không hợp lệ, ngân hàng trả thông báotênkhách hàng không hợp lệ về Tổ chức trung gian thanh toán, Ứng dụngTổchứctrung gianthanh toán hiểnthị thông báo tới kháchhang
Nếu tài khoản khách hàng gắn với thẻ bị đóng, ngân hàng trả thông báo
“Tàikhoản của khách hàng đã bị đóng”, ứng dụng của Tổ chức trung gian thanhtoánhiểnthị thông báo tớikhách hang
Nếu số thẻ đã đăng ký liên kết ví với tổ chức trung gian thanh toán củađơnvị kết nối với ngân hàng, ngân hàng trả thông báo “Thẻ đã liên kết vớingânhàng”,ỨngdụngcủaTổchứctrunggianthanhtoánhiểnthịthôngbáolỗitới kháchhàng
Bước 6: Gửi mã OTP cho khách
hàng.Bước7:Khách hàngnhập mãOTP
Bước8 : H ệ t h ố n g t r u n g g i a n t h a n h t o á n c h u y ể n t h ô n g t i n m ã O T P t ớ i n
g â n hàngđể xác thựcmãOTP
Trang 23Bước9:Ngânhàng kiểmtramãOTP:
Nếu mã OTP không hợp lệ, ngân hàng thông báo mã OTP không hợp lệtớiTổ chức trung gian thanh toán, Tổ chức trung gian thanh toán hiển thịthôngbáo tới khách hàng và yêu cầu khách hàng nhập lại mã OTP Lưu ý:
Số lầnnhậpsaiOTPkhông quá 3 lần
NếumãOTPhợplệ:
o Lưu thông tin liên kết Tài khoản ví điện tử của Tổ chức trung gianthanhtoán thành công; Thông tin liên kết tối thiểu bao gồm các trườngsau: Sốvíđiệntử -Sốtài khoản thanh toán – Sốthẻ
o Gửi thông báo liên kết Tài khoản Tổ chức trung gian thanh toánthànhcông,Tổ chức trung gianthanh toánthông báo tới khách hàng
Bước 10: Thông báo liên kết Tài khoản của Tổ chức trung gian thanhtoánthànhcông
Tổchức trung gianthanhtoán lưuthông tinliênkết tàikhoản víđiệntử
Tổ chức trung gian thanh toán thông báo khách hàng liên kết Tài khoảnvíđiệntử củaTổchứctrung gianthanh toánthành công
Hình9 Usecasetổngquát
2.5 FeeHandling
Trang 24Fee Groups :Các định nghĩa phí có thể được nhóm lại trong Nhóm phí,
dođó, đối với các ví cụ thể, bạn có thể xác định các khoản phí không chuẩn Có thểtùychọnchỉđịnhví chomộtNhómphí cụthể,thayvì
sửdụngNhómphímặcđịnhcủacôngty con
Fee Definitions: Các tham số sau được sử dụng để xác định xem
Địnhnghĩaphí cóápdụngchomột ngữ cảnhnhất định haykhông:
Fee Definitions: Mô-đun phí cung cấp các định nghĩa phí xác định
cáchtính phí cho một ngữ cảnh nhất định Các tham số sau được sử dụng để
xác địnhxemĐịnh nghĩaphí cóápdụng chomộtngữ cảnhnhấtđịnh hay không:
Công ty con - nếu được thiết lập, phí sẽ chỉ áp dụng cho các ví / tàikhoảnthuộcvề côngty connhất định
Nhóm phí - nếu được đặt, phí sẽ chỉ áp dụng khi ví / tài khoản thuộcNhómphí nhất định
Loại tùy chỉnh - nếu được đặt, phí sẽ chỉ áp dụng cho các giao dịch vớiloạitùychỉnh đã cho(làmột điểm mởrộng)
Bối cảnh phí - xác định bối cảnh giao dịch mà phí áp dụng, ví dụ: tài trợmộtví tiền Tập hợp các giá trị ngữ cảnh phí có thể được mở rộng để cho phépxácđịnh phí chocácquytrìnhgiaodịchtheosảnphẩm cụthể
Phạm vi số tiền - nếu được đặt, phí sẽ chỉ áp dụng cho một giao dịchtrongphạmvi số tiềnnhất định
Đơn vị tiền tệ - nếu được đặt, phí sẽ chỉ áp dụng cho các giao dịch bằngđơnvị tiền tệ nhất định Quốc gia của ví - nếu được đặt, phí sẽ chỉ áp dụngcho víởquốc gianhất định
Loại ví - nếu được đặt, phí sẽ chỉ áp dụng cho các ví có loại đã cho (vídụ:đầy đủ hoặc khách)
Cấp độ xác minh của người dùng - nếu được đặt, phí sẽ chỉ áp dụngchonhững người dùng có cấp độ xác minh nhất định (ví dụ: chưa được xácminhhoặcđã xácminh)
Phương thức thanh toán - nếu được đặt, phí sẽ chỉ áp dụng cho các giaodịchvớiphươngthứcthanh toán nhất định
Phạm vi dấu thời gian - nếu được đặt, phí sẽ chỉ được áp dụng nếu dấuthờigianhiệntại nằm trong phạm vi nhất định
Mỗi Định nghĩa Phí chỉ định các thông số tính phí theo cách tuyến tính (sốtiềncơbảnvà tỷlệ,vớisốtiềnphí tốithiểuvà tốiđacũngnhư mứcphí chitiết)
Fee calculation:FeeCalculationService lấy các thông số này và tính phí
dựatrên số tiền giao dịch Tổng phí được xác định bằng cách cộng số phí đã tínhchotừngđịnhnghĩaphíápdụng.FeeCalculationServicecó2phươngphápriêngbiệt:
Trang 25 calculateFees() để tính phí, nhưng không lưu trữ bất kỳ Phiên bản Phínào.Điều này thường được thực hiện để xem trước các khoản phí cho mộtgiaodịchmàkhôngthựcsự chuẩn bịchúngđểđặt trước trongmô-đunkếtoán.
calculateAndStoreFees() để tính toán các khoảnphí vàl ư u t r ữ m ộ t
P h i ê n bản Phí cho mỗi Định nghĩa Phí được áp dụng Điều này thườngđược sửdụng khi giao dịch được xác nhận và phải được đặt trước trong mô-đun kếtoán
Khi đặt một giao dịch trong mô-đun kế toán thông qua Trình xử lý kế toán,cácTrường hợp phí được FeeAccountingHandler sử dụng để tạo các chuyểnkhoảnthíchhợp
Adding a new Fee :Cần thực hiện các bước sau để thêm Phí mới, ví dụ:
trongquytrìnhgiaodịchdành riêngchosảnphẩm(vídụ:muaBitcointronggiao
dịchcótên'ExchangeDeal'):
Define the Fee contexte.g as 'ExchangeDeal' - this makes sure that the
FeeDefinitionscanbe defined forthis context
AdjusttheExchangeDealServiceto call
theFeeCalculationService.calculateAndStoreFees() to determine the fees
andstoreFeeInstances, basedon thefollowing data:
o Wallet Account- the Wallet Account that the ExchangeDeal is
Adjust the ExchangeDealAccountingHandlerto book the fees when
theExchangeDeal reaches the appropriate state
usingFeeAccountingHandler.createFeeTransfers(), which also takes care
oftransferringtheapplicableVATamountstotheproperaccounts
Ensure the fee-amount is set in any applicable
WalletAccountItemthatis created, so that the user is properly informed about what fees have
beenapplied
CreateFeeDefinitionsviatheAdminUIorviaaDBscript
2.6 WalletandPaymentModuleInteraction
Module definitions:Mô-đun Wallet chịu trách nhiệm chính để xử lý tất
cảcác luồng kinh doanh liên quan đến tiền tài khoản, nhưng cũng chứa các luồngkhác liên quan đến ví Mô-đun Thanh toán chịu trách nhiệm thực hiện các quytrìnhcần thiếtđể xửlýcác
giaodịchthanhtoánchuyển tiền trongvàngoàilĩnh
Trang 26vựctiềntệthôngquacác cổngthanhtoán,đồngthờicungcấpphươngthứcthanhtoánvà xử
lý côngcụthanh toán
Thuật ngữ "Dịch vụ thanh toán" được sử dụng cả trong Ví và Mô-đun
thanhtoán Trong mô-đun Wallet, Dịch vụ thanh toán chịu trách nhiệm triển khai cácquy trình nghiệp vụ để cho phép người dùng / hệ thống tăng (Đến / Nạp tiền) hoặcgiảm (Đi / Rút tiền) số dư tài khoản ví (Dịch
vụ WPayment) Trong Mô-đun thanhtoán, Dịch vụ thanh toán chịu trách nhiệm xử lý các tương tác với các cổng
(DịchvụPPayment) thông qua bộ xử lýgiaodịch
Thuật ngữ "thanh toán" được sử dụng trong Mô-đun Wallet để đại diện cho mộtquy trình làm tăng hoặc giảm số dư tài khoản ví, trong đó trong Mô-đun thanhtoán, chúng ta thường nói về
"giao dịch thanh toán", thể hiện trạng thái của mộttươngtácvới PSP/ củamột
giaodịchtrong PSP
High-level process: Điểm quan trọng để hiểu các hành động thanh toán vàlệnhgọi lại là suy nghĩ về chuyển đổi mô-đun Bỏ qua các chi tiết, quá trình nàyrất đơngiản:
Dựa trên nhu cầu giao dịch kinh doanh, mô-đun Wallet hướng dẫn Phânhệthanht o á n t h ự c h i ệ n g i a o d ị c h t h a n h t o á n t r ự c t i ế p h o ặ c t h ô n g q
u a h à n h độngthanh toán (cácmũi tênmàuxanh lam)
Mô-đun Thanh toán thông báo cho mô-đun Wallet về thay đổi đối vớigiaodịch thanh toán và mô-đun Wallet sẽ xử lý thay đổi này thông qua mộtlệnhgọilại thanh toán (cácmũi tênmàuđỏ)
Cácmô-đunkháccó thểtươngtác vớimô-đunThanhtoántheocáchtươngtự
Detailedprocess
Invoking the Payment module :Hiện tại, có hai cách có thể để hướng
dẫnmô-đun Thanh toán xử lý giao dịch thanh toán: Một dịch vụ ví gọi camkếtdịch vụ phiên thanh toán, trong đó dịch vụ phiên có thể gọi trực tiếpDịch vụPPayment (mũi tên màu xanh lam đậm) Một dịch vụ ví tạo mục nhập hànhđộng thanh toántrong cơ sở dữ liệu, sẽ được xử lý bởi công việc mô-đun vívà sau đó gọiDịch vụ PPayment mà không có phiên (mũi tên màu xanhnhạt),M ụ c
Trang 27cóquytrìnhphêduyệt cóthể.Điềuđóvềcơbảnchỉđúngvớitiềnđến(Thế
Trang 28giới thực-> Góc độ ví) Mục đích của Hành động thanh toán là cải thiệnhiệu suất và tách thờigian phản hồi lệnh gọi API của quy trình kinhdoanhliênquankhỏilệnhgọiPSPbênngoài.Cácdịchvụkinhdoanh(ví)sẽchỉtạo một mục nhập
cơ sở dữ liệu đại diện và việc xử lý hành động thanh toánnày sẽ được thực hiện bởi một công việc Trong quá trình
xử lý hành độngthanh toán, mô-đun Wallet gọi trực tiếp Dịch vụ PPayment mà khôngcầnDịch vụ phiên thanh toán, vì không có tương tác của người dùng sẽ yêu cầuthêm bất kỳđầu vào nào
Handling payment transaction changes: Trong cả hai trường hợp, sau
khilệnh gọi cổng trong mô-đun Thanh toán đã được xử lý, sẽ có một cuộc gọiđến nhà xuất bản giao dịchthanh toán để công bố thay đổi giao dịch thanhtoán với trạng thái được cungcấp bởi cổng (thành công / đang chờ xử lý/thấtb ạ i / k h ô n g x á c đ ị n h ) c h o t ấ t c ả n g ư ờ i n g h e g i a o d ị c h t h a n h t o á
n đ ã đăng ký Việc triển khai trình xử lý giao dịch thanh toán mặc định trong mô-đun Wallet đang sử dụng xử lý khôngđồng bộ dựa trên công việc, như đốivới các hành động thanh toán Việc triển khai sảnphẩm cũng phải làm nhưvậy Điều đó có nghĩa là, thay vì trực tiếp kích hoạt
vụtrongmô-đ un W a l l e t vụtrongmô-đ ể phảnứ n g vềt h a y vụtrongmô-đ ổ i g ia od ị c h t h a n h t o á n , sẽc ó mộtlệnhgọilạithanhtoánmớiđượcghivàocơsởdữliệu.Mộtcôngviệcsẽ nhận các lệnh gọilại đang chờ xử lý và xử lý chúng bằng cách sử dụngtriển khai theo trình nghe Logic nghiệp vụ
sốloạit h u ậ t t o á n đ ố i s á n h , đ ể g á n g i a o d ị c h t h a n h t o á n c h o đ ú n g đ ố i t
ư ợ n g kinh doanh (ví, mua hàng, ) và áp dụng logic của quy trình liên quan dựatrên trạng thái giao dịchthanh toán (ví dụ: tạo một loại Thanh toán Đến đểghi có vào tài khoản vítrong trường hợp trạng thái giao dịch Mua hàng vàthanhtoán "thành công")
Trang 293.1 Trong trường hợp một hành động thanh toán đã được sử dụng, công việcxửlý sẽ gọi bộ xử lý hành động thanh toán cũng gọi hoạt động Dịch vụ PPaymentnhưđượcxác định bởi hànhđộng thanh toán
3.2 Trong trường hợp một phiên thanh toán đã được cam kết và đó là tiềnđến,hoạtđộngtươngứngcủaPhiênthanhtoán sẽ đượcgọi (Auth/ capture/ )
4 Định tuyến giao dịch thanh toán nội bộ đến bộ xử lý giao dịch thanh toáncótrách nhiệm chứathông tinvề giaodịchvà cổng
5 Bộxửlýủyquyềnchocổngthanh toán
6 Bộ xử lý gọi điện cho nhà xuất bản giao dịch thanh toán để thông báovềtrạngthái nhậnđượctừ cổng
7 Nhàxuấtbản gọitấtcảngườinghe giaodịchthanhtoán đãđăngký
8 Tích hợp trình xử lý giao dịch thanh toán trong mô-đun Wallet tạo mụcnhậpdbgọi lại thanh toán
9 Côngviệcgọilạithanhtoánđọccáclệnhgọilạithanhtoánđangchờxửlývàyê
u cầuxử lý
10 Trình xử lý giao dịch thanh toán ví ủy quyền cho trình xử lý thay đổigiaodịch thanh toán Những người xử lý này có trách nhiệm triển khai logicnghiệpvụthựctếsẽkếtthúc (hoặckhôngthành công)giaodịch kinh doanh
Trang 30Các lợiíchchính củaviệcthựchiệnthanhtoánkhôngđồngbộlà:
Khả năng mở rộng tốt hơn: không có kết nối cơ sở dữ liệu nào được sửdụngtrong khi chờ kết quả cổng thanh toán (thường liên quan đến việc gọi mộtdịchvụ từ xa, chẳnghạnnhư PSP)
Điều chỉnh PSP tốt hơn: có một số luồng giới hạn chịu trách nhiệm choviệcgọicổngthanh toán,do đó ngăn chặn quá tải cổngthanhtoán
Mạnh mẽ hơn: các dịch vụ từ xa hoạt động sai (ví dụ: mất> 5 giây đểphảnhồi)cótácđộng hạn chếđến CoreWallet
o Tối đa số luồng không đồng bộ tối đa bị chiếm dụng (cộng với bấtkỳluồngyêu cầuAPI đang chờnào)
Có một số trường hợp biên giới bổ sung cần xem xét, ví dụ như trườnghợpJVM-crash trong quá trình thực hiện thanh toán Tuy nhiên, điều nàycũngđúng với việc thực hiện thanh toán đồng bộ, trong đó toàn bộ giao dịch
cơ sởdữliệusẽquay trởlại,về cơbảnbỏqua trườnghợp biêngiới hoàntoàn
Trang 31 trimplement.wallet.server.payment.impl.async.taskExecutor.maxPoolSize đểxácđịnhsốluồngtốiđaxửlýviệcthựchiệnthanhtoánkhôngđồngbộ;mặcđịnhlà20
- trimplement.wallet.server.payment.impl.async.taskExecutor.queueCapacity
-để xác định số lượng tác vụ không đồng bộ tối đa trong hàng đợi được thựcthi;mặcđịnh là1000
Nếu tất cả các luồng thực thi không đồng bộ bị chiếm, thì các tác vụ sẽđượcđưa vào một hàng đợi thực thi tác vụ Nếu hàng đợi đầy, thì việc thực hiệnthanhtoánbị từ chối / thất bại trựctiếp
Payment.confirm/Purchase.confirmthườngđượccấutrúcnhưsau:
1 Chuẩnbịtronggiaodịchcơsở dữliệu
ĐặttrạngtháithựcthểthànhConfirmInProgressđểngăncáchoạtđộngsongsong
Khi một Sản phẩm cung cấp triển khai PaymentGateway, nó phải tuântheonhữngđiềusau:
Không nên cho rằng bất kỳ giao dịch cơ sở dữ liệu nào tồn tại trong cuộcgọiPaymentGateway
Nó có thể tương tác với cơ sở dữ liệu trong giao dịch cơ sở dữ liệu củachínhnó, nhưng nó không nênthực hiện giao tiếp từ xa trong khi giao dịch cơsởdữliệuđang hoạt động
Việc tuân theo các nguyên tắc này đảm bảo một hệ thống ổn định và có thểmởrộng,ngaycảvới cáckếtnối cơsởdữ liệuhạn chế
Ví dụ: một thử nghiệm tải với 75 người dùng đồng thời, thời gian phản hồiPSPlà5giâyvà20luồngthanhtoánkhôngđồngbộdẫnđếnnhiềunhất14kếtnốicơsở
dữ liệu được sử dụng, vì không có sự chờ đợi nào chiếm bất kỳ kết nối cơ sở dữliệunào