wompi_models/
pay_url.rs

1#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, Default)]
2#[serde(rename_all = "camelCase")]
3#[allow(clippy::struct_excessive_bools)]
4pub struct FormaPago {
5    pub permitir_tarjeta_credito_debido: bool,
6    pub permitir_pago_con_punto_agricola: bool,
7    pub permitir_pago_en_cuotas_agricola: bool,
8    pub permitir_pago_en_bitcoin: bool,
9    pub permite_pago_quick_pay: bool,
10}
11
12#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, Default)]
13#[serde(rename_all = "camelCase")]
14pub struct InfoProducto {
15    pub descripcion_producto: String,
16    pub url_imagen_producto: String,
17}
18
19#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, Default)]
20#[serde(rename_all = "camelCase")]
21pub struct Configuracion {
22    pub url_redirect: String,
23    pub es_monto_editable: bool,
24    pub es_cantidad_editable: bool,
25    pub cantidad_por_defecto: u64,
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub duracion_interfaz_intento_minutos: Option<u64>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub url_retorno: Option<String>,
30    pub emails_notificacion: String,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub url_webhook: Option<String>,
33    pub telefonos_notificacion: String,
34    pub notificar_transaccion_cliente: bool,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, Default)]
38#[serde(rename_all = "camelCase")]
39pub struct Vigencia {
40    pub fecha_inicio: chrono::DateTime<chrono::Utc>,
41    pub fecha_fin: chrono::DateTime<chrono::Utc>,
42}
43
44#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, Default)]
45#[serde(rename_all = "camelCase")]
46pub struct LimitesDeUso {
47    pub cantidad_maxima_pagos_exitosos: u64,
48    pub cantidad_maxima_pagos_fallidos: u64,
49}
50
51#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, Default)]
52#[serde(rename_all = "camelCase")]
53pub struct PeticionEnlaceDePago<T> {
54    pub identificador_enlace_comercio: String,
55    pub monto: f64,
56    pub nombre_producto: String,
57    #[serde(skip_serializing_if = "Option::is_none")]
58    pub forma_pago: Option<FormaPago>,
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub cantidad_maxima_cuotas: Option<String>,
61    #[serde(skip_serializing_if = "Option::is_none")]
62    pub info_producto: Option<InfoProducto>,
63    #[serde(skip_serializing_if = "Option::is_none")]
64    pub configuracion: Option<Configuracion>,
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub vigencia: Option<Vigencia>,
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub limites_de_uso: Option<LimitesDeUso>,
69    #[serde(skip_serializing_if = "Option::is_none")]
70    pub id_grupo_tarjetas: Option<String>,
71    #[serde(skip_serializing_if = "Option::is_none")]
72    pub datos_adicionales: Option<T>,
73}
74
75#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
76#[serde(rename_all = "camelCase")]
77pub struct RespuestaEnlaceDePago {
78    pub id_enlace: u64,
79    pub url_qr_code_enlace: String,
80    pub url_enlace: String,
81    pub esta_productivo: bool,
82}