• 0
Sign in to follow this  
Fabio Ferreira

Problema com Teste SandBox

Question

Pessoal, sou novo na programação de server back end, estou começando agora e estou desenvolvendo um pequeno app Android para testes com implementação do Mercado Pago.

Meu objetivo é somente utilizar a plataforma de pagamento do Mercado Pago, sem qualquer vinculo com o Mercado Livre.

Estou conseguindo efetuar a criação do preference id, mas quando tento efetuar o pagamento pelo sandbox gera um erro.

Abaixo segue meu código do servidor e do android,  alguém pode me dar uma luz, o que tem de errado?

Os cartões de teste do MP estão funcionando?

let mercadoPago = require('mercadopago');

mercadoPago.configure({
    access_token: "TEST-Chave do Sandbox"
})


module.exports.createPreference = function(Parse){

    
    return function(request, response){
        let preference = {};

        Parse.Promise.as().then(function(){

            let itemQuery = new Parse.Query('Item');
            itemQuery.equalTo('ItemName', 'basic');
            return itemQuery.first(null, {userMasterKey: true});

        }, {userMasterKey:true}).then(function(result){

            if ( !result ){
                response.error('Item não localizado');
            }

            let item = {
                title: result.get('ItemName'),
                quantity: 1,
                currency_id: 'BRL',
                unit_price: result.get('Price')
            }

            let payer = {
                email: 'email@gmail.com'
            }

            preference.items = [item]
            preference.payer = payer

            return mercadoPago.preferences.create(preference).then(function(data){

                response.success(data)

            }, {userMasterKey:true}).catch(function(error){
                response.error(error);
            })

        })

    }

}
private void startPayment()
    {
        
        HashMap<String, Object> params = new HashMap<>();
        params.put("email", "email@gmail.com");

        Log.d(TAG, "startPayment: Iniciando chamada a criação da preference");
        ParseCloud.callFunctionInBackground("createPreference", params, new FunctionCallback<Object>() {

            @Override
            public void done(Object object, ParseException e) {

                if ( e == null ){
                    Log.d(TAG, "done: Sucesso");
                    Log.d(TAG, "done: " + object);
                } else {
                    Log.d(TAG, "done: Erro - " + e);
                }

            }
        });



        final MercadoPagoCheckout checkout = new MercadoPagoCheckout.Builder(PUBLIC_KEY, "Preference ID que foi criado acima").build();
        checkout.startPayment(this, REQUEST_CODE);

    }


    @Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE) {
            if (resultCode == MercadoPagoCheckout.PAYMENT_RESULT_CODE) {
                final Payment payment = (Payment) data.getSerializableExtra(MercadoPagoCheckout.EXTRA_PAYMENT_RESULT);
                ((TextView) findViewById(R.id.mp_results)).setText("Resultado del pago: " + payment.getPaymentStatus());
                //Done!
            } else if (resultCode == RESULT_CANCELED) {
                if (data != null && data.getExtras() != null
                        && data.getExtras().containsKey(MercadoPagoCheckout.EXTRA_ERROR)) {
                    final MercadoPagoError mercadoPagoError =
                            (MercadoPagoError) data.getSerializableExtra(MercadoPagoCheckout.EXTRA_ERROR);
                    ((TextView) findViewById(R.id.mp_results)).setText("Error: " +  mercadoPagoError.getMessage());
                    //Resolve error in checkout
                } else {
                    //Resolve canceled checkout
                }
            }
        }
    }

 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Para integração com o MercadoPago apenas você deve verificar a documentação e o suporte deles diretamente. Este fórum é apenas para a integração com a API do MercadoLivre.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this