DotNetMercadoPago 1.0.0

dotnet add package DotNetMercadoPago --version 1.0.0
                    
NuGet\Install-Package DotNetMercadoPago -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DotNetMercadoPago" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DotNetMercadoPago" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="DotNetMercadoPago" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DotNetMercadoPago --version 1.0.0
                    
#r "nuget: DotNetMercadoPago, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=DotNetMercadoPago&version=1.0.0
                    
Install DotNetMercadoPago as a Cake Addin
#tool nuget:?package=DotNetMercadoPago&version=1.0.0
                    
Install DotNetMercadoPago as a Cake Tool

MercadoPago Payment Library

Una librería fácil de usar para integrar pagos de MercadoPago en tus aplicaciones. Esta librería proporciona una interfaz sencilla para procesar pagos, generar tokens de tarjetas, manejar cuotas, y más, todo mediante el uso de MercadoPago API.

Tabla de contenidos

  1. Características
  2. Requisitos
  3. Instalación
  4. Uso
  5. Contribuir
  6. Licencia

Características

  • Procesamiento de pagos: Permite realizar pagos con tarjetas de crédito, débito, pagofacil, etc.
  • Generación de tokens de tarjeta: Facilita la creación de tokens seguros para pagos con tarjetas de crédito.
  • Integración con MercadoPago API: Simplifica el uso de la API de MercadoPago en tus proyectos.
  • Manejo de errores y respuestas de la API: Proporciona mensajes de error claros y respuestas detalladas para facilitar la depuración.

Requisitos

  • .NET 8.0
  • Cuenta de MercadoPago: Necesitarás configurar una cuenta de MercadoPago y obtener las credenciales de API (clave pública y secreta).

Instalación

Para instalar esta librería, puedes agregarla a tu proyecto a través de NuGet. Ejecuta el siguiente comando:

dotnet add package DotNetMercadoPago

Uso

Configuración

  • Esta clase tiene que instanciarse una sola vez, usando singleton.
var builder = WebApplication.CreateBuilder(args);
string accessToken = builder.Configuration["AccessToken"];
builder.Services.AddSingleton<MercadoPagoPayment>(sp =>
{
   return new MercadoPagoPayment(accessToken);
});

Realizar un pago

  • En esta versión solo existen dos tipos de metodos de pago: Checkout PRO y Checkout Bricks
  • Checkout PRO: Crea en el backend un reference id que es la configuración de la compra como el contenido y las urls dependiendo el estado de la compra, que luego esto se tiene que enviar al frontend para comenzar con la compra.
  • Ejemplo:
var items = new List<PreferenceItemRequest>
{
   new PreferenceItemRequest
   {
         Title = "Mi producto",
         UnitPrice = 50,
         Quantity = 1,
         PictureUrl = "https://www.images.com/image_1.png"
   },
   new PreferenceItemRequest
   {
         Title = "Mi producto 2",
         UnitPrice = 50,
         Quantity = 1,
   }
};
     
var urls = new PreferenceBackUrlsRequest
{
   Success = "https://www.myexamplepage.com/success",
   Failure = "https://www.myexamplepage.com/failure",
   Pending = "https://www.myexamplepage.com/pending",
};
var installments = 2;
string referenceId = await mercadoPagoPayment.CreatePreferenceRequest(items, urls, installments);
  • Checkout Bricks: Recibe desde el frontend los datos de la compra de tipo JSON, para luego realizar el proceso de pago en el backend devolviendo como respuesta el estado de pago (approved, pending, rejected).
  • Ejemplo:
string json = """
                {
                  "description": "Purchase of product XYZ",
                  "cardholderName": "Pepe Lopez",
                  "installments": 1,
                  "payer": {
                    "email": "test@testuser.com",
                    "identification": {
                      "type": "DNI",
                      "number": "12345678"
                    }
                  },
                  "payment_method_id": "debmaster",
                  "token": "adjsjdajdj2j323j2j",
                  "transaction_amount": 100
                }
                """;

# Se puede deserializar manualmente usando la clase PaymentDataRequest que viene con la biblioteca
PaymentDataRequest paymentData = JsonConvert.DeserializeObject<PaymentDataRequest>(json);
string status = await mercadoPagoPayment.CreatePaymentRequest(paymentData);

# O usando el metodo estatico que deserializa y verifica si los datos no son nulos o estan vacios, lanzando una excepcion en caso de error. Es necesario agregar un try catch para manejar el error
try
{
   PaymentDataRequest paymentData = MercadoPagoPayment.DeserializePaymentData(json);
   string status = await mercadoPagoPayment.CreatePaymentRequest(paymentData);
}
catch (Exception ex)
{
   # Mensaje de que un dato es nulo o esta vacio
   Console.WriteLine(ex.Message);
}

Contribuir

¡Gracias por tu interés en contribuir a este proyecto! Todos los contribuyentes son bienvenidos, es mi primera vez haciendo una biblioteca asi que toda ayuda es bienvenida 😃

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 180 3/3/2025