Desarrollo de aplicación de MPeso en android

En los últimos meses he encontrado un par de aplicaciones MPeso en el Google playstore y hasta en windows phone, a lo cual me alegra lo proactivas que las personas pueden ser, también resulta que ninguna es open source (hasta donde se) y con animo de seguir animando a mas personas al mundo de las aplicaciones para dispositivos móviles, aquí están los "secretos" para crear una aplicación MPeso TUC con un ejemplo open source.

Paso 1. Obtener la tarjeta a revisar

Esto se puede realizar con un simple campo de texto que solicite al usuario la inserción de su tarjeta para realizar la consulta. Para nuestro ejemplo el layout activity_mpso.xml es así:

Paso 2.Consultar a MPeso

Para ello hacemos uso de Volley, es una libreria Http con el proposito de crear aplicaciones basadas en Networking de forma rapida y facil. Esto se realiza en el proyecto a travez de MPesoCaller para consultar el saldo:

 public void consultarSaldo(final String tarjetaTUC, final ResponseCallback callback) {

        RequestQueue queue = Volley.newRequestQueue(this);

        StringRequest request = new StringRequest(Method.POST, url,
        new Response.Listener() {

        @Override
        public void onResponse(String response) {
        JSONObject object;
        try {
                object = new JSONObject(response);
                callback.response(tarjetaTUC,object.getString("Mensaje"));
        } catch (JSONException e) {
                e.printStackTrace();
        }
}
}, 
        new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
                callback.error(error.getMessage());
                }
        }) {
        
        @Override
        protected Map getParams() throws AuthFailureError {
                Map params = new HashMap();
                params.put("_funcion", "1");
                params.put("_terminal", tarjetaTUC);
                        return params;
                }};
                queue.add(request);
}

Paso 3. Manipular la respuesta de la llamada a MPeso

Una vez tengamos una respuesta en caso de ser positiva la guardamos, y la mostramos al usuario como en una lista. En caso de ser fallida notificamos al usuario a travez de un mensaje. Este paso se puede aprecias en los metodos response() y error de la actividad MPesoActivity. Respuesta positiva:

Matcher matcher = Pattern.compile("C\\$\\s(\\d*\\.\\d*)").matcher(saldo);
if (matcher.find()) {
                      TarjetaManager.instance(getBaseContext()).save(tarjetaTUC, Double.parseDouble(matcher.group(1)));
}

Respuesta negativa:

        @Override
        public void error(String message) {
                Toast.makeText(this, "saldo es " + message, Toast.LENGTH_LONG).show();
        }

Quizás te interese:

  • Volley en I/O 2013 hubo una charla interesante al respecto: Volley Easy, Fast networking for Android
  • La aplicatión uTuc también cuenta con alarmas y configuraciones, esta hecha con fines académicos, cualquier pull request es bienvenido
  • Los comentarios siempre son bienvenidos!

Facebook icon Twitter icon LinkedIn icon e-mail icon