Skip to content
This repository has been archived by the owner on Mar 19, 2021. It is now read-only.
Italo edited this page Jun 18, 2019 · 3 revisions

Transbank SDK Wrapper

Tabla de Contenido

Introducción

Esta documentación también explica cómo funciona Webpay, Onepay, y Patpass, por si te sientes perdido en algún momento. Lo único que no explica son las variables, para ello deberás ver la documentación oficial de Transbank.

Consejos

No siempre está de más contar con algunos consejos que pueden hacerte la vida más fácil al usar este paquete, y usar servicios de Transbank en general.

Seguridad

Antes de descargar este paquete, asegúrate de los siguiente en tu servidor:

  • Tienes la última versión estable de PHP 7.

Si no la tienes, puedes estar usando una versión no segura y/o más lenta. Este paquete es incompatible con PHP 5.6 y menores.

  • Tu servidor web opera con HTTPS y un certificado SSL válido.

Al menos, para el ambiente de producción. Transbank requerirá HTTPS para operar desde el 1 de diciembre de 2018.

  • Tus credenciales no son accesibles a través de Internet.

Tus credenciales deberían están guardadas en un lugar del servidor web fuera de los directorios públicos como public_html o www. Además, no deberían estar declaradas como variables de ambiente (global environment variables) fuera de PHP. Si tus credenciales se filtran porque alguien adivinó dónde estaban, o porque el reporte de error las mostró, podrán hacer transacciones fraudulentas en el nombre del comercio.

Verifica la compra

Este paquete no verifica la compra por tí en tu aplicación. Cada vez que el usuario ingrese los productos o servicios que desea comprar, tu sistema debería verificar que el monto de la transacción es correcto.

Generalmente, una buena aproximación es buscar en tu sistema el ID de cada producto, sumar el valor de cada uno de ellos, aplicar los impuestos o descuentos, y luego realizar la transacción. Si el valor no es correcto al que el usuario ve, simplemente devuélvelo a la misma página y muestra el valor correcto.

Si no verificas el monto de cada producto o servicio, tu usuario podría engañar al tu aplicación y poner un precio más bajo sin que te des cuenta.

Tarjetas de crédito de otros países

Ten mucho cuidado con aceptar tarjetas de crédito de otros países. Transbank generalmente las acepta, pero puede que te topes con transacciones fraudulentas - por ejemplo, un cliente usando una tarjeta de crédito robada, quizás sin saberlo.

Cuando el usuario paga con tarjeta de crédito, sabrás si la tarjeta es extranjera o nacional. De ahí en adelante deberás usar tus propios medios para determinar si la transacción parece fraudulenta o no.

Por ejemplo, podrías usar Webpay Plus Diferido para esperar un par de días por si la tarjeta es bloqueada. También puedes esperar para verificar si los productos que van a ser despachados dentro del país fueron comprados con una tarjeta extranjera (o viceversa).

Guarda las transacciones

Por defecto, las transacciones Webpay que se identifican con un token tienen un tiempo de vida de 5 minutos. Cuando se genere una transacción exitosa, guarda los datos que entrega Transbank y asóciala a tu Orden de Compra, Boleta, Factura, etc. como referencia futura para ti y tus clientes.

Esto te será muy útil cuando quieras usar captura diferida o anular una transacción, ya que necesitarás el código de autorización creada para esas transacciones. Para lo último, si no puedes anularla desde Transbank, tú tendrás que correr con tus propios medios para el reembolso.

Rendimiento

Si estás muy corto en recursos, o incluso estás usando un "hosting compartido", te recomendamos instanciar este paquete sólo cuando la petición desde tu sitio lo requiera. Por ejemplo, si un usuario visita la página principal (home, index, portada, etc.), no deberías instanciar ningún servicio de Transbank. Usa la página que recibe la acción de compra para instanciar Transbank Wrapper

Si tienes un framework compatible con Dependency Injection, deberías usar ese mecanismo para registrar y guardar una única instancia de Transbank y sus servicios.

De todas maneras, este paquete no debería ser intensivo en recursos. Como diría alguien, "si quieres optimizar algo, siempre hay cosas más importantes que optimizar", como la base de datos.


2 - Iniciando el SDK