epayco / epayco-php
Epayco API client for PHP
Installs: 132 017
Dependents: 4
Suggesters: 0
Security: 0
Stars: 23
Watchers: 6
Forks: 22
Open Issues: 26
Type:sdk
Requires
- php: >=5.3.0
- rmccue/requests: >=2.0
Requires (Dev)
- phpunit/phpunit: ^4.8.9
This package is auto-updated.
Last update: 2024-12-20 23:36:07 UTC
README
PHP wrapper for Epayco API
Description
API to interact with Epayco https://api.epayco.co/
Dependencias
* PHP 5.3+
Installation
composer require epayco/epayco-php
Add autoload
to composer
require 'vendor/autoload.php';
From GitHub
$ git clone https://github.com/epayco/epayco-php.git
Usage
$epayco = new Epayco\Epayco(array( "apiKey" => "YOU_PUBLIC_API_KEY", "privateKey" => "YOU_PRIVATE_API_KEY", "lenguage" => "ES", "test" => true ));
Create Token
$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 ));
Customers
Create
$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", ));
Retrieve
$customer = $epayco->customer->get("id_client");
List
$customer = $epayco->customer->getList();
Update
$customer = $epayco->customer->update("id_client", array('name' => 'julianc'));
Delete Customer's token
$customer = $epayco->customer->delete(array( "franchise" => "visa", "mask" => "457562******0326", "customer_id"=>"id_client" ));
Add new token default to card existed
$customer = $epayco->customer->addDefaultCard(array( "customer_id"=>"id_client", "token" => "**********zL4gFB", "franchise"=> "american-express", "mask"=> "373118*****7642" ));
Add new token to customer existed
$customer = $epayco->customer->addNewToken(array( "token_card" => "HyjnY3pBSjFtiQBRT", "customer_id"=>"id_client" ));
Plans
Create
$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 ));
Retrieve
$plan = $epayco->plan->get("coursereact");
List
$plan = $epayco->plan->getList();
Remove
$plan = $epayco->plan->remove("coursereact");
Subscriptions
Create
$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" ));
Retrieve
$sub = $epayco->subscriptions->get("id_subscription");
List
$sub = $epayco->subscriptions->getList();
Cancel
$sub = $epayco->subscriptions->cancel("id_subscription");
Pay 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 ));
PSE
Listar bancos
$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
Create
$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" => "", ));
Retrieve
$pse = $epayco->bank->get("ticketId");
Split Payments
Previous requirements: https://docs.epayco.co/tools/split-payment
Split payment
use the following attributes in case you need to do a dispersion with one or multiple providers
$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
Create
$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" => "", ));
list
$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
Retrieve
$cash = $epayco->cash->transaction("id_transaction");
Split Payments
Previous requirements: https://docs.epayco.co/tools/split-payment
Split Payment:
use the following attributes in case you need to do a dispersion with one or multiple providers
$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 ));
Payment
Create
$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 tipo string, si se envía tipo array generara error. "extra1" => "data 1", "extra2" => "data 2", "extra3" => "data 3", "extra4" => "data 4", "extra5" => "data 5" ));
Retrieve
$pay = $epayco->charge->transaction("id_transaction");
Split Payments
Previous requirements: https://docs.epayco.co/tools/split-payment
Split payment:
use the following attributes in case you need to do a dispersion with one or multiple providers
$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 ));
Daviplata
Create
$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" ));
Confirm
$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" ));
Safetypay
Create
$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" ));