Place To Pay php-sdk-pse
Una simple libreria para conectarse al webservice PSE suministrado por Place To Pay, (*1)
Requerimientos
Puedes elegir Memcached o APCu para almacenar los datos en caché., (*2)
Si elige APCu Tenga en cuenta que hay varios casos en los que la caché APCu no persiste y todos los valores establecidos se pierden después de que existe el proceso PHP. P.ej. CLI de PHP: las sucesivas ejecuciones de CLI de la misma secuencia de comandos encontrarán la caché APCu vacía., (*3)
En proximas versiones se adicionan mas sistemas de caché, (*4)
- PHP >= 5.6.0
- Memcached >= 1.4.25
Instalación
Se Instala vía composer, (*5)
composer require place-to-pay/php-sdk-pse
Configuración
Al instanciar el objeto PlaceToPay\SDKPSE\SDKPSE debe pasar por parametro
un array con la siguiente configuración:, (*6)
$config = array(
"login" => "",
"tran_key" => "",
"cache" => array(
"type" => "",
"memcached" => array(
"host" => "",
"port" => ""
)
)
)
$obj = new SDKPSE($config);
1. Datos suministrados por Place To Pay
-
login: Login para la autenticación
-
tran_key: Llave transaccional
1. Datos sistema de caché
-
type: Nombre del sistema de caché a utilizar, puede ser memcached o apcu
De acuerdo al sistema de caché indicado debe realizar su respectiva configuración, (*7)
1.1. Configuración sistema memcached:
-
host: Dirección del servidor
-
port: Puerto del servidor
Versión
v1.0.0, (*8)
Licencia
MIT License, (*9)
Documentación
Excepciones
Los metodos pueden generar excepciones de tipo \Exception, (*10)
Ejemplos:
Cuando no se envian los parametros de configuracion, (*11)
Cuando no se puede agregar el servidor memcached, (*12)
Cuando el tipo o longitud del atributo del objeto es incorrecto, (*13)
Cuando no se puede consumir el webservice PSE, (*14)
Métodos disponibles
A continuación se describen las operaciones (métodos) que la libreria brinda, (*15)
Los metodos se encuentran en el namespace PlaceToPay\SDKPSE\SDKPSE, (*16)
getBankList()
Obtiene la lista de los bancos disponibles, (*17)
La petición al webservice se realiza una vez al día para almacenar los datos en la cache, (*18)
Valor devuelto:
Devuelve un array con objetos Bank o false cuando no existen resultados, (*19)
createTransaction()
Solicita la creacion de una transacción, (*20)
Parametros:, (*21)
Valor devuelto:
Devuelve la creacion de la transacción PSETransactionResponse o false cuando no existen resultados, (*22)
createTransactionMultiCredit()
Solicita la creacion de una transacción con dispersión de fondos, (*23)
Parametros:, (*24)
Valor devuelto:
Devuelve la creacion de la transacción PSETransactionResponse o false cuando no existen resultados, (*25)
Obtiene la información de una transacción, (*26)
Parametros:, (*27)
| Nombre | Tipo | Descripción |
| --- | --- | --- |
| $transactionID | int | Identificador único de la transacción, equivale al retornado en la
* creacion de la transaccion |, (*28)
Valor devuelto:
Devuelve la informacion de la transacción TransactionInformation o false cuando no existen resultados, (*29)
Tipos de datos o estructuras
En este apartado se describen cada una de las estructuras de datos usadas por los métodos, (*30)
Estas clases se encuentran en el namespace PlaceToPay\SDKPSE\Structures, (*31)
Attribute
Estructura para almacenar información extendida, (*32)
| Nombre |
Tipo |
Long |
Descripción |
| name |
string |
30 |
Código para referenciar el atributo |
| value |
string |
128 |
Valor que asume el atributo |
Person
Estructura para reflejar la información de una persona involucrada en una transacción, (*33)
| Nombre |
Tipo |
Long |
Descripción |
| document |
string |
12 |
Número de identificación de la persona |
| documentType |
string |
3 |
Tipo de documento de identificación de la persona: br/ CC = Cédula de ciudanía colombiana br/ CE = Cédula de extranjería br/ TI = Tarjeta de identidad br/ PPN = Pasaporte br/ NIT = Número de identificación tributaria br/ SSN = Social Security Number |
| firstName |
string |
60 |
Nombres |
| lastName |
string |
60 |
Apellidos |
| company |
string |
60 |
Nombre de la compañía en la cual labora o representa |
| emailAddress |
string |
80 |
Correo electrónico |
| address |
string |
100 |
Dirección postal completa |
| city |
string |
50 |
Nombre de la ciudad coincidente con la dirección |
| province |
string |
50 |
Nombre de la provincia o departamento coincidente con la dirección |
| country |
string |
2 |
Código internacional del país que aplica a la dirección física acorde a ISO 3166-1, mayúscula sostenida |
| phone |
string |
30 |
Número de telefonía fija |
| mobile |
string |
30 |
Número de telefonía móvil o celular |
Bank
Estructura para reflejar la información de una entidad bancaria, (*34)
| Nombre |
Tipo |
Long |
Descripción |
| bankCode |
string |
4 |
Código de la entidad financiera |
| bankName |
string |
60 |
Nombre de la entidad financiera |
CreditConcept
Estructura que representa el concepto del crédito a favor de un tercero, (*35)
| Nombre |
Tipo |
Long |
Descripción |
| entityCode |
string |
12 |
Código de la entidad del tercero para dispersión |
| serviceCode |
string |
12 |
Código del servicio del tercero |
| amountValue |
float |
Valor total a recaudar a favor de la entidad |
| taxValue |
float |
Discriminación del impuesto aplicado a favor de la entidad |
| description |
string |
60 |
Descripción el concepto cobrado |
PSETransactionRequest
Estructura que representa una solicitud de transacción con débitos a cuenta PSE, (*36)
| Nombre |
Tipo |
Long |
Descripción |
| bankCode |
string |
4 |
Código de la entidad financiera con la cual realizar la transacción |
| bankInterface |
string |
1 |
Tipo de interfaz del banco a desplegar [0 = PERSONAS, 1 = EMPRESAS] |
| returnURL |
string |
255 |
URL de retorno especificada para la entidad financiera |
| reference |
string |
32 |
Referencia única de pago |
| descriptiop |
string |
255 |
Descripción del pago |
| language |
string |
2 |
Idioma esperado para las transacciones acorde a ISO 631-1, mayúscula sostenida |
| currency |
string |
3 |
Moneda a usar para el recaudo acorde a ISO 4217 |
| totalAmount |
float |
Valor total a recaudar |
| taxAmount |
float |
Discriminación del impuesto aplicado |
| devolutionBase |
float |
Base de devolución para el impuesto |
| tipAmount |
float |
Propina u otros valores exentos de impuesto (tasa aeroportuaria) y que deben agregarse al valor total a pagar |
| payer |
Person |
Información del pagador |
| buyer |
Person |
Información del comprador |
| shipping |
Person |
Información del receptor |
| ipAddress |
string |
15 |
Dirección IP desde la cual realiza la transacción el pagador |
| userAgent |
string |
255 |
Agente de navegación utilizado por el pagador |
| additionalData |
Attribute |
Datos adicionales para ser almacenados con la transacción |
PSETransactionMultiCreditRequest
Estructura que representa una solicitud de transacción con débitos a cuenta PSE, (*37)
| Nombre |
Tipo |
Long |
Descripción |
| bankCode |
string |
4 |
Código de la entidad financiera con la cual realizar la transacción |
| bankInterface |
string |
1 |
Tipo de interfaz del banco a desplegar [0 = PERSONAS, 1 = EMPRESAS] |
| returnURL |
string |
255 |
URL de retorno especificada para la entidad financiera |
| reference |
string |
32 |
Referencia única de pago |
| descriptiop |
string |
255 |
Descripción del pago |
| language |
string |
2 |
Idioma esperado para las transacciones acorde a ISO 631-1, mayúscula sostenida |
| currency |
string |
3 |
Moneda a usar para el recaudo acorde a ISO 4217 |
| totalAmount |
float |
Valor total a recaudar |
| taxAmount |
float |
Discriminación del impuesto aplicado |
| devolutionBase |
float |
Base de devolución para el impuesto |
| tipAmount |
float |
Propina u otros valores exentos de impuesto (tasa aeroportuaria) y que deben agregarse al valor total a pagar |
| payer |
Person |
Información del pagador |
| buyer |
Person |
Información del comprador |
| shipping |
Person |
Información del receptor |
| ipAddress |
string |
15 |
Dirección IP desde la cual realiza la transacción el pagador |
| userAgent |
string |
255 |
Agente de navegación utilizado por el pagador |
| additionalData |
array(Attribute) |
Datos adicionales para ser almacenados con la transacción |
| credits |
array(CreditConcept) |
Detalle de la dispersión a realizar |
PSETransactionResponse
Estructura con la información de respuesta para la creación de una transacción, (*38)
| Nombre |
Tipo |
Long |
Descripción |
| transactionID |
int |
Identificador único de la transacción en PlacetoPay |
| sessionID |
string |
32 |
Identificador único de la sesión en PlacetoPay |
| returnCode |
string |
30 |
Código de respuesta de la transacción, uno de los siguientes valores: br/ SUCCESSbr/FAIL_ENTITYNOTEXISTSORDISABLEDbr/FAIL_BANKNOTEXISTSORDISABLEDbr/FAIL_SERVICENOTEXISTSbr/FAIL_INVALIDAMOUNTbr/FAIL_INVALIDSOLICITDATEbr/FAIL_BANKUNREACHEABLEbr/FAIL_NOTCONFIRMEDBYBANKbr/FAIL_CANNOTGETCURRENTCYCLEbr/FAIL_ACCESSDENIEDbr/FAIL_TIMEOUTbr/FAIL_DESCRIPTIONNOTFOUNDbr/FAIL_EXCEEDEDLIMITbr/FAIL_TRANSACTIONNOTALLOWEDbr/FAIL_RISKbr/FAIL_NOHOSTbr/FAIL_NOTALLOWEDBYTIMEbr/FAIL_ERRORINCREDITSbr/
|
| trazabilityCode |
string |
40 |
Código único de seguimiento para la operación dado por la red ACH |
| transactionCycle |
int |
Ciclo de compensación de la red |
| bankCurrency |
string |
3 |
Moneda aceptada por el banco acorde a ISO 4217 |
| bankFactor |
float |
Factor de conversión de la moneda |
| bankURL |
string |
255 |
URL a la cual remitir la solicitud para iniciar la interfaz del banco, sólo disponible cuando returnCode = SUCCESS |
| responseCode |
int |
Estado de la operación en PlacetoPay [ 0 = FAILED, 1 = APPROVED, 2 = DECLINED, 3 = PENDING ] |
| responseReasonCode |
string |
3 |
Código interno de respuesta de la operación en PlacetoPay |
| responseReasonText |
string |
255 |
Mensaje asociado con el código de respuesta de la operación en PlacetoPay |
Estructura con la respuesta a una solicitud de información de transacción, (*39)
| Nombre |
Tipo |
Long |
Descripción |
| transactionID |
int |
Identificador único de la transacción en PlacetoPay |
| sessionID |
string |
32 |
Identificador único de la sesión en PlacetoPay |
| reference |
string |
32 |
Referencia única de pago |
| requestDate |
string |
Fecha de solicitud o creación de la transacción acorde a ISO 8601 |
| bankProcessDate |
string |
Fecha de procesamiento de la transacción acorde a ISO 8601 |
| onTest |
boolean |
Indicador de si la transacción es en modo de pruebas o no |
| returnCode |
string |
30 |
Código de respuesta de la transacción, uno de los siguientes: br/ SUCCESSbr/FAIL_INVALIDTRAZABILITYCODEbr/FAIL_ACCESSDENIEDbr/FAIL_INVALIDSTATEbr/FAIL_INVALIDBANKPROCESSINGDATEbr/FAIL_INVALIDAUTHORIZEDAMOUNTbr/FAIL_INCONSISTENTDATAbr/FAIL_TIMEOUTbr/FAIL_INVALIDVATVALUEbr/FAIL_INVALIDTICKETIDbr/FAIL_INVALIDSOLICITEDATEbr/FAIL_INVALIDAUTHORIZATIONIDbr/FAIL_TRANSACTIONNOTALLOWEDbr/FAIL_ERRORINCREDITSbr/FAIL_EXCEEDEDLIMIT |
| trazabilityCode |
string |
40 |
Código único de seguimiento para la operación dado por la red ACH |
| transactionCycle |
int |
Ciclo de compensación de la red |
| transactionState |
string |
20 |
Información del estado de la transacción [ OK, NOT_AUTHORIZED, PENDING, FAILED ] |
| responseCode |
int |
Estado de la operación en PlacetoPay |
| responseReasonCode |
string |
3 |
Código interno de respuesta de la operación en PlacetoPay |
| responseReasonText |
string |
255 |
Mensaje asociado con el código de respuesta de la operación en PlacetoPay |