Mercado Pago Integration

A payment integration library for paid market, includes:

Client:

  • create: Creates a new customer
  • delete: Deletes a client with a given id
  • save card: Saves a tokenized card to a particular customer.
  • get: Returns a specific customer

Card:

  • token: Tokens a card.
  • token with card: Generates token from a saved card.
  • get: Returns a specific card.

Payment:

  • payment methods: Returns all available payment methods.
  • credit card: Payment by credit card.
  • ticket: Payment by boleto.
  • pix: Payment by Pix.
  • get: Returns a specific payment.

Subscriptions:

  • create: Create a payment subscription.
  • search: Search for payment subscriptions.
  • update card: Update the payment subscription card.
  • cancel: Cancel a payment subscription.
  • pause: Pause a payment subscription.
  • active: Activates a paused payment subscription.
  • get: Returns a specific payment subscription.

Starting with module:

import 'package:mercadopago_transparent/mercadopago_transparent.dart'
    as mercadopago;

final mercado =
      mercadopago.MercadoPago(acessToken: 'ACESS_TOKEN', publicKey: 'PUBLIC_KEY', applicationId: '');

Tokenizing a card:

String token = await mercado.card.token(
       cardName: 'cardName',
       cpf: 'cpf',
       cardNumber: 'cardNumber',
       expirationMoth: 11,
       expirationYear: 2025,
       securityCode: 'securityCode',
       issuer: 'issuer'); 

Issuer is the ID of the card-issuing bank. For more information: https://www.mercadopago.com.br/developers/pt/guides/resources/localization/payment-methods

Example: master, visa ...

Creating a client

final client =
       mercadopago.Client(firstName: '', email: '', docNumber: '', phone: '');

   String clientId = await mercado.client.create(client: client);

You can relate the card to the customer for future purchases

String cardId =
       await mercado.client.savecard(clientId: 'clientId', token: 'token');

Tokenize the saved card requires the security code and the card ID.

String token =
       await mercado.card.tokenWithCard(cardId: 'cardId', securityCode: 'securityCode');

Payment

Payment by credit card.

If it is passed as a parameter clientId, it makes the payment with the customer's information already saved in the paid market. Otherwise, it is mandatory to fill in all other customer information email, name, docNumber.

mercadopago.Payment pay =
       await mercado.payment.creditCard(tokenCard: 'tokenCard', clientId: '', amount: 100.0);

Payment by ticket.

mercadopago.Payment pay =
       await mercado.payment.ticket(name: 'name', email: 'email', docNumber: 'docNumber', , amount: 100.0);

One of the parameters of the Payment class is barCode. The payment slip barcode.

Payment by PIX.

mercadopago.Payment pay =
       await mercado.payment.ticket(name: 'name', email: 'email', docNumber: 'docNumber', amount: 100.0);

One of the parameters of the Payment class is qrCode, the pix code for payment. In addition to qrCodeRender, to redefine the code in the view.

Subscription

Subscriptions only work with real users, requiring a real card. Or with test users, the latter being both test users.

You will be able to create a subscription, pause and cancel a subscription.

Creating signature

mercadopago.Subscriptions = await mercado.subscriptions.create(
           description: 'Teste',
           email: '',
           token: 'token card',
           frequency: 1,
           type: 'months',
           amount: 1);

type - Indicates the type of frequency. It can be per month (months) or per day (days).

For example, if every fifteen days it was necessary to generate a parcel to be charged, it would be like this: frequency: 15 o type: days

The subscription method is without an associated plan. For more information visit: https://www.mercadopago.com.br/developers/pt/guides/online-payments/subscriptions/integration.