saulmoralespa / wompi-api-php
Wompi API PHP SDK
dev-main
2025-03-28 01:31 UTC
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: 3.*
- vlucas/phpdotenv: ^5.6
This package is auto-updated.
Last update: 2025-03-28 01:31:54 UTC
README
Installation
You will need at least PHP 8.1. We match officially supported versions of PHP.
Use composer package manager to install the lastest version of the package:
composer require saulmoralespa/wompi-api-php dev-main
// ... please, add composer autoloader first include_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; //import Client use Saulmoralespa\Wompi\Client; $keyPrivate = "your_keyprivate"; $keyPublic = "your_keypublic"; $keyIntegrety = "your_keyIntegrety"; //instance class Client $wompi = new Client($keyPrivate, $keyPublic, $keyIntegrety); //for sandbox $wompi->sandbox();
Create card token
$data = [ "number" => "4242424242424242", "exp_month" => "06", "exp_year" => "29", "cvc" => "123", "card_holder" => "Pedro Pérez" ]; try { $response = $wompi->cardToken($data); $token = $response[ 'data' ]['id']; } catch(\Exception $exception) { }
Create Nequi token
$data = [ "phone_number" => "3178034732" ]; try { $response = $wompi->nequiToken($data); $token = $response[ 'data' ]['id']; } catch(\Exception $exception) { }
Create Daviplata token
$data = [ "type_document" => "CC", "number_document" => "1122233", "product_number" => "3991111111" ]; try { $response = $this->wompi->daviplataToken($data); $token = $response[ 'data' ]['id']; } catch(\Exception $exception) { }
Create Bancolombia token
$data = [ "type_document" => "CC", "number_document" => "1122233", "product_number" => "3991111111", "redirect_url" => "https://www.bancolombia.com", "type_auth" => "TOKEN" // or TRANSACTION ]; try { $response = $this->wompi->bancolombiaToken($data); $token = $response[ 'data' ]['id']; } catch(\Exception $exception) { }
Get Status Subscription Nequi
try { $token = ""; $response = $this->wompi->getStatusSubscriptionNequi($token); } catch (\Exception $exception) { }
Get Status Subscription Daviplata
try { $token = ""; $response = $this->wompi->getStatusSubscriptionDaviplata($token); } catch (\Exception $exception) { }
Get Status Subscription Bancolombia
try { $token = ""; $response = $this->wompi->getStatusSubscriptionBancolombia($token); } catch (\Exception $exception) { }
Create Source Card
try { $type = "CARD"; //NEQUI, CARD, DAVIPLATA, BANCOLOMBIA_TRANSFER $token = ""; $acceptanceTokens = $this->wompi->getAcceptanceTokens(); $data = [ "customer_email" => "testuser@domain.com", "type" => $type, "token" => $token, "payment_description" => "Descripción de la suscripción creada", "acceptance_token" => $acceptanceTokens[ 'data' ][ "presigned_acceptance" ][ "acceptance_token" ], "accept_personal_auth" => $acceptanceTokens[ 'data' ][ "presigned_personal_data_auth" ][ "acceptance_token" ] ]; $response = $this->wompi->createSource($data); } catch (\Exception $exception) { }
Create Transaction with Card
try { $sourceId = 12344; $data = [ "amount_in_cents" => 4990000, "currency" => "COP", "customer_email" => "example@gmail.com", "payment_method" => [ "installments" => 1 ], "reference" => (string)time(), "payment_source_id" => $sourceId, "recurrent" => true // optional ]; $response = $this->wompi->transaction($data); } catch (\Exception $exception) { }
Create Transaction with Nequi
try { $sourceId = 13345; $data = [ "amount_in_cents" => 6000000, "currency" => "COP", "customer_email" => "example@gmail.com", "reference" => (string)time(), "payment_source_id" => $sourceId ]; $response = $this->wompi->transaction($data); } catch (\Exception $exception) { }
Create Payment Link
try { $data = [ "name" => "Pago de arriendo edificio Lombardía - AP 505", "description" => "Arriendo mensual", // Descripción del pago "single_use" => false, // `false` current caso de que el link de pago pueda recibir múltiples transacciones APROBADAS o `true` si debe dejar de aceptar transacciones después del primer pago APROBADO "collect_shipping" => false, // Si deseas que el cliente inserte su información de envío current el checkout, o no "currency" => "COP", "amount_in_cents" => 500000 ]; $response = $this->wompi->createPaymentLink($data); } catch (\Exception $exception) { }
Get Payment Link
try { $id = "ID_PAYMENT_LINK"; $response = $this->wompi->getPaymentLink($id); } catch (\Exception $exception) { }