Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Para este ejemplo imaginemos que nuestro cliente tiene un portal web desde el cual puede brindar ciertos
servicios a sus clientes, sin embargo, nuestro cliente nos ha pedido que agreguemos una nueva
funcionalidad que le permita hacer pagos en línea. El pago en línea no sólo implica hacer el cobro, si no
que tenemos que afectar a varios subsistemas para que el pago sea aplicado correctamente y el cliente sea
notificado que el pago se realizó exitosamente.
Nuestro cliente ya cuenta con algunos subsistemas con los cuales será necesario interactuar, los
subsistemas que tiene el cliente son:
• BankSystem: Sistema de bancos que le permite realizar los cargos a los clientes por medio de los
datos de la tarjeta de crédito o débito.
• BillingSystem: Sistema de facturación, este sistema tiene el detalle del saldo del cliente.
• CRMSystem: Sistema en donde gestiona la información del cliente.
• EmailSystem: Componente de software que utiliza para mandar correos electrónicos a sus clientes.
Cuando el cliente introduzca los datos de su tarjeta y confirme el pago, el sistema deberá hacer lo
siguiente:
Bins: Corresponde a los primeros dígitos de una tarjeta que identifica de qué proveedor es (AMEX,
VISA, MASTERCARD), así como el banco al que pertenece y si es de crédito o débito.
Otras reglas que se deben de tener en cuenta son que el cliente debe de existir para aplicar el pago y que
el status de éste no sea ‘Baja’, ya que indica que este cliente ya canceló el servicio.
Es por esta razón que nos ha solicitado diseñar una solución que le permita realizar el pago desde el portal
web de una manera más segura y fácil de implementar.
La solución:
Siguientes pasos:
Si nos damos cuenta con unos cuantos parámetros hemos logrado hacer todos los
pasos para aplicar un pago en varios subsistemas sin el funcionamiento interno de
cada uno de éstos. Además, es importante resaltar que si un paso extra es requerido
para aplicar el pago, sólo se tendría que mover la fachada sin afectar a la
aplicación.