Download the PHP package sipay/php-sdk without Composer
On this page you can find all versions of the php package sipay/php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sipay/php-sdk
More information about sipay/php-sdk
Files in sipay/php-sdk
Informations about the package php-sdk
1. Introducción
El siguiente proyecto constituye una SDK en PHP, que simplifica la ejecución de llamadas al servicio Ecommerce de Sipay.
2. Quickstart
Con el siguiente ejemplo podrás, en pocos pasos, instalar la SDK y efectuar una venta desde una terminal. Antes de hacer el quickstart, debemos crear el archivo de configuraciones, tomando como referencia el indicado en la sección de configuración
3. Instalación
3.1 Pre-requisitos
PHP >= 7.x
3.2 Pasos
Podemos instalarlo de forma manual (Ver "Extracción de código") o utilizando Composer (Ver "Composer").
3.2.1 Extracción de código
Este paso se omite si se utiliza la instalación via composer.
Entonces establecemos la variable "path_autoload" a "
3.2.2 Composer
Este paso se omite si se utiliza el método manual.
Entonces establecemos la variable "path_autoload" a "vendor/autoload.php":
4. Configuración
Una vez que se ha instalado la SDK, se deben actualizar los parámetros de configuración asociados a:
- Sistema de trazas.
- Credenciales de acceso (Se gestionan con el departamento de integraciones de Sipay).
- Entorno y versión de la API.
-
Tiempo máximo de espera de respuestas (Timeout).
4.1. Desde un fichero
Un ejemplo de configuraciones se muestra a continuación:
4.2. Desde una variable
En algunos casos, pudiera interesarnos cargar la configuración desde una variable y no desde un archivo. Este sería un ejemplo:
5. Documentación extendida
A través de peticiones a Sipay mediante Ecommerce, se pueden realizar operativas de:
- Objetos necesarios para las operativas de e-commerce (sección 5.1).
- Importe (sección 5.1.1).
- Tarjeta (sección 5.1.2).
- Tarjeta tokenizada (sección 5.1.3).
- Tarjeta capturada por FastPay (sección 5.1.4).
- Operativa de e-commerce (sección 5.2).
- Autenticación (sección 5.2.1).
- Confirmación (sección 5.2.2).
- Cancelaciones (sección 5.2.3).
- Devoluciones (sección 5.2.4).
- Búsquedas de operaciones o querys (sección 5.2.5).
- Tokenización* de tarjetas (sección 5.2.6).
- Búsqueda de tarjetas tokenizadas (sección 5.2.7).
- Dar de baja una tarjeta tokenizada (sección 5.2.8).
* Tokenización: Es un proceso por el cual el PAN (Primary Account Number – Número Primario de Cuenta) de la tarjeta se sustituye por un valor llamado token. Esta funcionalidad permite que Sipay guarde los datos de la tarjeta del cliente, para agilizar el proceso de pagos y evitar que se deba introducir, cada vez, los datos de tarjeta, en pagos repetitivos. Sipay realiza el almacenamiento de los datos de forma segura, cumpliendo con las normativas PCI.
Para llevar a cabo de forma correcta las operativas Ecommerce, se requiere el dominio de los objetos Amount
, Card
, StoredCard
y FastPay
, los cuales identifican el importe y el método de pago a utilizar.
5.1. Objetos necesarios en las operativas de Ecommerce
5.1.1. Amount(amount,currency)
Definición
Este objeto representa una cantidad monetaria, por tanto esta cantidad debe ser mayor que cero (0). Para instanciar un objeto de este tipo se necesita una cantidad (amount) y una moneda (currency) en formato ISO4217 (https://en.wikipedia.org/wiki/ISO_4217). La cantidad se puede especificar de tres formas:
- Con un
string
con la cantidad estandarizada y con el caracter punto (.
) como separador de decimales (Ejemplo:"1.56"
), o - Con un
string
que represente la cantidad en la unidad básica e indivisible de la moneda (Ejemplo:"156"
), o - Con un
int
que represente la cantidad en la unidad básica e indivisible de la moneda, es decir, la moneda Euro sería el céntimo (Ejemplo:156
).
Parámetros
amount
: [obligatorio] Es la cantidad de dinero a procesar. Se puede representar con unstring
o unint
. Supongamos que queremos procesar 1.56 €, la cantidad (1.56) como unstring
sería'1.56'
ó'156'
; como unint
sería156
.currency
: [obligatorio] Es unstring
que representa el código de la moneda (ISO4217).
Atributos
amount
:int
que representa la cantidad de procesamiento. Será este tipo de dato, independientemente de si se ha instanciado con unstring
previamente (protected
).currency
:string
que representa el código de la moneda (ISO4217) (protected
).
Métodos
set(amount, currency)
: Asigna un importe y moneda del tipo indicado en la sección de parámetros.get_amount()
: Devuelve el atributo amount.get_currency()
: Devuelve el atributo currency.get_array()
: Devuelve el amount y el currency como un array asociativo.
Ejemplo
Nota: En el caso de iniciarlo con un string
que incluya un punto es imprescindible que tenga el número de decimales que indica el estándar ISO4217. Ejemplo: para la moneda euro (€) que establece dos decimales, es correcto indicar un amount de "1.40"
pero no es correcto "1.4"
.
5.1.2. Card(card_number, year, month, [cvv])
Definición
Este objeto representa una tarjeta que se puede utilizar en las diferentes operativas de Ecommerce. Para obtener una instancia de Card
, los parámetros se indican a continuación.
Parámetros
card_number
: [obligatorio] Es unstring
con longitud entre 14 y 19 dígitos. Representa el número de la tarjeta.year
: [obligatorio] Es unint
de 4 dígitos que indica el año de caducidad de la tarjeta.month
: [obligatorio] Es unint
de 2 dígitos con valores entre 1 y 12 que correspondiente al mes de caducidad de la tarjeta.cvv
: [opcional] Es unint
de 3 a 4 dígitos con el valor del CVV de reverso de la tarjeta.
Atributos
card_number
: Es el número de la tarjeta en una instancia deCard
. Es unstring
con longitud entre 14 y 19 dígitos (protected
).year
: Es al año de caducidad de la tarjeta en una instancia deCard
. Es unint
de 4 dígitos (protected
).month
: Es el mes de caducidad de la tarjeta en una instancia deCard
. Es unint
de 2 dígitos entre 1 y 12 (protected
).cvv
: Es unint
de 3 a 4 dígitos con el valor del CVV de reverso de la tarjeta (protected
).
Métodos
set_card_number(card_number)
: Permite asignar el PAN de la tarjetaset_expiration_date(year, month)
: Permite asignar la fecha de caducidad de la tarjetaget_year()
: Devuelve el atributo año.get_month()
: Devuelve el atributo mes.get_card_number()
: Devuelve el atributo card_number.to_json()
: Devuelve todos los atributos del objeto.
Ejemplo
5.1.3. StoredCard(token)
Definición
Este objeto representa una tarjeta almacenada en Sipay que puede utilizarse en operativas Ecommerce. Para obtener una instancia de StoredCard
se requieren los siguiente parámetros.
Parámetros
token
: [obligatorio] Es unstring
de longitud entre 6 y 128 caracteres de tipo alfanuméricos y guiones (protected
).
Atributos
token
:string
de longitud entre 6 y 128 caracteres.
Métoddos
set_token
: Permite asignar el token.get_token
: Devuelve el token.
Ejemplo
5.1.4. FastPay(token)
Definición
Este objeto representa una tarjeta obtenida mediante el método de pago FastPay. Se utiliza en los consecutivos pasos de la operativas de pago de este método.
Parámetros
token
: [obligatorio] Es unstring
de longitud 32 con caracteres de tipo hexadecimal.
Atributos
token
:string
de longitud 32 caracteres de tipo hexadecimal (protected
).
Métoddos
set_token
: Permite asignar el token.get_token
: Devuelve el token.
Ejemplo
Ejemplo:
5.2. Operativas de Ecommerce - Ecommerce($config_file)
ó Ecommerce($config_var)
Descripción
Las operativas de Ecommerce forman parte de los métodos definidos en la clase Ecommerce
. Para instanciar un objeto de este tipo se requiere el archivo de configuración.
Ejemplo
Parámetros
config_file
[obligatorio] Es unstring
con la ruta del archivo de configuraciones.
Atributos
Los siguientes atributos (protected
) se asignan en el archivo de configuraciones. Sin embargo, son accesibles en instancias de Ecommerce
. Se sugiere que sean utilizados en modo de consulta.
key
: corresponde al key de las credenciales.secret
: corresponde al secret de las credenciales.resource
: corresponde al resource de las credenciales.environment
: corresponde al entorno al cual se está apuntando.mode
: corresponde el modo de cifrado de las peticiones.version
: corresponde a la versión de la API a la cual se apunta.timeout
: Corresponde al tiempo de espera máximo en recibir respuesta contando desde el momento en que se envía la petición.
Métodos
Todos los atributos indicados tienen sus métodos de asignación con set_[nombre_del_atributo]
y sus métodos de consulta con get_[nombre_del_atributo]
.
authentication(parameters)
: Permite hacer peticiones de autenticación y autorización con los parámetros de PSD2 (ver sección 5.2.1).confirm(parameters)
: Es el paso de confirmación de captura de fondos que se desencadena después de authentication (ver sección 5.2.2).cancellation(parameters)
: Permite enviar peticiones de cancelaciones (ver sección 5.2.3).refund(parameters)
: Permite hacer devoluciones (ver sección 5.2.4).query(parameters)
: Permite hacer peticiones de búsqueda de operaciones (ver sección 5.2.5).register(parameters)
: Permite tokenizar una tarjeta (ver sección 5.2.6).card(parameters)
: Se utiliza para buscar una tarjeta que fue tokenizada (ver sección 5.2.7).unregister(parameters)
: Se utiliza para dar de baja una tarjeta tokenizada (ver sección 5.2.8).
5.2.1 authentication(Paymethods\Paymethod $paymethod, Amount $amount, array $array_options = array())
Definición
Este método de Ecommerce
permite enviar una petición de autenticación a Sipay.
Parámetros
paymethod
:[obligatorio] Corresponde a una instanciaCard
,StoredCard
oFastPay
que indica el método de pago a utilizar.amount
: [obligatorio] Corresponde a una instancia deAmount
que representa el importe de la operación. Si utilizamos el importe 0, automáticamente se intentará realizar una operación de AVS.array_options
:order
: [opcional] Es unstring
que representa el ticket de la operación.reconciliation
: [opcional] Es unstring
que identifica la conciliación bancaria.custom_01
: [opcional] Es unstring
que representa un campo personalizable.custom_02
: [opcional] Es unstring
que representa un campo personalizable.token
: [opcional] Es unstring
que representa un token a almacenar. Se utiliza cuando el método de pago es de tipoCard
oFpay
, y se desea asignar un token específico a la tarjeta utilizada.sca_exemptions
: [opcional] Es unstring
que representa una de las exenciones disponibles de PSD2: LWV, TRA, COR, MIT.reason
: [opcional] Es unstring
que representa la razón de negocio por la que se ha realizado una operación con exención MIT: R, I, C, D, E, H, M, N.sca_preference
: [opcional] Es una lista de exenciones que serán aplicadas en orden de prioridad.previously_authenticated
: [opcional] En caso de estar presente el campo, deberá llevar el valor de 'true' para indicar que queremos realizar una operación de autorización futura con la autenticación del presente.
Salida
El método authentication
devuelve un objeto Authentication
.
Ejemplo
- Autenticación con tarjeta
- Autorización con FastPay
5.2.2 confirm(request_id)
Definición
Este metódo permite realizar una captura de fondos (autorización) después de realizar el proceso de autenticación.
Parámetros
request_id
:[obligatorio] Es el identificador de petición que fue retornado en la operación de autenticación. Se encuentra en el atributo request_id dentro del objetivo devuelto en la autenticación.Salida
El método
confirm
devuelve un objetoConfirm
.
Ejemplo
- Autenticación con tarjeta
5.2.3 cancellation(string $transaction_id)
Definición
Este método permite enviar una petición de cancelación a Sipay
Parámetros
transaction_id
: [obligatorio] Es unstring
con el identificador de la transacción.
Salida
El método cancellation
devuelve un objeto Cancellation
.
Ejemplo
5.2.4 refund($identificator, Amount $amount, array $array_options = array())
Definición
Este método Ecommerce
permite enviar una petición de devolución a Sipay.
Parámetros
identificator
: [obligatorio] Es una instancia del método de pago (Card
,StoredCard
oFastPay
) o, unstring
que representa el identificador de transacción.amount
: [obligatorio] Corresponde a una instancia deAmount
que representa el importe de la operación.array_options
:order
: [opcional] Es unstring
que representa el ticket de la operación.reconciliation
: [opcional] Es unstring
que identifica la conciliación bancaria.custom_01
: [opcional] Es unstring
que representa un campo personalizable.custom_02
: [opcional] Es unstring
que representa un campo personalizable.token
: [opcional] Es unstring
que representa un token a almacenar. Se utiliza cuando el método de pago es de tipoCard
oFpay
, y se desea asignar un token específico a la tarjeta utilizada.
Salida
El método refund
devuelve un objeto Refund
.
Ejemplo
- Devolución con tarjeta
- Devolución con transaction_id
5.2.5 query(array $query)
Definición
Este método Ecommerce
permite enviar una petición a Sipay para buscar de una operación concreta.
Parámetros
El método puede tener los siguientes parámetros:
order
: [opcional]string
que representa el ticket de la operación.transaction_id
: [opcional]string
que representa el identificador de la transacción.
En caso de no enviar ninguno, se devuelven todas las transacciones del cliente.
Salida
El método query
devuelve un objeto Query
.
Ejemplo
- Búsqueda de transacciones
5.2.6 register(Paymethods\Paymethod $card, string $token)
Definición
Este método Ecommerce
permite enviar una petición de tokenización de tarjeta a Sipay.
Parámetros
card
: [obligatorio] Instancia de tipoCard
con la tarjeta a tokenizar o tipoFastPay
.token
:[obligatorio]string
que representa el token que se asociará a la tarjeta.
Salida
El método `register` devuelve un objeto `Register`.
Ejemplo
- Registro de tarjeta
5.2.7 card(string $token)
Definición
Este método Ecommerce
permite enviar una petición a Sipay con la finalidad de obtener información de una tarjeta que está tokenizada.
Parámetros
token
:[obligatorio]string
que representa el token asociado a la tarjeta.
Salida
El método card
devuelve un objeto Card
del apartado Responses.
Ejemplo
- Búsqueda de tarjeta
5.2.8 unregister(string $token)
Definición
Este método Ecommerce
permite enviar una petición a Sipay con la finalidad de dar de baja una tarjeta tokenizada.
Parámetros
token
:[obligatorio]string
que representa el token asociado a la tarjeta.
Salida
El método unregister
devuelve un objeto Unregister
.
Ejemplo
- Borrar una tarjeta del registro
5.3 Responses
Todos los objetos obtenidos como respuestas de operativas Ecommerce
tienen los siguientes atributos.
5.3.1 Atributos comunes
type
: Es unenum[string]
que identifica el tipo de respuesta:- success
- warning
- error
code
: Es unint
con el código identificador del resultado. Es un código orientativo y no está ligado estrictamente con motivo de la respuesta, es decir, el código no identifica unívocamente la respuesta.- si
code
es0
, implica que el resultado es un success - si
code
es mayor a0
, implica que el resultado es un warning - si
code
es menor a0
, implica que el resultado es un error
- si
detail
: Es unstring
con el código alfanumérico separado con guiones bajos y sin mayúsculas que identifica unívocamente la respuesta. Útil para la gestión de los diferentes casos de uso de una operación.description
: Es unstring
con la descripción literal del mensaje de respuesta.uuid
: Es unstring
con el identificador único de la petición, imprescindible para la trazabilidad.request_id
: Es unstring
utilizado en la finalización de algunas operaciones. Se indicarán aquellas en las que sea necesario.request
: Es undictionary
que contiene los datos de la petición que se ha hecho al servidor (protected
).response
: Es undictionary
que contiene los datos 'raw' de respuesta (protected
).
5.3.2 Authorization
Este objeto añade los siguientes atributos:
amount
: Objeto de de tipoAmount
con el importe de la operación.order
: Es unstring
con el ticket de la operación.card_trade
: Es unstring
que describe el emisor de la tarjeta.card_type
: Es unstring
con el tipo de la tarjeta.masked_card
: Es unstring
con el número de la tarjeta enmascarado.reconciliation
: Es unstring
identificador para la conciliación bancaria (p37).transaction_id
: Es unstring
identificador de la transacción.aproval
: Es unstring
con el código de aprobación de la entidad.authorizator
: Es unstring
con la entidad autorizadora de la operación.
5.3.3 Refund
Este objeto añade los atributos:
amount
Objeto de tipoAmount
con el importe de la operación.order
: Es unstring
con el ticket de la operación.card_trade
: Es unstring
con el emisor de la tarjeta.card_type
: Es unstring
con el tipo de la tarjeta.masked_card
: Es unstring
con con el número de la tarjeta enmascarado.reconciliation
: Es unstring
identificador para la conciliación bancaria (p37).transaction_id
: Es unstring
identificador de la transacción.aproval
: Es unstring
con el código de aprobación de la entidad.authorizator
: Es unstring
con la entidad autorizadora de la operación.
5.3.4 Query
Este objeto añade una lista de transacciones, cada objeto transacción tiene:
Transaction
description
: Es unstring
con descripción literal del estado de la operación.date
: Es undatetime
con fecha y hora de la operación.order
: Es unstring
con el ticket de la operación.masked_card
: Es unstring
con el número de la tarjeta enmascarado.operation_name
: Es unstring
con el nombre literal del tipo de operación.operation
: Es unstring
identificador del tipo de operación.transaction_id
: Es unstring
identificador de la transacción.status
: Es unstring
identificador del estado de la operación.amount
: Es un objetoAmount
con el importe de la operación.authorization_id
: Es unstring
identificador de la entidad autorizadora.channel_name
: Es unstring
con el nombre literal del canal de pago.channel
: Es unstring
identificador del canal de pago.method
: Es unstring
identificador del método de pago.method_name
: Es unstring
identificador literal del método de pago.
5.3.5 Register
Este objeto añade lo atributos:
card_mask
: Es unstring
con el número de la tarjeta enmascarado.expired_at
: Es undate
con fecha de la expiración.token
: Es unstring
identificador de la tarjeta.card
: Es un objetoStoredCard
con la tarjeta asociada.
5.3.6 Cancellation
Este objeto no añade nada a lo indicado en los atributos comunes.
5.3.7 Card
card_mask
: Es unstring
con el número de la tarjeta enmascarado.expired_at
: Parámetro de tipodate
con la fecha de expiración de la tarjeta.token
: Es unstring
identificador de la tarjeta.card
: Objeto de tipoStoredCard
con los datos asociados a la tarjeta devuelta.
5.3.8 Unregister
Este objeto no añade nada a lo descrito en los atributos comunes.
5.3.9 Card
cvv
: Es unstring
identificador de la tarjeta.