Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
2,14 MB
Nội dung
Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 1 THANH TOÁN TRỰC TUYẾN TRONG DOTSHOPPINGCART Mục lục I. Xây dựng Provider Model 2 1. Giới thiệu 2 2. Xây dựng Provider Model mẫu 2 3. Nhận xét 6 II. Kiến trúc tổ chức thanh toán trực tuyến trong DotShoppingCart (DSC) 7 1. Tổng quan 7 2. Provider Payment 7 3. Thiết lập Payment trong Admin 10 4. Sửdụng các provider trong Checkout 11 III. Nhận xét tổng quan 12 1. Ưu điểm 12 2. Khuyết điểm 12 Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 2 I. Xây dựng Provider Model 1. Giới thiệu DotShoppingCart xây dựng các thành phần chức năng của hệ thống (trong đố có payment) theo Provider Model. Provider Model là một mẫu thiết kế cho phép ứng dụng làm việc với nhiều cách giải quyết khác nhau cho cùng một vấn đề. Mục đích: làm cho ứng dụng dễ dàng mở rộng dễ dàng làm việc với nhiều hướng tương tác với tập dữ liệu thông qua việc file thiết lập. 2. Xây dựng Provider Model mẫu Tìmhiểu cách cấu trúc Provider Model qua sơ đồ lớp sau: Sơ đồ lớp trên thể hiện cho ví dụ về xây dựng một Provider Model cho ứng dụngsửdụng linh hoạt nhiều phương thức lưu trữ và kết nối dữ liệu. Dựa vào giá trị tùy chỉnh trong file config hệ thống tự động chuyển qua lại giữa 2 phương thức lưu trữ khác nhau là SQL và XML. Qua sơ đồ thấy được một provider gồm 4 thành phần quan trọng: Main Provider Class: DataProvider Provider Collection Class: DataProviderCollection Provider Configuration Class: DataProviderConfiguration Provider Manager Class: DataProviderManager Main Provider Class: Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 3 - Là một lớp abstract kế thừa từ System.Configuration.ProviderBase – một lớp cung cấp sẵn giúp mở rộng provider. - Định nghĩa những phương thức mà provider đảm nhận. Những phương thức này cần được implement từ những provider thuộc loại này (kế thừa từ main provider class). Trường hợp này là phương thức SaveValue. Provider Collection Class: - Lớp này kế thừa từ System.Configuration.ProviderCollection – lớp đảm nhận nhiệm vụ làm việc với danh sách các provider được khai báo trong file config. - Nhiệm vụ của lớp này là trả về provider từ danh sách các provider dựa vào tên của provider đó. Điều này được thực hiện bằng việc gọi làm hàm xử lý cơ bản của ProviderCollection. Provider Configuration Class: Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 4 - Class này chứa những xử lý để quản lý những tùy chỉnh cho provider. - Kế thừa từ System.Configuration.ConfigSection vàsửdụng những phương thưc cơ bản từ lớp này để trả về danh sách các thiết lập provider và tên của provider mặc định. - Có thể thêm mới những property tùy ý để chứa các giá trị lấy được từ file config (những property phải tồn tại trong thiết lập trong file config). - Mỗi property cần được bổ sung thêm thuộc tính ConfigurationProperty với tham số là tên của property thể hiện trong file config. - Thuộc tính Providers (ProviderSettingsCollection) vai trò thể hiện cho thẻ <providers /> trong file config. - Thuộc tính DefaultProviderName: set và get tên provider mặc định. Provider Manager Class: Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 5 Nhiệm vụ của class này là khởi tạo provider và load tất cả những thiết lập tùy hỉnh vào bộ nhớ. Ở đây cần chú ý 2 điểm trong hàm Initialize: Sửdụng phương thức GetSection cung cấp bởi System. Configuration.ConfigurationManager (tham số truyền vào là tên element chứa thiết lập trong file config, trong trường hợp này là DemoProvider) để lấy về thể hiện của đối tượng thuộc Provider Configuration class . Dùng ProvidersHelper để khởi tạo đối tượng thuộc Provider Collection class từ danh sách các provider load được từ file config. Implement các thể hiện của Main Provider class: - Trong ví dụ hiện tại có 2 class là thể hiện của Main Provider: SQLDataProvider và XMLDataProvider. - Nhiệm vụ chính của class là thể hiện của Main Provider: Override lại các phương thức của Main Provider class. Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 6 Override lại phương thức Initialize của ProviderBase để có thể lấy về các giá trị được lưu trữ tương ứng cho provider này trong file config. Nội dung thiết lập trong file config: 3. Nhận xét - Việc sửdụng Provider Model làm cho ứng dụng dễ dàng được mở rộng, linh hoạt trong việc thay đổi các module hiện có (chỉ thay đổi trong file config). - Thêm mới một module chức năng cơ bản được thực hiện như sau: Xây dựng một main provider class định nghĩa những phương thức cơ bản (nếu chưa có). Bộ khung quản lý (Provider Configuration, Provider Manager, Provider Collection) cơ bản không thay đổi. Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 7 Sau đó thêm các thể hiện cho main provider này và implement các phương thức với các xử lý logic. Cuối cùng là thiết lập các thông số trong file config. II. Kiến trúc tổ chức thanh toán trực tuyến trong DotShoppingCart (DSC) 1. Tổng quan - Thanh toán trực tuyến trong DSC tổ chức dựa trên Provider Model. - Các thành phần Provider Manager, Provider Collection, Provider Configuration được tổ chức lại để có thể sửdụng cho cả ứng dụng nhưng bản chất nhiệm vụ của từng thành phần không thay đổi. - Các thiết lập về thanh toán được đặt trong file DSC.config. 2. Provider Payment Cấu trúc source code Provider : Sơ đồ lớp tổ chức các provider thanh toán trong DSC: Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 8 a. DSCProvider: được xem là main provider class trong Provider Model Định nghĩa phương thức GetConfigurationSettings cần được implement trong các lớp con. Phương thức yêu cầu trả về danh sách các thuộc tính của provider. Mỗi phương thức thanh toán có tập những thuộc tính khác nhau tại mỗi phương thức thanh toán cụ thể sẽ trả về tập các thuộc tính cần thiết. Định nghĩa mỗi ProviderAtribute: b. Phương thức quan trọng trong provider thanh toán Ngoài những phương thức đặc thù cho từng phương thức thanh toán, những phương thức sau phải có trong mỗi provider cụ thể: public override void Initialize(string name, NameValueCollection config) Override lại phương thức Initialize từ ProviderBase. Lấy được các giá trị đã thiết lập trong file config. public override List<ProviderAttribute> GetConfigurationSettings() Override lại phương thức GetConfigurationSettings từ DSCProvider. Trả về danh sách các thuộc tính. public static XXXPaymentProvider GetProvider() Trả về provider mặc định thuộc loại provider hiện tại lấy từ file config. c. Ví dụ trong phương thức thanh toán PaypalExpress Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 9 - Initialize: Lấy các giá trị thiết lập trong tham số config để khởi tạo provider. - GetConfigurationSettings: Trả về các thuộc tính của PaymentExpress. Những giá trị này được sửdụng khi thiết lập tùy chọn cho Payment trong phần Admin. Payment in DotShoppingCart 0812491-0812493 FIT08 – HCMUS Trang 10 - GetProvider: Dựa vào SecctionName để trả về PaypalExpressPaymentServiceConfigurationSection – chứa thông tin thiết lập cho PayPalExpress. Từ thông tin thiết lập khởi tạo được một thể hiện PaypalExpressPaymentProvider. Thông tin trong file config: 3. Thiết lập Payment trong Admin Giao diện tùy chỉnh payment: [...]...Payment in DotShoppingCart 0812491-0812493 - Việc load các phương thức thanh toán và cập nhật các tùy chính là hardcode ! - Mỗi lần update, các thông tin thiết lập được cập nhật lại vào file DSC.config 4 Sử dụng các provider trong Checkout - Việc sử dụng các provider trong thanh toán theo hướng hard-code ! - Khai báo sẵn các provider... Provider Model nên khả năng mở rộng, nâng cấp, thêm mới dễ dàng 2 Khuyết điểm - Chưa cung cấp một phương pháp “động” tích hợp các phương thức đã xây dựng vào sử dụng khi Checkout - Cấu trúc tổ chức các project, các class không hợp lý Các class nên được đóng gói vào các project riêng chuyên biệt FIT08 – HCMUS Trang 12 ... hard-code ! - Khai báo sẵn các provider (dù rằng có dùng hay không) - Dùng câu lệnh điều kiện if để xét xem phương thức nào đang được chọn để sử lý không gọi động được ! Việc tích hợp một phương thức thanh toán mới khó khăn ! FIT08 – HCMUS Trang 11 Payment in DotShoppingCart 0812491-0812493 III Nhận xét tổng quan 1 Ưu điểm Các phương thức thanh toán trong DSC phát triển theo kiến trúc Provider Model . mẫu Tìm hiểu cách cấu trúc Provider Model qua sơ đồ lớp sau: Sơ đồ lớp trên thể hiện cho ví dụ về xây dựng một Provider Model cho ứng dụng sử dụng linh hoạt nhiều phương thức lưu trữ và kết. - Mỗi lần update, các thông tin thiết lập được cập nhật lại vào file DSC.config. 4. Sử dụng các provider trong Checkout - Việc sử dụng các provider trong thanh toán theo hướng hard-code ! -. lập tùy hỉnh vào bộ nhớ. Ở đây cần chú ý 2 điểm trong hàm Initialize: Sử dụng phương thức GetSection cung cấp bởi System. Configuration.ConfigurationManager (tham số truyền vào là tên element