Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Building Web Applications with Go - Intermediate Level

Xây dựng Ứng dụng Web với Go - Trình độ Trung cấp

Xây dựng Ứng dụng Web với Go - Trình độ Trung cấp

Học cách xây dựng một ứng dụng thương mại điện tử bảo mật với Go (Golang)

4.7
(572 đánh giá)
9,702 học viên
Giảng viên
Trevor Sawler
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 1.459.000đ -97%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
18.5 giờ video
173 bài giảng
1 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Cách xây dựng một website front end bằng Go
Cách xây dựng một API back end bằng Go
Cách xây dựng nhiều ứng dụng từ một mã nguồn duy nhất
Cách xây dựng microservices trong Go
Xác thực người dùng trong Go
Xác thực API bằng token có trạng thái
Cách cho phép người dùng đặt lại mật khẩu một cách an toàn, bảo mật
Cách tích hợp xử lý thanh toán thẻ tín dụng Stripe với back end Go
Thực hiện thanh toán một lần hoặc định kỳ với Stripe
Các phương pháp hay nhất để thực hiện giao dịch thẻ tín dụng an toàn

Yêu cầu

Hiểu biết cơ bản về ngôn ngữ lập trình Go
Hiểu biết cơ bản về HTML, CSS và JavaScript
Hiểu biết cơ bản về cú pháp SQL

Đối tượng phù hợp

Dành cho nhà phát triển muốn tích hợp Stripe vào ứng dụng của họ
Dành cho nhà phát triển muốn học cách xây dựng API back end bằng Go
Dành cho nhà phát triển muốn học các phương pháp hay nhất để xây dựng ứng dụng hiện đại bằng Go (và JavaScript)

Nội dung khóa học

