Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Mapas e Rotas com React Native - #12 Respostas do Mercado Pago

20/03/2021

Nessa videoaula vamos aprender a como manipular os dados dentro do componente webview, verificando por exemplo se a compra foi efetuada no Mercado Pago.

Entendendo Webview por dentro

Controller.js

No Controller vamos adicionar mais uma propriedade a nossa requisição ao Mercado Pago. Ficará da seguinte forma:

let preference = {
    items:[{
        title: req.body.address,
        quantity: 1,
        currency_id: 'BRL',
        unit_price: parseFloat(req.body.price)
    }],
    payer:{
        name:"Thiago",
        email: "demo@mail.com"
    },
    back_urls:{
        failure:"https://www.webdesignemfoco.com/failure",
        pending:"https://www.webdesignemfoco.com/pending",
        success:"https://www.webdesignemfoco.com/success",
    },
    payment_methods: {
        installments:3,
        excluded_payment_types: [
            {"id":"ticket"},
            {"id":"debit_card"}
        ]
    },
};

views/Checkout.js

Vamos implementar a função stateChange que receberá as mudanças do checkout e redirecionará o usuário:

//Mudança de estado de navegação
async function stateChange(state)
{
    let url=state.url;
    if(state.canGoBack == true && !url.includes('mercadopago')){
        if(url.includes("approved")){
            props.navigation.navigate('Tracking');
        }else{
            props.navigation.navigate('Home');
        }
    }
}

views/Tracking.js

Vamos criar a view Tracking que receberá o usuário após aprovado o seu pagamento.

import React from 'react';
import { Text, View } from 'react-native';
import {css} from '../assets/css/Css';

export default function Tracking(props) {

    return (
        <View style={css.container}>
           <Text>Seu pagamento foi aprovado.</Text>
        </View>
    );
}

views/index.js

Não esqueça de importar essa nova screen no arquivo index:

import Home from './Home';
import Checkout from './Checkout';
import Tracking from './Tracking';

export {Home, Checkout, Tracking};

App.js

No nosso entry point App.js precisamos inserir essa nova screen:

import {Home, Checkout, Tracking} from './views';
<Stack.Screen name="Tracking" component={Tracking} options={{headerShown:false}} />

Por hoje é só turma. Sucesso nos códigos e na vida!

Precisando de assessoria? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Mapas e Rotas com React Native - #11 Checkout com Webview
Nesse tutorial exibiremos o checkout para pagamento dentro do app criado com React Native usando o módulo Webview.
Saiba mais!
Mapas e Rotas com React Native - #13 Tracking
Nesse tutorial implementaremos a tela de Tracking do nosso app, exibindo os dados da viagem para o usuário do app.
Saiba mais!
React JS
Nessa seção aprenderemos sobre essa importante biblioteca Javascript desenvolvida pelo Facebook para facilitar a construção backend dos nossos websites.
Saiba mais!