Fabio Ferreira

Members
  • Content Count

    1
  • Joined

  • Last visited

Everything posted by Fabio Ferreira

  1. 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 } } } }