Saltar al contenido principal

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"