16 phần • 173 bài giảng
1 Giới thiệu
2 Một chút về tôi
3 Sai lầm. Ai cũng có thể mắc phải.
4 Cách yêu cầu trợ giúp
1 Cài đặt Go
2 Cài đặt một IDE
3 Đăng ký tài khoản Stripe miễn phí
4 Cài đặt make
5 Cài đặt MariaDB
6 Lấy một client cơ sở dữ liệu
1 Chúng ta sẽ xây dựng gì
2 Thiết lập một ứng dụng web (đơn giản)
3 Thiết lập routes và xây dựng hàm render
4 Hiển thị một trang
5 Một extension tốt hơn cho Go templates và VS Code
6 Tạo form
7 Kết nối form của chúng ta với stripe.js
8 Xác thực phía client
9 Lấy paymentIntent - thiết lập package back end
10 Lấy paymentIntent - bắt đầu làm việc trên API back end
11 Lấy paymentIntent - thiết lập route và handler, và sử dụng make
12 Lấy paymentIntent - hoàn thiện handler của chúng ta
13 Cập nhật JavaScript front end để gọi handler paymentIntent
14 Lấy payment intent và hoàn tất giao dịch
15 Tạo biên lai
16 Dọn dẹp API url và Stripe Publishable Key trên form của chúng ta
1 Chúng ta sẽ xây dựng gì?
2 Tạo cơ sở dữ liệu
3 Kết nối đến cơ sở dữ liệu
4 Tạo trang sản phẩm
5 Tạo form sản phẩm
6 Chuyển JavaScript sang một file có thể tái sử dụng
7 Sửa đổi handler để nhận một struct
8 Cập nhật trang Widget để sử dụng dữ liệu truyền vào template
9 Tạo hàm template formatCurrency
10 Kiểm tra chức năng giao dịch
11 Tạo bảng cơ sở dữ liệu cho các mặt hàng bán
12 Chạy database migrations
13 Tạo database models
14 Làm việc trên các hàm cơ sở dữ liệu
15 Chèn một giao dịch mới
16 Chèn một đơn hàng mới
17 Một vấn đề phụ: sửa lỗi tính toán số tiền
18 Lấy thêm thông tin về một giao dịch
19 Khách hàng
20 Bắt đầu lưu thông tin khách hàng và giao dịch
21 Tạo phương thức cơ sở dữ liệu lưu khách hàng
22 Lưu khách hàng, giao dịch và đơn hàng từ handler
23 Chạy một giao dịch thử nghiệm
24 Sửa lỗi cơ sở dữ liệu và lưu thêm chi tiết
25 Chuyển hướng sau khi POST
26 Đơn giản hóa handler PaymentSucceeded của chúng ta
27 Sửa đổi Virtual Terminal của chúng ta
28 Sửa lỗi trong hàm template formatCurrency
1 Chúng ta sẽ xây dựng gì trong phần này?
2 Tạo một Plan trên Stripe Dashboard
3 Tạo stub cho trang front end và handler
4 Thiết lập form
5 Làm việc trên JavaScript cho plans
6 Tiếp tục với JavaScript để đăng ký một plan
7 Tạo một handler cho yêu cầu POST sau khi người dùng đăng ký
8 Tạo các phương thức để tạo một khách hàng Stripe và đăng ký một plan
9 Cập nhật handler của chúng ta để hoàn tất một đăng ký
10 Lưu thông tin giao dịch & khách hàng vào cơ sở dữ liệu
11 Lưu thông tin giao dịch & khách hàng II
12 Hiển thị trang biên lai cho Bronze Plan
1 Giới thiệu
2 Tạo trang đăng nhập
3 Viết stub javascript để xác thực với back end
4 Tạo một route và handler cho xác thực
5 Tạo một hàm trợ giúp writeJSON
6 Bắt đầu quá trình xác thực
7 Tạo một hàm trợ giúp invalidCredentials
8 Tạo một hàm trợ giúp passwordMatches
9 Đảm bảo mọi thứ hoạt động
10 Tạo một hàm để tạo token
11 Tạo và gửi lại một token
12 Lưu token vào cơ sở dữ liệu
13 Lưu token vào local storage
14 Thay đổi liên kết đăng nhập dựa trên trạng thái xác thực
15 Kiểm tra xác thực trên back end
16 Một chút dọn dẹp
17 Tạo các hàm stub để xác thực một token
18 Trích xuất token từ authorization header
19 Xác thực token trên back end
20 Kiểm tra thử tính hợp lệ token của chúng ta
21 Thử thách: Kiểm tra thời hạn hết hạn
22 Giải pháp cho thử thách
23 Triển khai middleware để bảo vệ các route cụ thể
24 Thử nghiệm một route được bảo vệ
25 Chuyển đổi Virtual Terminal post để sử dụng back end
26 Thay đổi trang virtual terminal để sử dụng fetch
27 Xác minh giao dịch đã lưu
1 Viết middleware trên front end để kiểm tra xác thực
2 Bảo vệ routes trên front end
3 Đăng xuất từ front end
4 Lưu sessions trong cơ sở dữ liệu
1 Đặt lại mật khẩu
2 Gửi mail Phần I
3 Mailtrap.io
4 Gửi mail Phần II
5 Tạo mail templates của chúng ta và gửi một email thử nghiệm
6 Triển khai signed links cho tin nhắn email của chúng ta
7 Sử dụng package urlsigner của chúng ta
8 Tạo route và handler đặt lại mật khẩu
9 Thiết lập trang đặt lại mật khẩu
10 Tạo một route back end để xử lý đặt lại mật khẩu
11 Đặt thời hạn hết hạn cho email đặt lại mật khẩu
12 Thêm một package mã hóa
13 Sử dụng package mã hóa của chúng ta để khóa chặt việc đặt lại mật khẩu
1 Cải thiện front end và thiết lập menu Admin
2 Thiết lập các trang stub cho sales và subscriptions
3 Cập nhật migrations và reset cơ sở dữ liệu
4 Liệt kê tất cả sales: truy vấn cơ sở dữ liệu
5 Liệt kê tất cả sales: hàm cơ sở dữ liệu
6 Liệt kê tất cả sales: viết API handler và route
7 Liệt kê tất cả sales: front end javascript
8 Hiển thị kết quả của chúng ta trong một bảng
9 Làm đẹp bảng của chúng ta và thêm một số kiểm tra trong JavaScript
10 Thử thách
11 Giải pháp cho thử thách
12 Hiển thị một giao dịch bán: phần 1
13 Hiển thị một giao dịch bán: phần 2
14 Hiển thị một đăng ký
1 Hoàn tiền từ Stripe Dashboard
2 Thêm một hàm hoàn tiền vào package cards của chúng ta
3 Tạo một API handler để xử lý hoàn tiền
4 Cập nhật front end cho hoàn tiền
5 Cải thiện front end
6 Thêm các thành phần UI vào trang sales
7 Cập nhật trạng thái thành đã hoàn tiền trong cơ sở dữ liệu
1 Lấy subscription id
2 Thêm hàm CancelSubscription vào package cards của chúng ta
3 Tạo một handler để hủy một đăng ký
4 Sửa đổi front end
5 Hoàn thiện front end
1 Tạo một phương thức cơ sở dữ liệu để phân trang tất cả đơn hàng
2 Sửa đổi handler AllSales để sử dụng dữ liệu phân trang
3 Cập nhật template all-sales.page.gohtml
4 Cải thiện phân trang trên front end
5 Thêm listeners vào các nút điều hướng trang
6 Đưa người dùng đến đúng trang dữ liệu khi nhấp chuột
7 Cách tôi triển khai phân trang trên trang all subscriptions
1 Thiết lập templates để quản lý người dùng
2 Thêm routes và handlers trên front end
3 Viết các hàm cơ sở dữ liệu để quản lý người dùng
4 Tạo một handler và route cho tất cả người dùng trên back end
5 Cập nhật front end để gọi AllUsers
6 Hiển thị danh sách người dùng
7 Tạo form thêm/sửa người dùng
8 Gọi api back end để lấy một người dùng
9 Điền dữ liệu vào form người dùng, và một thử thách
10 Giải pháp cho thử thách
11 Lưu một người dùng đã chỉnh sửa - phần một
12 Lưu một người dùng đã chỉnh sửa - phần hai
13 Xóa một người dùng
14 Xóa token của người dùng đã xóa khỏi cơ sở dữ liệu
15 Thiết lập websockets
16 Kết nối đến WebSockets từ trình duyệt
17 Đăng xuất người dùng đã xóa qua websockets
1 Microservices là gì?
2 Thiết lập một microservice đơn giản
3 Nhận dữ liệu với microservice của chúng ta
4 Tạo hóa đơn dưới dạng PDF
5 Kiểm tra PDF của chúng ta
6 Gửi hóa đơn qua mail
7 Gọi microservice khi một Widget được bán
8 Thử thách
9 Giải pháp
1 Thiết lập gói xác thực
2 Thêm xác thực vào back end API
3 Chỉnh sửa JavaScript trên front end
1 gRPC, SOA và các công nghệ khác

