getPaymentStagesByOrderId
Obtén el progreso del pago de un pedido: sus etapas y si están pagadas.
Descripción
Obtiene las etapas de pago de un pedido y dos indicadores que describen el pedido en su conjunto. Se resuelve en un IPaymentProgress.
.getPaymentStagesByOrderId(
);
Esquema de parámetros
Schema
id(required): number
ID del pedido.
ejemplo: 1
Qué significan los dos indicadores
completed es true cuando todas las etapas están pagadas. partial es true en cuanto al menos una etapa está pagada, así que comprueba primero completed. Cada etapa tiene su propio status, y sessionId es null hasta que se crea una sesión de pago para esa etapa.
const progress = await Payments.getPaymentStagesByOrderId(205);
if ('statusCode' in progress) throw new Error(progress.message);
if (progress.completed) {
// Nothing left to pay.
} else if (progress.partial) {
const left = progress.stages.filter((stage) => stage.status === 'planned');
console.log(`${left.length} stages still to pay`);
}
Autorización
El acceso depende de los permisos de módulo del grupo de usuarios de quien llama; configúralos en el panel de administración.
Ejemplos
Ejemplo mínimo
const response = await Payments.getPaymentStagesByOrderId(205);
Ejemplo de respuesta
{
"completed": false,
"partial": true,
"stages": [
{
"marker": "part_a",
"sessionId": 100,
"productId": 200,
"title": "Part A",
"value": 150,
"status": "completed"
},
{
"marker": "part_b",
"sessionId": 101,
"productId": 200,
"title": "Part B",
"value": 150,
"status": "planned"
}
]
}
Esquema de respuesta
Esquema: IPaymentProgress
completed: boolean
true cuando se han pagado todas las etapas del pedido.
ejemplo: false
partial: boolean
true en cuanto se paga al menos una etapa. Comprueba primero completed: es true cuando no queda nada por pagar.
ejemplo: true
stages: IPaymentStage[]
Las propias etapas, en el orden en que las devuelve la API.
stages.marker: string
Marcador del atributo que define el precio de la etapa.
ejemplo: "part_a"
stages.sessionId: number
Identificador de la sesión de pago vinculada a la etapa.
ejemplo: 100
stages.productId: number
ID del producto al que pertenece la etapa.
ejemplo: 200
stages.title: string
Título de la etapa.
ejemplo: "Part A"
stages.value: number
Importe a pagar en la etapa.
ejemplo: 150
stages.status: "planned" | "completed"
Estado de la etapa: "planned", aún no pagada; "completed", pagada.
ejemplo: "planned"