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

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

90 347 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 2,67 MB

Nội dung

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

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 HỒN THIỆN PHÁT TRIỂN HỆ THỐNG THANH TỐN TRỰC TUYẾN CHO NỀN TẢNG EPISERVER COMMERCE CỦA CÔNG TY EPISERVER TÊN SINH VIÊN 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 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 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 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 DANH MỤC CÁC CHỮ VIẾT TẮT Từ Viết Tắt TMĐT Ý Nghĩa Thương mại điện tử TTĐT TTTT TTKDTM CNTT ATTT ĐVCNT Thanh toán điện tử Thanh tốn trực tuyến Thanh tốn khơng dùng tiền mặt Cơng nghệ thơng tin An tồn thơng tin Đơn vị chấp nhận thẻ DANH MỤC HÌNH VẼ, SƠ ĐỒ DANH MỤC BẢNG BIỂU MỞ ĐẦU Ra đời tất yếu phát triển TMĐT, TTĐT xuất Việt Nam vài năm gần tỏ có ưu vượt trội tốc độ tiện lợi so với hoạt động toán dùng tiền mặt Sau thời gian học tập nghiên cứu ghế nhà trường với kiến thức thực tế tiếp thu q trình thực tập cơng ty Episerver Việt Nam, tơi tìm hiểu tốn điện tử nói chung hệ thống tốn có tảng cơng ty nói riêng Cơng ty Episerver cơng ty phần mềm tồ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ố tiếp thị kỹ thuật số Episerver biết đến công ty hàng đầu cung cấp giải pháp thương mại điện tử Tuy nhiên hệ thống toán tảng cơng ty chưa cung cấp giải pháp tốn số cổng toán Việt Nam Vấn đề dẫn đến công ty chưa đáp ứng hết nhu cầu khách hàng hoàn thiện hệ thống giải pháp giải vấn đề Nên tơi thực đề tài “Hồn thiện phát triển hệ thống toán trực tuyến tảng episerver commerce công ty episerver” làm chuyên đề tốt nghiệp Thơng qua nghiên cứu, ngồi việc giúp nâng cao, bổ sung kiến thức hy xong nghiên cứu đóng góp giúp cơng ty hồn thiện tảng 10 Hình 28: Giao diện trang nhận kết trả phía người tốn - Đồng thời sản phẩm giỏ hàng 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 trả phía người quản trị 76 KẾT LUẬN Đánh giá kết đạt Website tích hợp cổng toán trực tuyến NgânLượng.vn thuận lợi cho khách hàng mua hàng tiến hành toán Dữ liệu trạng thái đơn hàng cập nhật tự động vào sở liệu Hướng phát triển Trong thời gian thử nghiệm tiến hành bổ sung, khắc phục thiếu sót lỗi phát sinh, tương lại xây cải tiến nhận kết trả NgânLượng.vn thông qua Web service 77 PHỤ LỤC 1: MÃ NGUỒN TRANG _NganLuong.cshtml @model EPiServer.Business.Commerce.NganLuongPayment.NganLuongPaymentMethod @Html.HiddenFor(model => model.SystemKeyword) Ngan Luong - cong toan so Vietnam 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()) {} public NganLuongPaymentGateway(IOrderNumberGenerator orderNumberGenerator) { _orderNumberGenerator = orderNumberGenerator; } public override bool ProcessPayment(Payment payment, ref string message) { 78 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 79 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(); 80 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.DaytimePhoneNumber}*| *{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", 81 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 82 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 { private readonly IOrderRepository _orderRepository; private readonly IContentLoader _contentLoader; private readonly UrlResolver _urlResolver; public NganLuongPaymentController() : this(ServiceLocator.Current.GetInstance(), ServiceLocator.Current.GetInstance(), ServiceLocator.Current.GetInstance()) {} 83 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(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(orderReference.OrderGroupId); purchaseOrder.OrderNumber = orderNumber; // Remove old cart _orderRepository.Delete(cart.OrderLink); purchaseOrder.OrderStatus = OrderStatus.InProgress; 84 _orderRepository.Save(purchaseOrder); return purchaseOrder; } /// /// Gets url from start page's page reference property /// /// The property name. /// The friendly url. private string GetUrlFromStartPageReferenceProperty(string propertyName) { var startPageData = _contentLoader.Get(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", 85 Description = "Ngan Luong Payment process page.", GroupName = "Payment", Order = 100)] public class NganLuongPage : PageData { } } 86 TÀI LIỆU THAM KHẢO 87 88 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ọ tên: Lớp/Khóa: K18HTTTA Đề tài thực tập: Hoàn thiện phát triển hệ thống toán trực tuyến tảng Episerver Commercer 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 thành viên nghiên cứu phát triển tin học Episerver Địa 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 T (1) Ngày tháng (2) GVHD trao đổi công việc cần thực (3) 89 Kết thực sinh viên (4) 90 ... 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 HỒN THIỆN VÀ PHÁT TRIỂN HỆ THỐNG THANH TỐN TRỰC TUYẾN TẠI NỀN TẢNG EPISERVER COMMERCE CỦA CÔNG TY EPISERVER Giáo... cung cấp dịch vụ toán trung gian: Ngân lượng, Bảo kim… 2.2.3 Phân loại hệ thống toán trực tuyến STT Hệ thống toán trực tuyến Phân loại đặc điểm hệ thống toán trực tuyến Hệ thống toán thẻ Thẻ tín... ứng hết nhu cầu khách hàng hoàn thiện hệ thống giải pháp giải vấn đề Nên tơi thực đề tài “Hồn thiện phát triển hệ thống toán trực tuyến tảng episerver commerce công ty episerver làm chun đề tốt

Ngày đăng: 04/06/2019, 14:59

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w