Tin tức

Thiết kế web ASP.NET 4.5 - Kiểm tra và thanh toán với PayPal - Phần 1

20/02/2013

Hướng dẫn này mô tả cách thiết kế web và làm thế nào để sửa đổi ứng dụng mẫu Wingtip Toys bao xác thực quyền người dùng, đăng ký, và thanh toán bằng PayPal. Chỉ có người dùng đăng nhập có quyền để mua sản phẩm. Dự án mẫu được xây dựng trong ASP.NET 4.5 Web Forms với nhiều chức năng dựng sẵn bạn cần. Để thực hiện điều này, bạn sẽ thêm thức năng PayPal Express Checkout. Trong hướng dẫn này, bạn được sử dụng môi trường phát triển thử nghiệm PayPal, do đó, không có ngân quỹ thực tế sẽ được chuyển giao. Phần cuối của hướng dẫn, bạn sẽ kiểm tra các ứng dụng bằng cách lựa chọn sản phẩm để thêm vào giỏ hàng, nhấn vào nút thanh toán, và truyền dữ liệu đến các trang web thử nghiệm PayPal. Trên trang web PayPal thử nghiệm, bạn sẽ xác nhận thông tin vận chuyển và thanh toán, sau đó quay trở lại  ứng dụng mẫu Wingtip Toys để xác nhận và hoàn tất việc mua.

Có một số kinh nghiệm về trình xử lý thanh toán của bên thứ ba chuyên về mua sắm trực tuyến với khả năng mở rộng và an toàn đối với thiết kế web thương mại điện tử. Các nhà phát triển ASP.NET nên xem xét những lợi thế của việc sử dụng một giải pháp thanh toán của bên thứ ba trước khi thực hiện một giải pháp mua bán.
Lưu ý: ứng dụng mẫu Wingtip Toys được thiết kế nhằm chỉ ra các khái niệm và tính năng sẵn có cho các nhà phát triển web ASP.NET. Ứng dụng mẫu này không được tối ưu hóa cho tất cả các trường hợp có thể liên quan đến khả năng mở rộng và bảo mật.
Trong hướng dẫn này bạn sẽ tìm hiểu về việc thiết kế web với các chức năng
Cách giới hạn truy cập tới các trang trong một thư mục.
Cách tạo giỏ hàng từ một giở hàng nặc danh.
Cách sử dụng PayPal để mua sản phẩm sử dụng môi trường kiểm thử the PayPal.
Cách hiển thị chi tiết từ PayPal trong một điều khiển DetailsView.
Cách cập nhật cơ sở dữ liệu của ứng dụng Wingtip Toys với các chi tiết nhận được từ PayPal.

Thêm đơn hàng:

Bắt đầu phần này, bạn sẽ tạo ra hai lớp mới để theo dõi dữ liệu từ đơn hàng người dùng đã tạo ra. Các lớp sẽ duy trì thông tin dữ liệu về vận chuyển, tổng số tiền, và xác nhận thanh toán


Thêm các lớp mô hình Order và OrderDetail 

Trong các phần trước của chuỗi bài thiết kế web bằng ASP.NET 4.5 này, bạn đã định nghĩa lược đồ cho các danh mục, sản phẩm và mục tin giỏ hàng bằng cách tạo ra các lớp Category, Product, và CartItem trong thư mục Models. Bây giờ bạn sẽ thêm hai lớp mới để định nghĩa lược đồ cho sản phẩm và chi tiết đơn đặt hàng 
1. Trong chế độ thiết kế web (Design) bấm chuột phải lên thư mcuj Models và chọn Add -> New Item.
2. Hộp hội thoại Add New Item được hiển thị. Chọn Code, và chọn Class.
3. Đặt tên cho lớp mới là Order.cs.
4. Bấm Add.
tệp lớp mới được hiển thị trong trình soạn thảo.
5. Thay thế mã ngầm định với mã sau:
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
using System.ComponentModel;
 
namespace WingtipToys.Models
{
    public class Order
    {
        public int OrderId { get; set; }
 
