RenderizaĆ§Ć£o padrĆ£o
Antes de realizar a renderizaĆ§Ć£o do Wallet Brick, primeiro execute os passos de inicializaĆ§Ć£o compartilhados entre todos os Bricks. A partir disso, veja abaixo as informaƧƵes necessĆ”rias para vocĆŖ configurar e renderizar o Wallet Brick.
Configurar o Brick
Crie a configuraĆ§Ć£o de inicializaĆ§Ć£o do Brick.
const renderWalletBrick = async (bricksBuilder) => {
await bricksBuilder.create("wallet", "walletBrick_container", {
initialization: {
preferenceId: "<PREFERENCE_ID>",
},
customization: {
theme: "default",
customStyle: {
valueProp: "practicality",
valuePropColor: "white",
},
},
});
};
renderWalletBrick(bricksBuilder);
const initialization = {
preferenceId: '<PREFERENCE_ID>',
}
const customization = {
texts: {
valueProp: 'smart_option',
},
}
const onSubmit = async (formData) => {
// callback chamado ao clicar no Wallet Brick
// isso Ć© possĆvel porque o Brick Ć© um botĆ£o
};
const onError = async (error) => {
// callback chamado para todos os casos de erro do Brick
console.log(error);
};
const onReady = async () => {
// Callback chamado quando o Brick estiver pronto.
// Aqui vocĆŖ pode ocultar loadings do seu site, por exemplo.
};
Esse fluxo Ć© pensado para lojas que utilizam o Wallet Brick no final do processo de checkout e jĆ” possuem a preferĆŖncia criada ao renderizar o Brick, enviando-a na inicializaĆ§Ć£o. Caso queira, Ć© possĆvel utilizar o Brick criando a preferĆŖncia no momento do envio (onSubmit
). Veja mais informaƧƵes na seĆ§Ć£o de PreferĆŖncia no envio.
Renderizar o Brick
Uma vez criadas as configuraƧƵes, insira o cĆ³digo abaixo para renderizar o Brick.
<div id="walletBrick_container"></div>
import { Wallet } from '@mercadopago/sdk-react';
<Wallet
initialization={initialization}
customization={customization}
onSubmit={onSubmit}
onReady={onReady}
onError={onError}
/>
O resultado de renderizar o Brick deve ser como na imagem abaixo, apresentando um texto e um visual padrĆ£o.
Habilitar pagamento com Mercado Pago
Para utilizar o mƩtodo de pagamento (paymentMethods
) do tipo "mercadoPago" Ć© preciso enviar uma preferĆŖncia durante a inicializaĆ§Ć£o do Brick, substituindo o valor PREFERENCE_ID
pelo ID da preferĆŖncia criada.
Para criar uma preferĆŖncia em seu backend, adicione o SDK do Mercado Pago e as credenciais necessĆ”rias ao seu projeto para habilitar o uso de preferĆŖncias.
<?php
// SDK do Mercado Pago
require __DIR__ . '/vendor/autoload.php';
// Adicione as credenciais
MercadoPago\SDK::setAccessToken('PROD_ACCESS_TOKEN');
?>
// SDK do Mercado Pago
const mercadopago = require ('mercadopago');
// Adicione as credenciais
mercadopago.configure({
access_token: 'PROD_ACCESS_TOKEN'
});
// SDK do Mercado Pago
import com.mercadopago.MercadoPagoConfig;
// Adicione as credenciais
MercadoPagoConfig.setAccessToken("PROD_ACCESS_TOKEN");
# SDK do Mercado Pago
require 'mercadopago'
# Adicione as credenciais
sdk = Mercadopago::SDK.new('PROD_ACCESS_TOKEN')
// SDK do Mercado Pago
using MercadoPago.Config;
// Adicione as credenciais
MercadoPagoConfig.AccessToken = "PROD_ACCESS_TOKEN";
# SDK do Mercado Pago
import mercadopago
# Adicione as credenciais
sdk = mercadopago.SDK("PROD_ACCESS_TOKEN")
Em seguida, configure a preferĆŖncia de acordo com o seu produto ou serviƧo.
Os exemplos de cĆ³digo abaixo configuram o purpose da preferĆŖncia como wallet_purchase
, mas tambĆ©m Ć© possĆvel configurĆ”-lo como onboarding_credits
. Entenda a diferenƧa entre os dois:
wallet_purchase: o usuƔrio deverƔ fazer login quando for redirecionado para sua conta do Mercado Pago.
onboarding_credits: apĆ³s fazer login, o usuĆ”rio verĆ” a opĆ§Ć£o de pagamento com crĆ©dito prĆ©-selecionada em sua conta do Mercado Pago.
<?php $client = new PreferenceClient(); $preference = $client->create([ "items"=> array( array( "title" => "Meu produto", "quantity" => 1, "unit_price" => 25 ) ) ]); ?>
// Cria um objeto de preferĆŖncia let preference = { // o "purpose": "wallet_purchase" permite apenas pagamentos logados // para permitir pagamentos como guest, vocĆŖ pode omitir essa propriedade "purpose": "wallet_purchase", "items": [ { "id": "item-ID-1234", "title": "Meu produto", "quantity": 1, "unit_price": 75 } ] }; mercadopago.preferences.create(preference) .then(function (response) { // Este valor Ć© o preferenceId que serĆ” enviado para o Brick na inicializaĆ§Ć£o const preferenceId = response.body.id; }).catch(function (error) { console.log(error); });
// Cria um objeto de preferĆŖncia PreferenceClient client = new PreferenceClient(); // Cria um item na preferĆŖncia List<PreferenceItemRequest> items = new ArrayList<>(); PreferenceItemRequest item = PreferenceItemRequest.builder() .title("Meu produto") .quantity(1) .unitPrice(new BigDecimal("100")) .build(); items.add(item); PreferenceRequest request = PreferenceRequest.builder() // o .purpose('wallet_purchase') permite apenas pagamentos logados // para permitir pagamentos como guest, vocĆŖ pode omitir essa linha .purpose('wallet_purchase') .items(items).build(); client.create(request);
# Cria um objeto de preferĆŖncia preference_data = { # o purpose: 'wallet_purchase', permite apenas pagamentos logados # para permitir pagamentos como guest, vocĆŖ pode omitir essa propriedade purpose: 'wallet_purchase', items: [ { title: 'Meu produto', unit_price: 75, quantity: 1 } ] } preference_response = sdk.preference.create(preference_data) preference = preference_response[:response] # Este valor Ć© o preferenceId que vocĆŖ usarĆ” no HTML na inicializaĆ§Ć£o no Brick @preference_id = preference['id']
// Cria o objeto de request da preferĆŖncia var request = new PreferenceRequest { // o Purpose = 'wallet_purchase', permite apenas pagamentos logados // para permitir pagamentos como guest, vocĆŖ pode omitir essa propriedade Purpose = "wallet_purchase", Items = new List<PreferenceItemRequest> { new PreferenceItemRequest { Title = "Meu produto", Quantity = 1, CurrencyId = "BRL", UnitPrice = 75, }, }, }; // Cria a preferĆŖncia usando o client var client = new PreferenceClient(); Preference preference = await client.CreateAsync(request);
# Cria um item na preferĆŖncia preference_data = { # o "purpose": "wallet_purchase", permite apenas pagamentos logados # para permitir pagamentos como guest, vocĆŖ pode omitir essa propriedade "purpose": "wallet_purchase", "items": [ { "title": "Meu Item", "quantity": 1, "unit_price": 75 } ] } preference_response = sdk.preference().create(preference_data) preference = preference_response["response"]
curl -X POST \ 'https://api.mercadopago.com/checkout/preferences' \ -H 'Content-Type: application/json' \ -H 'cache-control: no-cache' \ -H 'Authorization: Bearer **PROD_ACCESS_TOKEN**' \ -d '{ "purpose": "wallet_purchase", "items": [ { "title": "Meu produto", "quantity": 1, "unit_price": 75 } ] }'
Teste sua integraĆ§Ć£o
Com a integraĆ§Ć£o finalizada, vocĆŖ poderĆ” testar o recebimento de pagamentos. Para mais informaƧƵes, acesse a seĆ§Ć£o Realizar compra teste.