dev-master
9999999-dev https://github.com/epayco/epayco-phpEpayco API client for PHP
MIT
The Requires
- php >=5.3.0
- rmccue/requests >=1.0
The Development Requires
api epayco
Epayco API client for PHP
PHP wrapper for Epayco API, (*1)
API to interact with Epayco https://api.epayco.co/, (*2)
* PHP 5.3+
composer require epayco/epayco-php
Add autoload
to composer, (*3)
require 'vendor/autoload.php';
$ git clone https://github.com/epayco/epayco-php.git
$epayco = new Epayco\Epayco(array( "apiKey" => "YOU_PUBLIC_API_KEY", "privateKey" => "YOU_PRIVATE_API_KEY", "lenguage" => "ES", "test" => true ));
$token = $epayco->token->create(array( "card[number]" => '4575623182290326', "card[exp_year]" => "2017", "card[exp_month]" => "07", "card[cvc]" => "123", "hasCvv" => true //hasCvv: validar codigo de seguridad en la transacciĂłn ));
$customer = $epayco->customer->create(array( "token_card" => $token->id, "name" => "Joe", "last_name" => "Doe", //This parameter is optional "email" => "joe@payco.co", "default" => true, //Optional parameters: These parameters are important when validating the credit card transaction "city" => "Bogota", "address" => "Cr 4 # 55 36", "phone" => "3005234321", "cell_phone"=> "3010000001", ));
$customer = $epayco->customer->get("id_client");
$customer = $epayco->customer->getList([ "page"=>6, "perPage"=>10 ]);
$customer = $epayco->customer->update("id_client", array('name' => 'julianc'));
$customer = $epayco->customer->delete(array( "franchise" => "visa", "mask" => "457562******0326", "customer_id"=>"id_client" ));
$customer = $epayco->customer->addDefaultCard(array( "customer_id"=>"id_client", "token" => "**********zL4gFB", "franchise"=> "american-express", "mask"=> "373118*****7642" ));
$customer = $epayco->customer->addNewToken(array( "token_card" => "HyjnY3pBSjFtiQBRT", "customer_id"=>"id_client" ));
$plan = $epayco->plan->create(array( "id_plan" => "coursereact", "name" => "Course react js", "description" => "Course react and redux", "amount" => 30000, "currency" => "cop", "interval" => "month", "interval_count" => 1, "trial_days" => 30, "ip" => "127.0.0.1", "iva" => 5700, "ico" => 0, "planLink" => "https://github.com/epayco", "greetMessage" => "discounted react and redux course", "linkExpirationDate" => "2025-03-11", "subscriptionLimit"=> 10, #Subscription limit between 0 and 10000 "imgUrl"=>"https://epayco.com/wp-content/uploads/2023/04/logo-blanco.svg", "discountValue"=>5000, #discount value "discountPercentage"=>19, #discount percentage "transactionalLimit"=> 2, #transactional Limit "additionalChargePercentage"=>0.0, #Additional charge percentage limit "firstPaymentAdditionalCost"=>45700 #Installation Cost ));
$plan = $epayco->plan->get("coursereact");
$plan = $epayco->plan->getList();
$plan = $epayco->plan->update("coursereact",array( "name" => "Course react js", "description" => "Course react and redux", "amount" => 35700, "currency" => "cop", "interval" => "month", "interval_count" => 1, "trial_days" => 30, "ip"=> "127.0.0.1", "iva" => 1900, "ico" => 0, "transactionalLimit"=> 3, "additionalChargePercentage"=>0.0, "afterPayment"=>"message after paying" ));
$plan = $epayco->plan->remove("coursereact");
$sub = $epayco->subscriptions->create(array( "id_plan" => "coursereact", "customer" => "id_client", "token_card" => "id_token", "doc_type" => "CC", "doc_number" => "5234567", //Optional parameter: if these parameter it's not send, system get ePayco dashboard's url_confirmation "url_confirmation" => "https://ejemplo.com/confirmacion", "method_confirmation" => "POST" ));
$sub = $epayco->subscriptions->get("id_subscription");
$sub = $epayco->subscriptions->getList();
$sub = $epayco->subscriptions->cancel("id_subscription");
$sub = $epayco->subscriptions->charge(array( "id_plan" => "coursereact", "customer" => "id_client", "token_card" => "id_token", "doc_type" => "CC", "doc_number" => "5234567", "address" => "cr 44 55 66", "phone"=> "2550102", "cell_phone"=> "3010000001", "ip" => "190.000.000.000" // This is the client's IP, it is required ));
$test = true; // opcional, tiene que ser true o false o no enviarse $bancos = $epayco->bank->pseBank($test); //$bancos representa un object con toda la lista de bancos disponibles para transacciones con PSE
$pse = $epayco->bank->create(array( "bank" => "1022", "invoice" => "1472050778", "description" => "Pago pruebas", "value" => "10000", "tax" => "0", "tax_base" => "0", "currency" => "COP", "type_person" => "0", "doc_type" => "CC", "doc_number" => "numero_documento_cliente", "name" => "PRUEBAS", "last_name" => "PAYCO", "email" => "no-responder@payco.co", "country" => "CO", "city" => "Bogota", "cell_phone" => "3010000001", "ip" => "190.000.000.000", // This is the client's IP, it is required "url_response" => "https://ejemplo.com/respuesta.html", "url_confirmation" => "https://ejemplo.com/confirmacion", "metodoconfirmacion" => "GET", //Los parĂĄmetros extras deben ser enviados tipo string, si se envĂa tipo array generara error. "extra1" => "", "extra2" => "", "extra3" => "", "extra4" => "", "extra5" => "", "extra6" => "", "extra7" => "", ));
$pse = $epayco->bank->get("ticketId");
Previous requirements: https://docs.epayco.co/tools/split-payment, (*4)
use the following attributes in case you need to do a dispersion with one or multiple providers, (*5)
$split_pay = $epayco->bank->create(array( //Other customary parameters... "splitpayment" => "true", "split_app_id" => "P_CUST_ID_CLIENTE APPLICATION", "split_merchant_id" => "P_CUST_ID_CLIENTE COMMERCE", "split_type" => "02", "split_primary_receiver" => "P_CUST_ID_CLIENTE APPLICATION", "split_primary_receiver_fee"=>"0", "split_rule"=>'multiple', //sĂ se envĂa este campo el split_receivers se vuelve un campo obligatorio "split_receivers" => json_encode(array( array('id'=>'P_CUST_ID_CLIENTE 1 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10'), array('id'=>'P_CUST_ID_CLIENTE 2 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10') )) // Campo obligatorio sĂ se envĂa el campo split_rule ));
$cash = $epayco->cash->create("efecty", array( "invoice" => "1472050778", "description" => "pay test", "value" => "20000", "tax" => "0", "tax_base" => "0", "currency" => "COP", "type_person" => "0", "doc_type" => "CC", "doc_number" => "numero_documento_cliente", "name" => "testing", "last_name" => "PAYCO", "email" => "test@mailinator.com", "cell_phone" => "3010000001", "country" => "CO", "city" => "Bogota", "end_date" => "data_max_5_days", // yy-mm-dd "ip" => "190.000.000.000", // This is the client's IP, it is required "url_response" => "https://ejemplo.com/respuesta.html", "url_confirmation" => "https://ejemplo.com/confirmacion", "metodoconfirmacion" => "GET", //Los parĂĄmetros extras deben ser enviados tipo string, si se envĂa tipo array generara error. "extra1" => "", "extra2" => "", "extra3" => "", "extra4" => "", "extra5" => "", "extra6" => "", "extra7" => "", ));
$cash = $epayco->cash->create("efecty", array()); $cash = $epayco->cash->create("gana", array()); $cash = $epayco->cash->create("baloto", array());//expiration date can not be longer than 30 days $cash = $epayco->cash->create("redservi", array());//expiration date can not be longer than 30 days $cash = $epayco->cash->create("puntored", array());//expiration date can not be longer than 30 days
$cash = $epayco->cash->transaction("id_transaction");
Previous requirements: https://docs.epayco.co/tools/split-payment, (*6)
use the following attributes in case you need to do a dispersion with one or multiple providers, (*7)
$split_pay = $epayco->cash->create(array( //Other customary parameters... "splitpayment" => "true", "split_app_id" => "P_CUST_ID_CLIENTE APPLICATION", "split_merchant_id" => "P_CUST_ID_CLIENTE COMMERCE", "split_type" => "02", "split_primary_receiver" => "P_CUST_ID_CLIENTE APPLICATION", "split_primary_receiver_fee"=>"0", "split_rule"=>'multiple', // si se envĂa este parĂĄmetro el campo split_receivers se vuelve obligatorio "split_receivers" => json_encode(array( array('id'=>'P_CUST_ID_CLIENTE 1 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10'), array('id'=>'P_CUST_ID_CLIENTE 2 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10') )) // Campo obligatorio sĂ se envĂa split_rule ));
$pay = $epayco->charge->create(array( //required "token_card" => $token->id, "customer_id" => $customer->data->customerId, "doc_type" => "CC", "doc_number" => "numero_documento_cliente", "name" => "John", "last_name" => "Doe", "email" => "example@email.com", "value" => "116000", "currency" => "COP", // optional "bill" => "OR-1234", "description" => "Test Payment", "tax" => "16000", "tax_base" => "100000", "dues" => "12", "address" => "cr 44 55 66", "city" => "MedellĂn", "country" => "CO", "phone"=> "2550102", "cell_phone"=> "3010000001", "ip" => "190.000.000.000", // This is the client's IP, it is required "url_response" => "https://tudominio.com/respuesta.php", "url_confirmation" => "https://tudominio.com/confirmacion.php", "method_confirmation" => "GET", "use_default_card_customer" => true, // if the user wants to be charged with the card that the customer currently has as default = true // Los parĂĄmetros "extras" deben ser enviados como cadenas de texto (string). Aunque se agrupen dentro de un array, cada parĂĄmetro individual debe ser un string. Si se envĂan como otro tipo de datos, como arrays anidados, se generarĂĄ un error. "extras"=> array( "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ) ));
$pay = $epayco->charge->transaction("id_transaction");
Previous requirements: https://docs.epayco.co/tools/split-payment, (*8)
use the following attributes in case you need to do a dispersion with one or multiple providers, (*9)
$split_pay = $epayco->charge->create(array( //Other customary parameters... "splitpayment" => "true", "split_app_id" => "P_CUST_ID_CLIENTE APPLICATION", "split_merchant_id" => "P_CUST_ID_CLIENTE COMMERCE", "split_type" => "02", "split_primary_receiver" => "P_CUST_ID_CLIENTE APPLICATION", "split_primary_receiver_fee"=>"0", "split_rule"=>'multiple', // sĂ se envĂa este parĂĄmetro el campo split_receivers se vuelve obligatorio "split_receivers" => array( array('id'=>'P_CUST_ID_CLIENTE 1 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10'), array('id'=>'P_CUST_ID_CLIENTE 2 RECEIVER','total'=>'58000','iva'=>'8000','base_iva'=>'50000','fee' => '10') ) //Campo obligatorio sĂ se envĂa split_rule ));
$pay = $epayco->daviplata->create(array( "doc_type" => "CC", "document" => "1053814580414720", "name" => "Testing", "last_name" => "PAYCO", "email" => "exmaple@epayco.co", "ind_country" => "CO", "phone" => "314853222200033", "country" => "CO", "city" => "bogota", "address" => "Calle de prueba", "ip" => "189.176.0.1", "currency" => "COP", "description" => "ejemplo de transaccion con daviplata", "value" => "100", "tax" => "0", "tax_base" => "0", "method_confirmation" => "POST", "url_confirmation" => "https://tudominio.com/respuesta.php", "url_response" => "https://tudominio.com/respuesta.php", "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ));
$pay = $epayco->daviplata->confirm(array( "ref_payco" => "45508846", // It is obtained from the create response "id_session_token" => "45081749", // It is obtained from the create response "otp" => "2580" ));
$sp = $epayco->safetypay->create(array( "cash" => "1", "end_date" => "2022-08-05", "doc_type" => "CC", "document" => "123456789", "name" => "Jhon", "last_name" => "doe", "email" => "gerson.vasquez@epayco.com", "ind_country" => "57", "phone" => "3003003434", "country" => "CO", "invoice" => "fac-01", "city" => "N/A", "address" => "N/A", "ip" => "192.168.100.100", "currency" => "COP", "description" => "Thu Jun 17 2021 11:37:01 GMT-0400 (hora de Venezuela)", "value" => 100, "tax" => 0, "ico" => 0, "tax_base" => 0, "method_confirmation" => "POST", "url_confirmation" => "https://tudominio.com/respuesta.php", "url_response" => "https://tudominio.com/respuesta.php", "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ));
Epayco API client for PHP
MIT
api epayco