Motor de tarifas Escrow: divisiones atómicas en cada transición
Cómo se calculan y capturan el pago del vendedor, la tarifa de la plataforma y el reembolso del comprador en cada lanzamiento, reembolso o división, sin condiciones de carrera.
A Una transición de depósito en garantía que mueve dinero tiene que hacerse de forma atómica. Si el pago del vendedor se escribe pero la tarifa de la plataforma no, tienes una inconsistencia que debe repararse manualmente. El motor de tarifas H6 evita esto al calcular todas las divisiones en una transacción y escribirlas como una fila de liquidación.
La estructura de tarifas
Las tarifas son configurables por el inquilino por resultado y por categoría. Una configuración típica: release cobra un porcentaje fijo del vendedor (la tarifa de la plataforma), refund renuncia a la tarifa de la plataforma (o cobra una tarifa menor por manejo de disputas), split toma la tarifa de la plataforma proporcionalmente a la parte de cada parte. Se admiten precios por volumen escalonado: las ofertas que superan un umbral obtienen un porcentaje más bajo. El motor lee la política de la página de políticas H7 en el momento de la transición.
El cálculo de división
Para una liberación: total = monto retenido, tarifa_plataforma = total × tasa_tarifa, pago_vendedor = total - tarifa_plataforma, reembolso_comprador = 0. Para un reembolso: tarifa_plataforma = 0 (o tarifa_disputa), pago_vendedor = 0, reembolso_comprador = total. Para una división con un resultado de 70/30: tarifa_plataforma = total × tasa_tarifa, pagadero = total − tarifa_plataforma, pago_vendedor = pagadero × 0,7, reembolso_comprador = pagadero × 0,3. Los tres números van a la fila de liquidación.
Atomicidad
La escritura de liquidación ocurre en la misma transacción de base de datos que la transición del estado de depósito en garantía. Si algo falla (no se encontró la política de tarifas, violación de las restricciones de la tabla de liquidación), toda la transacción se revierte. El depósito en garantía permanece en su estado anterior. No hay fondos liberados a medias. El usuario recibe un error específico y puede volver a intentarlo una vez que se soluciona el problema subyacente.
Instantánea de moneda
La fila de liquidación almacena el tipo de cambio en el momento de la transición (utilizando los tipos diarios actualizados por el cron H/tipos de cambio). Si la moneda de la transacción difiere de la moneda de los informes de la plataforma, se almacenan ambas cantidades. Una liquidación cerrada en USD un día en el que el EUR/USD era 1,08 se registra con ese tipo de cambio; los informes financieros seis meses después no se vuelven a traducir silenciosamente.