@@ -22,16 +22,16 @@ Kiểm tra thực tế (`netstat -tulpn`, `docker ps` ngày 2026-08-28) cho th
...
@@ -22,16 +22,16 @@ Kiểm tra thực tế (`netstat -tulpn`, `docker ps` ngày 2026-08-28) cho th
- Không cài lại Docker/Nginx/Certbot — chỉ dùng lại.
- Không cài lại Docker/Nginx/Certbot — chỉ dùng lại.
- Không dùng port `3003` mặc định — đã bị chiếm. Đổi sang `7003` (đã sửa trong `docker-compose.yml`, đã build-test local).
- Không dùng port `3003` mặc định — đã bị chiếm. Đổi sang `7003` (đã sửa trong `docker-compose.yml`, đã build-test local).
-**Không đụng vào firewall/ufw** — nếu bật ufw với rule tối thiểu sẽ cắt đứt các dịch vụ/port khác đang mở cho các app/client khác trên cùng server. Bỏ hẳn bước này.
-**Không đụng vào firewall/ufw** — nếu bật ufw với rule tối thiểu sẽ cắt đứt các dịch vụ/port khác đang mở cho các app/client khác trên cùng server. Bỏ hẳn bước này.
- Nginx: chỉ **thêm** 1 file site mới cho `pg.haiyenstore.asia`, không sửa/động vào site có sẵn.
- Nginx: chỉ **thêm** 1 file site mới cho `pg-haiyen.dcvfinance.com`, không sửa/động vào site có sẵn.
---
---
## Bước 0 — Chuẩn bị trước khi làm gì trên server
## Bước 0 — Chuẩn bị trước khi làm gì trên server
1.**Trỏ DNS**: bản ghi A `pg.haiyenstore.asia` → `123.31.12.55`.
1.**Trỏ DNS**: bản ghi A `pg-haiyen.dcvfinance.com` → `123.31.12.55`.
```bash
```bash
dig +short pg.haiyenstore.asia
dig +short pg-haiyen.dcvfinance.com
```
```
2. **Commit + push code** lên git remote (nếu chưa).
2. **Commit + push code** lên git remote (nếu chưa).
curl -sS -X POST https://pg.haiyenstore.asia/epay/create-payment-url \
curl -sS -X POST https://pg-haiyen.dcvfinance.com/epay/create-payment-url \
-H "Content-Type: application/json" \
-H "Content-Type: application/json" \
-d '{"agentCode":"DCVF","fullName":"NGUYEN VAN A","amount":"10000"}'
-d '{"agentCode":"DCVF","fullName":"NGUYEN VAN A","amount":"10000"}'
```
```
Kiểm tra response: `domain` phải là `https://pg.megapay.vn` (production, không phải sandbox), `callBackUrl`/`notiUrl` phải là `https://pg.haiyenstore.asia/...`. Sai thì kiểm tra lại `.env` rồi `docker compose restart app`.
Kiểm tra response: `domain` phải là `https://pg.megapay.vn` (production, không phải sandbox), `callBackUrl`/`notiUrl` phải là `https://pg-haiyen.dcvfinance.com/...`. Sai thì sửa `.env` rồi chạy `docker compose up -d` (không phải `restart` — `restart` không đọc lại `.env`, chỉ khởi động lại container với env cũ đã đóng băng lúc tạo).
**Credential đã là production thật** — không dùng thẻ test trong tài liệu MegaPay nữa (nếu thẻ test vẫn "thanh toán được" nghĩa là đang trỏ nhầm sandbox). Test bằng giao dịch thật số tiền nhỏ hoặc theo hướng dẫn UAT riêng của MegaPay.
**Credential đã là production thật** — không dùng thẻ test trong tài liệu MegaPay nữa (nếu thẻ test vẫn "thanh toán được" nghĩa là đang trỏ nhầm sandbox). Test bằng giao dịch thật số tiền nhỏ hoặc theo hướng dẫn UAT riêng của MegaPay.
...
@@ -205,7 +205,7 @@ docker compose up -d --build
...
@@ -205,7 +205,7 @@ docker compose up -d --build
| `docker compose up` báo port đã dùng | Port `7003` bị ai đó chiếm sau này | `sudo lsof -i :7003`, đổi port khác trong `docker-compose.yml` + nginx config |
| `docker compose up` báo port đã dùng | Port `7003` bị ai đó chiếm sau này | `sudo lsof -i :7003`, đổi port khác trong `docker-compose.yml` + nginx config |