TỔNG HỢP M1 Trung cấp 👑 BOSS chặng CA 07 / 07

BOSS M1 — thêm VNPay cần đụng mấy file?

Kết hợp cả 3 khái niệm M1 (interface ngầm định + init tự chạy + export theo chữ hoa) để mở rộng hệ thống thanh toán ở đầu chặng:

// vnpay.go — file DUY NHẤT cần thêm
type vnpay struct{}
func (vnpay) Name() string { return "vnpay" }                      // export vì interface yêu cầu
func (vnpay) Charge(ctx context.Context, amount int) error { ... }
func init() { register(vnpay{}) }                                   // tự chạy trước main(), không sửa main.go

Kết hợp cả 3 khái niệm đã học — thêm cổng VNPay có cần sửa main.go hay file nào khác ngoài vnpay.go không?