WELIFE Docs Swagger Admin Web

OWNER e2e Pay — 2026-08-12

Domain: D-PAY · WP: WP-OWNER-WIRE-01 (Pay slice)
Surfaces: API · VPS api.minhtien.cloud
Agent: mint short-lived JWT in welife-api (no secret printed) · POST /payments/init

Kết quả

Step Result
GET /payments/providers status=ready · preferred=VNPAY · mock disabled · momo+vnpay configured · wallet credit disabled
POST /payments/init (omit provider) 201 · PENDING · provider=VNPAY · payUrlHost=sandbox.vnpayment.vn · vnp_SecureHash present
POST /payments/init { provider: VNPAY } 201 · same sandbox host + hash
POST /payments/init { provider: MOMO } 400 · MoMo: "Cấu hình doanh nghiệp không chính xác hoặc tài khoản không hoạt động."

Kết luận

Gateway Create sandbox IPN/return full
VNPay PASS OWNER mở payUrl trên sandbox → thanh toán test → xác nhận ví credit / return HTML
MoMo FAIL (merchant/credential) Giữ DEFERRED đến khi portal MoMo duyệt / key sandbox đúng

PAYMENTS_MOCK=false · MOMO_ENV=sandbox · preferred VNPAY — khớp OWNER-GATES §3.

OWNER còn lại (1 bước thủ công)

  1. Mở app hoặc dán payUrl sandbox VNPay vừa tạo → thanh toán số tiền test.
  2. Xác nhận return welife://payment/result / trang return + số dư ví tăng.
  3. (Tuỳ chọn) Đổi MoMo merchant sandbox đúng rồi nhắn agent smoke lại provider=MOMO.

Không commit .env / hash secret / payUrl đầy đủ (có chữ ký).