package com.fourtails.usuariolecturista.jobs; import android.app.Activity; import com.conekta.Charge; import com.conekta.Token; import com.fourtails.usuariolecturista.MainActivity; import com.fourtails.usuariolecturista.conekta.ConektaAndroid; import com.fourtails.usuariolecturista.conekta.ConektaCallback; import com.fourtails.usuariolecturista.ottoEvents.MakePaymentWithConektaEvent; import com.orhanobut.logger.Logger; import com.path.android.jobqueue.Job; import com.path.android.jobqueue.Params; import org.json.JSONException; import org.json.JSONObject; import static com.fourtails.usuariolecturista.ottoEvents.MakePaymentWithConektaEvent.Type; /** * MakePaymentWithConektaJob */ public class MakePaymentWithConektaJob extends Job { boolean responseOk = false; boolean retry = true; Activity mActivity; int mPayAmount; long m3forPrepay; String mUserEmail; boolean mIsBillPayment; public MakePaymentWithConektaJob(Activity activity, int payAmount, long m3forPrepay, String userEmail, boolean isBillPayment) { super(new Params(Priority.LOW).requireNetwork().groupBy("pay")); mActivity = activity; mPayAmount = payAmount; this.m3forPrepay = m3forPrepay; mUserEmail = userEmail; mIsBillPayment = isBillPayment; } @Override public void onAdded() { } @Override public void onRun() throws Throwable { ConektaAndroid conekta = new ConektaAndroid("key_eyD5sHqgVCzppFn6f35BzQ", mActivity); try { JSONObject pay = new JSONObject( "{" + "'currency':'MXN'" + "," + "'amount':" + mPayAmount + "," + "'description':'Android Pay'" + "," + "'reference_id':'9999-quantum_wolf'" + "," + //"'card':'" + tokenId + "'" + "," + "'card':'tok_test_visa_4242'" + "," + "'details':" + "{" + "'email':" + "'" + mUserEmail + "'" + "}" + "}"); conekta.payThing(pay, new ConektaCallback() { @Override public void failure(Exception error) { // TODO: Output the error in your app String result = null; if (error instanceof com.conekta.Error) { result = ((com.conekta.Error) error).message_to_purchaser; } else { result = error.getMessage(); } retry = false; MainActivity.bus.post(new MakePaymentWithConektaEvent(Type.COMPLETED, 99, true, 0, result)); } @Override public void success(Token token) { retry = false; } @Override public void success(Charge token) { if (mIsBillPayment) { MainActivity.bus.post(new MakePaymentWithConektaEvent(Type.COMPLETED, 1, true, 0, null)); } else { MainActivity.bus.post(new MakePaymentWithConektaEvent(Type.COMPLETED, 1, false, m3forPrepay, null)); // is a prepay } retry = false; } }); } catch (JSONException e) { e.printStackTrace(); } } @Override protected void onCancel() { Logger.d("Error i MakePaymentWithConektaJob"); MainActivity.bus.post(new MakePaymentWithConektaEvent(Type.COMPLETED, 99, true, 0, "unknown error")); } @Override protected boolean shouldReRunOnThrowable(Throwable throwable) { return retry; } }