Giới thiệu khóa học

This course is the followup to Building Modern Web Applications in Go. In this course, we go further than we did the first time around. We will build a sample E-Commerce application that consists of multiple, separate applications: a front end (which services content to the end user as web pages); a back end API (which is called by the front end as necessary), and a microservice that performs only one task, but performs it extremely well (dynamically building PDF invoices and sending them to customers as an email attachment).

The application will sell individual items, as well as allow users to purchase a monthly subscription. All credit card transactions will be processed through Stripe, which is arguably one of the most popular payment processing systems available today, and for good reason: developers love it. Stripe offers a rich API (application programming interface), and it is available in more than 35 countries around the world, and works with more than 135 currencies. Literally millions of organizations and businesses use Stripe’s software and APIs to accept payments, send payouts, and manage their businesses online with the Stripe dashboard. However, in many cases, developers want to be able to build a more customized solution, and not require end users to log in to both a web application and the Stripe dashboard. That is precisely the kind of thing that we will be covering in this course.

We will start with a simple Virtual Terminal, which can be used to process so-called "card not present" transactions. This will be a fully functional web application, built from the ground up on Go (sometimes referred to as Golang). The front end will be rendered using Go's rich html/template package, and authenticated users will be able to process credit card payments from a secure form, integrated with the Stripe API. In this section of the course, we will cover the following:

  • How to build a secure, production ready web application in Go

  • How to capture the necessary information for a secure online credit card transaction

  • How to call the Stripe API from a Go back end to create a paymentIntent (Stripe's object for authorizing and making a transaction)

Once we have that out of the way, we'll build a second web application in the next section of the course, consisting of a simple web site that allows users to purchase a product, or purchase a monthly subscription. Again, this will be a web application built from the ground up in Go. In this section of the course, we'll cover the following:

  • How to allow users to purchase a single product

  • How to allow users to purchase a recurring monthly subscription (a Stripe Plan)

  • How to handle cancellations and refunds

  • How to save all transaction information to a database (for refunds, reporting, etc).

  • How to refund a transaction

  • How to cancel a subscription

  • How to secure access to the front end (via session authentication)

  • How to secure access to the back end API (using stateful tokens)

  • How to manage users (add/edit/delete)

  • How to allow users to reset their passwords safely and securely

  • How to log a user out and cancel their account instantly, over websockets

Once this is complete, we'll start work on the microservice. A microservice is a particular approach to software development that has the basic premise of building very small applications that do one thing, but do it very well. A microservice does not care in the slightest about what application calls it; it is completely separate, and completely agnostic. We'll build a microserivce that does the following:

  • Accepts a JSON payload describing an individual purchase

  • Produces a PDF invoice with information from the JSON payload

  • Creates an email to the customer, and attaches the PDF to it

  • Sends the email

All of these components (front end, back end, and microservice) will be built using a single code base that produces  multiple binaries, using Gnu Make.



Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Backend Development
Hiển thị tất cả khoá học Go
Hiển thị tất cả khoá học Stripe
Hiển thị tất cả khoá học Web Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