        public System.DateTime OrderDate { get; set; }
 
        public string Username { get; set; }
 
        [Required(ErrorMessage = "First Name is required")]
        [DisplayName("First Name")]
        [StringLength(160)]
        public string FirstName { get; set; }
 
        [Required(ErrorMessage = "Last Name is required")]
        [DisplayName("Last Name")]
        [StringLength(160)]
        public string LastName { get; set; }
 
        [Required(ErrorMessage = "Address is required")]
        [StringLength(70)]
        public string Address { get; set; }
 
        [Required(ErrorMessage = "City is required")]
        [StringLength(40)]
        public string City { get; set; }
 
        [Required(ErrorMessage = "State is required")]
        [StringLength(40)]
        public string State { get; set; }
 
        [Required(ErrorMessage = "Postal Code is required")]
        [DisplayName("Postal Code")]
        [StringLength(10)]
        public string PostalCode { get; set; }
 
        [Required(ErrorMessage = "Country is required")]
        [StringLength(40)]
        public string Country { get; set; }
 
        [StringLength(24)]
        public string Phone { get; set; }
 
        [Required(ErrorMessage = "Email Address is required")]
        [DisplayName("Email Address")]
        [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}",
            ErrorMessage = "Email is is not valid.")]
        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }
 
        [ScaffoldColumn(false)]
        public decimal Total { get; set; }
 
        [ScaffoldColumn(false)]
        public string PaymentTransactionId { get; set; }
 
        [ScaffoldColumn(false)]
        public bool HasBeenShipped { get; set; }
 
        public List<OrderDetail> OrderDetails { get; set; }
    }
}

6. Thêm lớp OrderDetail.cs vào thư mục Models.
7. Thay thế mã ngầm định với mã sau:
using System.ComponentModel.DataAnnotations;
 
namespace WingtipToys.Models
{
    public class OrderDetail
    {
        public int OrderDetailId { get; set; }
 
        public int OrderId { get; set; }
 
        public string Username { get; set; }
 
        public int ProductId { get; set; }
 
        public int Quantity { get; set; }
 
        public double? UnitPrice { get; set; }
 
    }
}

Lớp Order OrderDetail chứa lược đồ để định nghĩa thông tin đơn hàng được sử dụng cho việc mua và chuyển hàng.
Ngoài ra, bạn vẫn cần cập nhật thông tin cơ sở dữ liệu quản lý các lớp thực thể và cung cấp truy cập dữ liệu tới cơ sở dữ liệu. Để thực hiện điều này, bạn sẽ bổ sung cho lớp mô hình Order OrderDetail model vào lớp ProductContext.
1. Ở chế độ thiết kế web. Trong Solution Explorer, tìm và mở tệp  ProductContext.cs.
2. Thêm đoạn mã được tô và tệp  ProductContext.cs như dưới đây::
using System.Data.Entity;
  
namespace WingtipToys.Models
{
    public class ProductContext : DbContext
    {
        public ProductContext()
            : base("WingtipToys")
        {
        }
  
        public DbSet<Category> Categories { get; set; }
        public DbSet<Product> Products { get; set; }
        public DbSet<CartItem> ShoppingCartItems { get; set; }
        public DbSet<Order> Orders { get; set; }
        public DbSet<OrderDetail> OrderDetails { get; set; }
    }}

Như đã đề cập trước đó trong loạt bài hướng dẫn này, mã trong tệp tin ProductContext.cs thêm không gian tên System.Data.Entity để bạn có thể truy cập tất cả các chức năng chính của Entity Framework. Chức năng này bao gồm khả năng truy vấn, chèn, cập nhật, và xóa dữ liệu bằng cách làm việc với các đối tượng định kiểu mạnh. Đoạn mã trên trong lớp ProductContext thêm truy cập Entity Framework tới các lớp Order OrderDetail.

Hết phần 1.

Thiet ke web mien phi,  Hoc thiet ke web

ESVN- Nơi hội tụ giải pháp

Công ty cổ phần Eastern Sun Việt Nam