OWNER e2e Pay — refresh 2026-08-17
Domain: D-PAY · WP: WP-OWNER-WIRE-01 (Pay slice) · WP-PAY-LIVE-01 Surfaces: API · VPS
api.minhtien.cloudAgent:scripts/smoke-pay-vps.sh— không in secret /payUrlđầy đủ · không thanh toán hộ
Re-smoke + log (VPS 2026-08-17 01:27 UTC)
scripts/smoke-pay-vps.sh chạy lại trên welife-api (Up 2 days). Không in secret / payUrl đầy đủ.
| Step | Result |
|---|---|
GET /api/v1/health |
200 · env=production |
GET /payments/providers |
200 · ready · preferred=VNPAY · mock off · momo+vnpay configured · walletInternalCredit=disabled |
GET /users/me |
200 (smoke user) |
POST /payments/init { provider:VNPAY } |
201 · PENDING · payUrlHost=sandbox.vnpayment.vn · vnp_SecureHash present |
POST /payments/init (omit provider) |
201 · default VNPAY |
POST /payments/init { provider:MOMO } |
400 · merchant inactive |
Log welife-api (48h) — lỗi thật
MoMo resultCode=13 (3 lần), cùng message portal:
| Time (UTC) | Nguồn | Log |
|---|---|---|
| 01:13:41 | app/API | MoMo create failed · resultCode 13 · Cấu hình doanh nghiệp không chính xác hoặc tài khoản không hoạt động. |
| 01:17:47 | CON ride eb3e26e5… |
Cùng 13 · chuyến CANCELLED · paymentMethod=MOMO · cancelReason=gateway_init_failed |
| 01:27:09 | smoke script | Cùng 13 (re-smoke này) |
VNPay create không có WARN trên log — khớp HTTP 201.
Chuyến CON 2026-08-17 01:51 UTC eb69a905…: paymentMethod=VNPAY · AWAITING_PAYMENT · vnp_ReturnUrl=welife://payment/result?ok=1 → sandbox invalid return URL. Metro chỉ poll GET /rides 200 (không 4xx). WP-PAY-VNPAY-RIDE-RETURN-01: FE không gửi scheme app; BE bỏ returnUrl không http(s).
Không phải bug code: keys MoMo SET trên VPS; sandbox merchant chưa kích hoạt. App mặc định VNPay. Ví = 0 vì OWNER chưa mở payUrl thanh toán test (credit nội bộ tắt trên prod — đúng).
FE 2026-08-17 · WP-FE-PAY-MOMO-HIDE-01: ẩn chip MoMo trên Gọi xe + không chọn MoMo khi nạp ví (MOMO_CHECKOUT_ENABLED=false). OWNER «MoMo ready» → bật flag. Agent không thanh toán hộ / không sửa portal MoMo.
Kết quả (VPS 2026-08-17 — lần trước trong ngày)
| Step | Result |
|---|---|
GET /api/v1/health (public) |
200 · env=production |
GET /payments/providers (public + in-container) |
200 · ready · preferred=VNPAY · mock disabled · momo+vnpay configured · wallet credit disabled |
GET /users/me |
200 (smoke user) |
POST /payments/init { amount:10000, provider:VNPAY } |
201 · PENDING · payUrlHost=sandbox.vnpayment.vn · vnp_SecureHash present |
POST /payments/init { amount:10000 } (omit provider) |
201 · default VNPAY · same host |
POST /payments/init { provider:MOMO } |
400 · merchant inactive (không đổi so với 2026-08-14) |
Khớp OWNER-PAY-E2E-2026-08-14.
Kết luận
| Gateway | Create sandbox | IPN / return / ví |
|---|---|---|
| VNPay | PASS (2026-08-17) | OWNER còn mở payUrl → thanh toán test → ví + return |
| MoMo | FAIL (merchant) | DEFERRED — nhắn MoMo ready sau khi sửa portal |
OWNER — 1 bước thủ công (đóng e2e)
- App CON trỏ prod (
EXPO_PUBLIC_API_URL=https://api.minhtien.cloud/api/v1hoặc APK EAS) — khônglocalhost. - Đăng nhập → Ví → Nạp tiền.
- Banner «Nạp qua VNPay sandbox» · số nhỏ (vd 50.000) → Xác nhận.
sandbox.vnpayment.vn→ NCB → thẻ test:- Số
9704198526191432198 - Tên
NGUYEN VAN A - Phát hành
07/15 - OTP
123456
- Số
- Return
welife://payment/result→ PaymentResult / Ví · số dư tăng.
Xong bước 5 → nhắn agent Pay done (kèm số dư tăng hay không).
Không gửi payUrl đầy đủ / screenshot chứa hash.
Agent re-smoke
scp scripts/smoke-pay-vps.sh root@180.93.146.58:/tmp/smoke-pay-vps.sh
ssh root@180.93.146.58 'bash /tmp/smoke-pay-vps.sh; rm -f /tmp/smoke-pay-vps.sh'