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?