Epayco-android
facilitates the collection of credit card information without storing sensitive data on your server.
These Epayco methods can be used to generate data in your Android application.
If you have an app that processes credit card payments, you should use the epayco-android library to ensure sensitive data does not remain on your server.
- Make sure to create your Android project using Java and Groovy DSL as the Gradle configuration language.
- Download the plugin from: https://github.com/epayco/epayco-android
- Unzip the downloaded file and copy the folder named
epayco
. - Go to the root of your Android project and paste the
epayco
folder there. This completes the plugin installation.
Once you have the epayco
folder in your project, follow these steps to ensure Android Studio recognizes it:
-
In the root of your project, open the
settings.gradle
file and at the bottom, add the following line:include ':app', ':epayco'
Then sync your project by clicking Sync Now or going to
File > Sync Project with Gradle Files
. -
Open the
build.gradle
file inside the app folder and in thedependencies
section, add:implementation project(':epayco')
Sync your project again.
-
Your project is now ready to consume the SDK services.
-
In the
MainActivity
file of theapp
folder (or any class where you want to run tests), import the main Epayco class:import com.epayco.android.Epayco;
Then you can import the specific services you want to use like this:
import com.epayco.android.models.[ServiceToConsume];
Authentication auth = new Authentication();
auth.setApiKey("YOU_PUBLIC_API_KEY");
auth.setPrivateKey("YOU_PRIVATE_API_KEY");
auth.setLang("ES");
auth.setTest(true);
Epayco epayco = new Epayco(auth);
//Validate number credit card
epayco.validNumberCard("4575623182290326");
//Validate dates
epayco.validExpiryMonth("12");
epayco.validExpiryYear("2018");
epayco.validateExpiryDate("12", "2018");
//Validate CVC
epayco.validateCVC("123");
//Validate Credit Card (card is a model card)
epayco.validCard(card);
Card card = new Card();
card.setNumber("4575623182290326");
card.setMonth("12");
card.setYear("2018");
card.setCvc("123");
card.setHasCvv(true); //hasCvv: validar codigo de seguridad en la transacciĂłn
epayco.createToken(card, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Client client = new Client();
client.setTokenId("Az9wdX4Wj3JRmr9NC");
client.setName("Cliente epayco");
client.setEmail("[email protected]");
client.setPhone("305274321");
client.setDefaultCard(true);
epayco.createCustomer(client, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getCustomer("id_customer", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
ClientList client = new ClientList();
client.setPage("6");
client.setPerPage("6 epayco");
epayco.getCustomerList(client, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Client client = new Client();
client.setFranchise("visa");
client.setMask("457562******0326");
client.setCustomer_id("id_customer");
epayco.deleteTokenCustomer(client, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Client client = new Client();
client.setCustomer_id("id_customer");
client.setTokenId("**********zL4gFB");
client.setFranchise("american-express");
client.setMask("373118*****7642");
epayco.addTokenDefault(client, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Client client = new Client();
client.setTokenId("Az9wdX4Wj3JRmr9NC");
client.setCustomer_id("id_customer");
epayco.addNewToken(client, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Plan plan = new Plan();
plan.setIdPlan("reactcourse_001233");
plan.setName("Course React v02");
plan.setDescription("Course react advanced v02");
plan.setAmount("30000");
plan.setCurrency("COP");
plan.setInterval("month");
plan.setIntervalCount("1");
plan.setTrialDays("30");
plan.setPlanLink("https://ejemplo.com/plan");
plan.setGreetMessage("Gracias por preferirnos");
plan.setLinkExpirationDate("2025-03-11");
plan.setSubscriptionLimit("10");
plan.setDiscountValue(5000.0f);
plan.setDiscountPercentage(19);
plan.setFirstPaymentAdditionalCost(45700.0f);
epayco.createPlan(plan, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {
Log.d("epayco", data.toString());
}
@Override
public void onError(Exception error) {
Log.d("epaycoError", error.getMessage());
}
});
epayco.getPlan("reactcourse", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getPlanList(new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
PlanUpdate plan = new PlanUpdate();
plan.setName("Course React v02");
plan.setDescription("Course react advanced v02");
plan.setAmount("30000");
plan.setCurrency("COP");
plan.setInterval("month");
plan.setIntervalCount("1");
plan.setTrialDays("0");
plan.setIp("127.0.0.1");
plan.setAfterPayment("afterPayment");
epayco.updatePlan("reactcourse_001233", plan, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {
Log.d("epayco", data.toString());
}
@Override
public void onError(Exception error) {
Log.d("epaycoError", error.getMessage());
}
});
Subscription subscription = new Subscription();
subscription.setTokenCard("id_token");
subscription.setCustomer("id_customer");
subscription.setIdPlan("reactcourse");
subscription.setDoc_type("CC");
subscription.setDoc_number("5234567");
/*Optional parameter: if these parameter it's not send, system get ePayco dashboard's url_confirmation*/
subscription.setUrlConfirmation("https:/secure.payco.co/restpagos/testRest/endpagopse.php");
epayco.createSubscription(subscription, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getSubscription("id_subscription", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getSubscriptionList(new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
ChargeSub sub = new ChargeSub();
sub.setIdPlan("reactcourse");
sub.setCustomer("id_customer");
sub.setTokenCard("id_token");
sub.setDocType("CC");
sub.setDocNumber("5234567");
sub.setIp("190.000.000.000");/*This is the client's IP, it is required*/
epayco.chargeSubscription(sub, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.cancelSubscription("id_subscription", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getBanks(object : EpaycoCallback {
@Throws(JSONException::class)
override fun onSuccess(data: JSONObject) {
val TextView = findViewById<View>(R.id.textView2 as TextView
textView.text = data.toString()
System.out.println(data)
}
override fun onError(error: Exception) {
System.out.println("Error")
System.out.println("Exception")
}
})
Pse pse = new Pse();
//Schema
pse.setBank("1022");
pse.setTypePerson("0");
//Required
pse.setDocType("CC");
pse.setDocNumber("1035851980");
pse.setName("John");
pse.setLastName("Doe");
pse.setEmail("[email protected]");
pse.setInvoice("OR-1234");
pse.setDescription("Test Payment");
pse.setValue("116000");
pse.setTax("16000");
pse.setTaxBase("100000");
pse.setPhone("3010000001");
pse.setCurrency("COP");
pse.setCountry("CO");
pse.setUrlResponse("https:/secure.payco.co/restpagos/testRest/endpagopse.php");
pse.setUrlConfirmation("https:/secure.payco.co/restpagos/testRest/endpagopse.php");
pse.setIp("190.000.000.000");/*This is the client's IP, it is required*/
//Optional
pse.setMethodConfirmation("GET");
pse.setIco("0");
pse.setExtra1("");
pse.setExtra2("");
pse.setExtra3("");
pse.setCity("");
pse.setDepto("");
pse.setAddress("");
epayco.createPseTransaction(pse, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getPseTransaction("ticketId", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Previous requirements: https://docs.epayco.co/tools/split-payment
Pse pse = new Pse();
//Other customary parameters...
pse.setSplitpayment ("true");
pse.setSplit_app_id ("19520");
pse.setSplit_merchant_id ("17511");
pse.setSplit_type ("02");
pse.setSplit_primary_receiver ("19520");
pse.setSplit_primary_receiver_fee ("10");
Cash cash = new Cash();
//Schema
cash.setType("efecty");
cash.setEndDate("2017-12-05");
cash.setLastName("Doe");
cash.setEmail("[email protected]");
cash.setInvoice("OR-1234");
cash.setDescription("Test Payment");
cash.setValue("116000");
cash.setTax("16000");
cash.setTaxBase("100000");
cash.setPhone("3010000001");
cash.setCurrency("COP");
cash.setIp("190.000.000.000");/*This is the client's IP, it is required*/
//Optional
cash.setIco("0");
cash.setUrlResponse("");
cash.setUrlConfirmation("");
cash.setMethodConfirmation("GET");
cash.setExtra1("");
cash.setExtra2("");
cash.setExtra3("");
cash.setCountry("");
cash.setCity("");
cash.setDepto("");
cash.setAddress("");
epayco.createCashTransaction(cash, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
cash.setType("redservi");
cash.setType("gana");
cash.setType("baloto"); //expiration date can not be longer than 30 days
cash.setType("redservi");//expiration date can not be longer than 30 days
cash.setType("puntored");//expiration date can not be longer than 30 days
epayco.getReferencePayment("epayco_reference", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Previous requirements: https://docs.epayco.co/tools/split-payment
Cash cash = new Cash();
//Other customary parameters...
cash.setSplitpayment ("true");
cash.setSplit_app_id ("19520");
cash.setSplit_merchant_id ("17511");
cash.setSplit_type ("02");
cash.setSplit_primary_receiver ("19520");
cash.setSplit_primary_receiver_fee ("10");
Charge charge = new Charge();
//Schema
charge.setTokenCard("2L9R3ey5paBTN8gzr");
charge.setCustomerId("oDFmhNLasGwAhSDWw");
//Required
charge.setDocType("CC");
charge.setDocNumber("1035851980");
charge.setName("John");
charge.setLastName("Doe");
charge.setEmail("[email protected]");
charge.setInvoice("OR-1234");
charge.setDescription("Test Payment");
charge.setValue("116000");
charge.setTax("16000");
charge.setTaxBase("100000");
charge.setCurrency("COP");
charge.setDues("12");
charge.setIp("190.000.000.000");/*This is the client's IP, it is required*/
//Optional
charge.setIco("0");
charge.setUse_default_card_customer(true);/*if the user wants to be charged with the card that the customer currently has as default =true*/
charge.setUrlResponse("");
charge.setUrlConfirmation("");
charge.setMethodConfirmation("GET");
charge.setExtra1("");
charge.setExtra2("");
charge.setExtra3("");
charge.setCity("");
charge.setDepartament("");
charge.setCountry("");
charge.setAddress("");
epayco.createCharge(charge, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
epayco.getReferencePayment("epayco_reference", new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Previous requirements: https://docs.epayco.co/tools/split-payment
Charge charge = new Charge();
//Other customary parameters...
charge.setSplitpayment ("true");
charge.setSplit_app_id ("19520");
charge.setSplit_merchant_id ("17511");
charge.setSplit_type ("02");
charge.setSplit_primary_receiver ("19520");
charge.setSplit_primary_receiver_fee ("10");
Daviplata daviplata = new Daviplata();
daviplata.setDocType("CC");
daviplata.setDocument("1035851980");
daviplata.setName("Jhon");
daviplata.setIndCountry("57");
daviplata.setCity("Bogota");
daviplata.setAddress("av principal");
daviplata.setValue("100");
daviplata.setIp("190.000.000.000");
// optional
daviplata.setLastName("Doe");
daviplata.setEmail("[email protected]");
daviplata.setPhone("3010000001");
daviplata.setCountry("CO");
daviplata.setCurrency("COP");
daviplata.setInvoice("invoices-1");
daviplata.setDescription("");
daviplata.setTax("0");
daviplata.setTaxBase("0");
daviplata.setIco("0");
daviplata.setTestMode("true");
daviplata.setUrlResponse("");
daviplata.setUrlConfirmation("");
daviplata.setMethodConfirmation("POST");
epayco.createDaviplata(daviplata, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
DaviplataConfirm = daviplata = new DaviplataConfirm();
daviplata.setRefPayco("");
daviplata.setIdSessionToken("");
daviplata.setOtp("");
epayco.confirmDaviplata(daviplata, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Safetypay safetypay = new Safetypay();
safetypay.setCash("1");
safetypay.setEndDate("2020-03-15");
safetypay.setDocType("CC");
safetypay.setDocument("1035851980");
safetypay.setName("Jhon");
safetypay.setIndCountry("57");
safetypay.setCity("Bogota");
safetypay.setAddress("Av principal");
safetypay.setValue("100");
safetypay.setLastName("0");
safetypay.setEmail("[email protected]");
safetypay.setPhone("3010000001");
safetypay.setCountry("CO");
safetypay.setIp("190.000.000.000");
safetypay.setCurrency("COP");
safetypay.setInvoice("invoice-android-01");
safetypay.setDescription("");
safetypay.setTax("0");
safetypay.setTaxBase("0");
safetypay.setIco("0");
safetypay.setTestMode("true");
safetypay.setUrlResponse("");
safetypay.setUrlResponsePointer("");
safetypay.setUrlConfirmation("");
safetypay.setMethodConfirmation("GET");
epayco.createSafetypay(safetypay, new EpaycoCallback() {
@Override
public void onSuccess(JSONObject data) throws JSONException {}
@Override
public void onError(Exception error) {}
});
Below are the steps to integrate the Epayco SDK into your Android application, illustrated with screenshots: