API v2Órdenes
POST
snippetsPython
main.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
import json
try:
   import requests
except ImportError:
   print('[!] Please install the requests library')
   print('[!] Example: pip install requests')
   exit(1)
 
CHECKOUT_URL = 'https://checkout.developers.ar.ua.la'
PAYMENT_URL = f'{CHECKOUT_URL}/v2/api/checkout'
 
 
class Checkout:
   def __init__(self, amount: str, description: str, notification_url: str, callback_fail: str, callback_success: str, external_reference: str):
       """
       Constructor para inicializar los datos de un checkout.
 
       :param amount: Monto del checkout.
       :param description: Descripción de la venta.
       :param notification_url: URL para notificaciones.
       :param callback_fail: URL en caso de fallo.
       :param callback_success: URL en caso de éxito.
       :param external_reference: Referencia externa única.
       """
       self.amount = amount
       self.description = description
       self.notification_url = notification_url
       self.callback_fail = callback_fail
       self.callback_success = callback_success
       self.external_reference = external_reference
 
   def to_dict(self) -> dict:
       """
       Convierte el objeto Checkout en un diccionario.
       :return: Diccionario con los datos del checkout.
       """
       return vars(self)
 
   def to_json(self) -> str:
       """
       Convierte el objeto Checkout en un JSON.
       :return: JSON con los datos del checkout.
       """
       return json.dumps(self.to_dict())
 
   def checkout(self, access_token: str):
       """
       Realiza el checkout llamando a la API con los datos.
 
       :param access_token: Token de acceso para la API.
       :return: Respuesta de la API como diccionario.
       :raises Exception: En caso de errores durante la solicitud.
       """
       try:
           headers = {
               'Content-Type': 'application/json',
               'Accept': 'application/json',
               'Authorization': f'Bearer {access_token}',
           }
 
           response = requests.post(
               PAYMENT_URL,
               data=self.to_json(),
               headers=headers,
           )
 
           if response.status_code != 200:
               raise Exception(f'[!] HTTP error {response.status_code}: {response.text}')
 
           return response.json()
 
       except requests.exceptions.RequestException as e:
           raise Exception(f'[!] Checkout error: {e}')
 
 
if __name__ == '__main__':
   # Reemplaza estos valores con los reales
   checkout = Checkout(
       amount='10.90',
       description='Venta',
       notification_url='your-notification-url',
       callback_fail='your-fail-url',
       callback_success='your-success-url',
       external_reference='your-external-reference',
   )
 
   token = 'your-access-token'  # Reemplaza con tu token de acceso
 
   try:
       response = checkout.checkout(token)
       print('Success:', response)
   except Exception as e:
       print('Error:', str(e))