El PixelPay SDK permite simplificar tus integraciones de PixelPay en distintos tipos de entornos.
El SDK contiene objetos y funciones que brindan una forma sencilla para enviar los datos de cobro y evita el redireccionamiento al sitio web del proveedor al momento de completar el proceso de pago.
Esta nueva versión del PixelPay SDK es una gran evolución a las versiones anteriores, incluye múltiples mejoras y contiene todas las API
s integradas de manera estandarizada en un solo paquete.
Como buena práctica, todas las funciones del SDK de PixelPay excepto el método withAuthenticationRequest
deben de ser llamadas desde el backend de la integración, enviando los datos requeridos desde el frontend de ser necesario.
Una de las mejoras del SDK es que sigue un estándar definido. Incluye distintos modelos, respuestas, entidades, excepciones, servicios y demás, estructurados de manera que brinden una experiencia sin fricción para los desarrolladores.
Es muy importante conocer todas las utilidades y clases predefinidas incluidas en el SDK para poder explotar su potencial al máximo.
Los modelos (categorizados como models
dentro del SDK) brindan clases predefinidas para facilitar la interacción con entidades de PixelPay, como ser tarjetas de crédito, órdenes, facturación, direcciones de entrega, etc.
Estos incluyen todas las definiciones necesarias para cubrir la mayoría de tipos de integración con PixelPay.
Dentro de los modelos podemos encontrar:
Settings
: configuración del SDKEnvironment
: valores de distintos tipos de entornosBilling
: datos de facturaciónCard
: tarjetas de crédito / débitoItem
: todo tipo de artículos a la ventaOrder
: datos de pedidosLos modelos son necesarios, ya que son los componentes que fabrican las peticiones.
Las peticiones (categorizados como requests
dentro del SDK) son directrices que se encargan de tomar los datos requeridos de los modelos y convertirlos en una solicitud adecuada. La petición luego es enviada al sistema PixelPay. Por ejemplo: convertir nuestro pedido con varios artículos incluidos al formato JSON adecuado.
Dentro de la categoría de peticiones se incluyen las directrices necesarias para realizar los diferentes tipos de pagos:
SaleTransaction
: crea la solicitud para realizar una venta directa.AuthTransaction
: crea la solicitud para autorizar una venta. Una vez autorizada la venta, el comercio puede solicitar la captura de los fondos autorizados por medio del SDK.CaptureTransaction
: crea la solicitud para capturar los fondos de una venta autorizada.VoidTransaction
: crea la solicitud para anular una venta.StatusTransaction
: crea la solicitud para obtener el estado de una transacción.CardTokenization
: crea la solicitud para tokenizar una tarjeta de crédito / débito.Para utilizar los servicios es necesario enviar la información a través de peticiones.
Los servicios (categorizados como services
dentro del SDK) son los responsables de efectuar la comunicación con los servicios de PixelPay. Al utilizar los servicios, facilmente se construye la solicitud, que luego es enviada a los servidores.
Dentro de los servicios están:
Transaction
: utilizando este servicio se pueden crear, autorizar, capturar, anular u obtener el estado de todo tipo de ventas dentro del comercioTokenization
: utilizando este servicio se pueden tokenizar, actualizar, eliminar, u obtener distintas tarjetas de crédito / débito dentro del comercioLos servicios son muy útiles ya que generan las solicitudes a la API de PixelPay.
Las respuestas y entidades proveen información adicional que puede ser de mucha importancia para los desarrolladores que utilicen el SDK, como ser documentación adicional en la forma de IntelliSense (información de parámetros de funciones, variables y módulos del SDK).
Dentro de las respuestas (categorizados como responses
dentro del SDK) existen todos los distintos tipos de respuestas que se puede obtener al momento de hacer una consulta a los servicios de PixelPay.
Utilizando los tipos de respuestas, se puede determinar si una transacción realizada es exitosa o no. En caso de no ser exitosa, se puede capturar que tipo de error se generó. Todos los tipos de respuestas son equivalentes a uno o varios códigos de respuesta HTTP.
Tipo de respuesta | Códigos HTTP | Descripción |
---|---|---|
SuccessResponse |
200 |
Respuesta exitosa Posiblemente contenga información adicional en data . |
ErrorResponse |
400 |
Error general por parte del cliente |
NoAccessResponse |
401 , 403 |
Error de permisos y/o accesos, el cliente no tiene acceso a este recurso. Puede que no haya enviado las credenciales necesarias o sus credenciales ya hayan expirado |
PaymentDeclinedResponse |
402 |
Error de transacción del pago declinada por el servicio |
NotFoundResponse |
404 , 405 , 406 |
No se encontró el recurso |
TimeoutResponse |
408 |
Se acabó el tiempo de respuesta del servidor |
PreconditionalResponse |
412 , 418 |
Error donde las condiciones enviadas por el cliente no concuerdan con las condiciones del servicio |
InputErrorResponse |
422 |
Error de entidad enviada por el cliente donde falla la validación de un campo enviado |
NetworkFailureResponse |
500 |
Falla de comunicación con el servicio |
FailureResponse |
>500 o falla de red |
Falla del servicio |
Las entidades (categorizadas como entities
dentro del SDK) proveen aún más información sobre el tipo de respuesta de parte de los servicios.
Todas las respuestas (por ejemplo: en formato JSON) tienen una estructura definida. Por ejemplo, muchas de las transacciones exitosas envían como respuesta una propiedad data
. Las entidades ayudan a, dependiendo del tipo de servicio que se utiliza, definir en más detalle que exactamente contiene este componente.
El tipo de respuestas que se reciben al interactuar con el servicio de PixelPay tiene un formato definido, dependiendo del tipo de respuesta que se reciba del servicio. Los tipos de respuesta están definidos aquí.
Llave | Tipo |
Descripción |
---|---|---|
success |
boolean |
Define si la solicitud se ejecutó con éxito |
message |
string |
Mensaje descriptor de la respuesta enviada |
data |
object<string, any> |
Data devuelta por el servicio, este depende de que servicio se solicita. |
errors |
object<string, string[]> |
En caso de que haya errores (por ejemplo, valores inválidos en un formulario), se envían todos los campos que hayan causado el error junto con un mensaje descriptivo del error por cada campo. |
Ejemplo de respuesta exitosa
{
"success": true,
"message": "Información obtenida con exito",
"data": {
"status": "active",
"mask": "411111******1111",
"network": "visa",
"type": "CREDIT",
"bin": "411111",
"last": "1111",
"hash": "33fa2660f8e7c3556b72a3da1f375d535c3f00250b4af18777f950a40c7fcc1489d7c7879a73366f39ef23dfd210b6d74d98d1ec2db63b1797565a38e76bd239",
"address": "Calle 1",
"country": "HN",
"state": "HN-CR",
"city": "San Pedro Sula",
"phone": "999-999999999",
"token": "T-25ae86aa-d4f4-438f-8806-019575782fa0"
}
}
Ejemplo de respuesta con errores
{
"success": false,
"message": "El campo number es obligatorio.",
"errors": {
"number": ["El campo number es obligatorio."],
"cvv2": ["El campo cvv2 es obligatorio."],
"expire_month": ["El campo expire month es obligatorio."],
"expire_year": ["El campo expire year es obligatorio."],
"cardholder": ["El campo cardholder es obligatorio."],
"address": ["El campo dirección es obligatorio."],
"country": ["El campo country es obligatorio."],
"state": ["El campo departamento es obligatorio."],
"city": ["El campo ciudad es obligatorio."],
"phone": ["El campo teléfono es obligatorio."]
}
}
Puedes instalar el PixelPay SDK para distintas plataformas:
* El SDK está en proceso de desarrollo
Para utilizar PixelPay SDK es necesario hacer una configuración inicial con datos del comercio, como vemos a continuacion.
Los datos necesarios del comercio son:
Al utilizar el SDK se pueden configurar diferentes tipos de entornos, principalmente producción
y sandbox
. El ambiente sandbox
es útil para hacer pruebas de la integración con PixelPay, una vez hechas las pruebas y verificado que la integración funciona, se puede cambiar el ambiente a producción
.
Tipos de Ambientes:
LIVE
(producción)SANDBOX
Para utilizar el SDK, es necesario extraer el dominio de la ruta (endpoint
) y ciertas llaves asociadas con el comercio de la plataforma de PixelPay. La documentacion muestra como extraer las llaves.