WELIFE Docs Swagger Admin Web

WP-RIDE payment / settle / promo / match — 2026-08-13

Scope (theo thứ tự OWNER)

WP Mục tiêu Status
WP-RIDE-PAY-REFUND-02 Hoàn ví (WALLET) / gateway (MOMO·VNPAY) khi user / driver / admin hủy IMP
WP-RIDE-SETTLE-01 Settle lúc complete · driverEarning · platformFee 15% · credit ví TX nếu prepaid IMP
WP-RIDE-PROMO-01 promoCode trên create ride · resolve BE · discountAmount · mark voucher used IMP
WP-RIDE-PAY-GATEWAY-01 PaymentPurpose.RIDE_PAY · initForRide · IPN → PREPAID · ẩn AWAITING_PAYMENT khỏi available IMP
WP-RIDE-MATCH-01 Auto-assign online driver ≤8km · available sort theo lastLat/lng · bán kính 15km IMP

Domain / Surfaces

Hành vi chính

  1. Refund: RidesService.refundWalletIfPaid — WALLET → creditRideRefund; MOMO/VNPAY prepaid → PaymentsService.refundRidePayment.
  2. Settle: completeTrip → settleOnComplete · prepaid credit RIDE_EARNING idempotent ride-earn:{id} · CASH → SETTLED_CASH (không move ví khách).
  3. Promo: CreateRideDto.promoCode → PromotionsService.resolveForCheckout(..., { markUsed: true }) · fareAmount = gross − discount.
  4. Gateway: create MOMO/VNPAY → intent RIDE_PAY + payUrl · markPaid set paymentStatus=PREPAID (không nạp ví khách).
  5. Match: sau create (không AWAITING) gọi tryAutoAssign · driver available sort + radius.

Migration

api/prisma/migrations/20260813103000_ride_settle_promo_gateway/

Local

Files