Vista General
Cómo usar la Implementación API
Descripción de parámetros
Métodos de pago disponibles
Consultar métodos de pago
Creando una Transacción
Verificar el estado de una transacción
Estados
Vista General
Nuestra implementación API ofrece un alto nivel de personalización, permitiéndote implementar una solución de pagos white label directamente en tu plataforma de una forma rápida y fácil.
Esta implementación está basada en llamadas POST/GET a servicios web, los cuales entregarán una respuesta en formato JSON. La respuesta contendrá la URL a la cual deberás redirigir a tus clientes para comenzar el proceso de pago.
Cómo usar la implementación API
https://www.paygol.com/api/v2/
Descripción de parámetros
Nombre | Descripción |
pg_serviceid | ID de servicio de tu cuenta. |
pg_currency | Tipo de divisa especificado en código alfabético ISO 4217 que quieres usar (Ej: EUR, USD, GBP, MXN, etc.). Ver lista completa de códigos de divisa. |
pg_price | Precio de tu servicio, puedes modificarlo fácilmente. Si tus clientes seleccionan otro país, la divisa será convertida automáticamente. |
pg_signature | A signature is generated by calculating a digest using the HMAC-SHA256 hashing algorithm. The inputs to the hashing algorithm include the secret key and a normalized string that represents the current request. |
pg_custom | (Opcional) Campo flexible, puede ser usado para rastrear usuario, inventario, etc. |
pg_return_url | (Opcional) Tus clientes serán redireccionados aquí una vez que el proceso de pago sea completado (ej: https://www.misitio.com/gracias). |
pg_cancel_url | (Opcional) Tus clientes serán redireccionados aquí si el proceso de pago falla o es cancelado (ej: https://www.misitio.com/cancelado). |
pg_mode | Debe tener el valor «api» para activar el modo de implementación API. |
pg_country | País del pagador, en formato ISO 3166-2 (ej: GB, DE, ES). |
pg_language | (Opcional) Idioma, en formato ISO 639-1 (ej: es, en). Si el idioma proporcionado no está disponible, utiliza inglés por defecto. |
pg_method | Método de pago. Favor de revisar la tabla que se presenta a continuación para una lista de métodos disponibles y sus códigos. Para más información referente a cada método de pago, visita nuestra página de Costos. |
pg_ip | Dirección IP del comprador. |
pg_email | Dirección de correo electrónico del pagador. |
pg_first_name | Nombre del pagador. |
pg_last_name | Apellido del pagador. |
pg_personalid | Número de identificación local del pagador. Sólo es requerido por algunos métodos de pagos. |
pg_phone | (Opcional) Número de teléfono del pagador. |
pg_sub_merchant_id | (Opcional) Código utilizado para distinguir entre diferentes comerciantes que utilizan nuestro servicio a través de su plataforma. |
pg_sub_merchant_url | (Opcional) Sitio web del comercio donde se origina el pago. |
Métodos de pago disponibles
Name | Coverage | Code |
Credit Card | Worldwide | creditcard |
Bitcoin | Worldwide | bitcoin |
Boleto | Brazil | boleto |
Banco do Brasil | Brazil | bancodobrasil |
Bradesco | Brazil | bradesco |
Itau | Brazil | itau |
Santander | Mexico | santander |
Banamex | Mexico | banamex |
OXXO | Mexico | oxxo |
BBVA Bancomer | Mexico | bancomer |
Citibanamex | Mexico | banamex |
Debit card Visa | Mexico | debvisa |
Debit card mastercard | Mexico | debmaster |
Mercadopago card | Mexico | mercadopagocard |
PagoFacil | Argentina | pagofacil |
RapiPago | Argentina | rapipago |
WebPay | Chile | webpay |
Servipag | Chile | servipag |
MACH | Chile | mach |
Multicaja | Chile | multicaja |
PSE | Colombia | pse |
Efecty | Colombia | efecty |
ViaBaloto | Colombia | viabaloto |
Apostar | Colombia | apostar |
Bancolombia | Colombia | bancolombia |
GANA | Colombia | gana |
PuntoRed | Colombia | puntored |
RedServi | Colombia | redservi |
SuRed | Colombia | sured |
SuSuerte | Colombia | susuerte |
PagoEfectivo | Perú | pagoefectivo |
BBVA Continental | Perú | bbva |
BCP | Perú | bcp |
ScotiaBank | Perú | ScotiaBank |
Western Union | Perú | wu |
Banco Pichincha | Ecuador | pichincha |
Banco de Costa Rica | Costa Rica | bcr |
Banco Nacional | Costa Rica | bncr |
Redpagos | Uruguay | redpagos |
Consultar métodos de pago
Esta función devuelve una lista con los métodos de pago válidos para el país solicitado.
<?php use \Paygol\API; use \Paygol\Exceptions\InvalidParameterException; /** * Merchant service ID * * @var int */ $service_id = "123"; /** * Merchant shared secret * * @var string */ $shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31"; try { $pg = new API($service_id, $shared_secret); $payment_methods = $pg->getPaymentMethods("de"); var_dump($payment_methods); } catch (\Exception $e) { die($e->getMessage()); }
Resultado de la petición
{ "methods": { "creditcard": { "code": "creditcard", "name": "Credit Card", "image": "https://www.paygol.com/pay-now/images/method_button_creditcard.png" }, "paysafecard": { "code": "paysafecard", "name": "Paysafecard", "image": "https://www.paygol.com/pay-now/images/method_button_paysafecard.png" }, "bitcoin": { "code": "bitcoin", "name": "Bitcoin", "image": "https://www.paygol.com/pay-now/images/method_button_bitcoin.png" }, "giropay": { "code": "giropay", "name": "Giropay", "image": "https://www.paygol.com/pay-now/images/method_button_giropay.png" } } }
Creando una Transacción
Cada solicitud de pago en la API generará una transacción. Cada Transacción se identifica de forma única por el ID de Transacción. Para obtener detalles sobre una transacción, debe realizar una solicitud GET por separado.
<?php use \Paygol\API; use \Paygol\Models\Payer; use \Paygol\Models\RedirectUrls; /** * Merchant service ID * * @var int */ $service_id = "123"; /** * Merchant shared secret * * @var string */ $shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31"; try { $pg = new API($service_id, $shared_secret); $redirectUrls = new RedirectUrls(); $redirectUrls->setRedirects( "https://www.my-site.com/success", "https://www.my-site.com/failure" ); // optional $pg->setRedirects($redirectUrls); $pg->setCountry('DE'); $pg->setPrice(11.00, 'EUR'); $pg->setPaymentMethod('bitcoin'); $payer = new Payer(); $payer->setFirstName('John'); $payer->setLastName('Doe'); $payer->setEmail('[email protected]'); $payer->setBIC('123423432'); $pg->setPayer($payer); $payment = $pg->createPayment(); var_dump( $payment ); if (!empty($payment['data']['payment_method_url'])) { // do something } } catch (\Exception $e) { die($e->getMessage()); }
La petición anterior devuelve un objeto JSON estructurado de la siguiente manera:
{ "data": { "service_id": "123", "transaction_id": "ABCD-ZZZZ-BIKE-R000", "status": "created", "payment_method": "bitcoin", "amount": "11.00", "currency": "EUR", "payment_method_url": "https://www.paygol.com/api/pay-direct/ABCD-ZZZZ-BIKE-R000", "custom":"internalID=918273645", "customer": { "first_name": "John", "last_name": "Doe", "email": "[email protected]", "phone": "5699334453", "personal_id": "111111111", "country": "CL" }, "redirect_urls": { "success_url": "https://www.my-site.com/success", "cancel_url": "https://www.my-site.com/failure" } }, }
Verificar el estado de una transacción
<?php use \Paygol\API; /** * Merchant service ID * * @var int */ $service_id = "123"; /** * Merchant shared secret * * @var string */ $shared_secret = "7c1a6a24-7943-102d-92f8-29573711ad31"; try { $pg = new API($service_id, $shared_secret); $status = $pg->getPaymentStatus('1234-5678-ABCD-EFGH'); var_dump( $status ); } catch (\Exception $e) { die($e->getMessage()); }
La petición anterior devuelve un objeto JSON estructurado de la siguiente manera:
{ "payment": { "service_id": "123", "transaction_id": "ABCD-ZZZZ-BIKE-R000", "status": "created", "payment_method": "webpay", "amount": "11.00", "currency": "EUR", "created_at": "2019-05-30 22:01:46", "completed_at": null, "custom":"internalID=918273645", "customer": { "first_name": "John", "last_name": "Doe", "email": "[email protected]", "phone": "5699334453", "personal_id": "111111111", "country": "CL" } } }
Estados
Estado | Código | Descripción |
Creado | created | El consumidor nunca completó el proceso de pago, o el pago aún no ha sido registrado por el proveedor del servicio |
Completado | completed | El consumidor completó el proceso de pago con éxito y se han acreditado los fondos a su cuenta |
Fallido | failed | El consumidor intentó pagar pero el proveedor del método de pago no aceptó el pago |
Rechazado | rejected | Paygol ha rechazado el pago, probablemente debido a una notificación de contracargo desde el proveedor del método de pago |