Git Product home page Git Product logo

plugin-prestashop's Introduction

Prestashop - módulo Todo Pago (v1.4.x a 1.9.x)

Para reinstalar debe desinstalar cualquier versión anterior antes de copiar el plugin a la carpeta modules de Prestashop. De lo contrario fallará la instalacion de la nueva versión

Plug in para la integración con gateway de pago Todo Pago

Consideraciones Generales

El plug in de pagos de Todo Pago, provee a las tiendas Prestashop de un nuevo método de pago, integrando la tienda al gateway de pago. La versión de este plug in esta testeada en PHP 5.3 en adelante y Prestashop 1.6.

Instalación

  1. Descomprimir el archivo .zip.
  2. Copiar carpeta la carpeta "todopago" en la carpeta prestashop/modules.
  3. Ir a "Módulos" dentro del Área de Administración.
  4. En la lista de módulos, ir a la fila llamada "Todo pago" y hacer click donde dice "Instalar". De aparecer un cartel de advertencia, elegir la opción "Seguir con la instalación". Una vez instalado, se redirige a la pagina de configuración, a la que se puede acceder desde la lista de módulos.

Observación: Descomentar: extension=php_soap.dll y extension=php_openssl.dll del php.ini, ya que para la conexión al gateway se utiliza la clase SoapClient del API de PHP. Volver a inicio

Configuración

Configuración plug in

Para llegar al menu de configuración ir a Módulos y en la lista buscar el ítem llamado Todo Pago. El Plug-in esta separado en configuarción general y 3 sub-menues. Menú principal imagen de configuracion Volver a inicio

Formulario de pago integrado

El plugin tiene dos opciones de formulario para emplear en el proceso de pago. El formulario externo, que redirecciona a un formulario externo en Todo Pago y el fomulario integrado que permite hacer el pago dentro del e-commerce.

En la pagina de admin del plugin, en la seccion "CONFIGURACION - FORMULARIO HIBRIDO" se puede habilitar uno de los formulario. imagen de configuracion

El formulario seleccionado se mostrara en la etapa final del proceso de pago "Confirmar pago". imagen de configuracion

El formulario tiene dos formas de pago, ingresando los datos de una tarjeta ó utilizando la billetera de Todopago. Al ir a "Pagar con Billetera" desplegara una ventana que permitira ingresar a billetera y realizar el pago.

imagen de configuracion

Volver a inicio

Credenciales

En la secciones de ambientes de developers y produccion, se debe ingresar el MerchantID, Authorization y Security de Todo Pago.
Estos se pueden obtener desde la pagina de Todo Pago o desde el boton "Obtener credenciales".
Al Ingresar el usuario de todo pago se completan los campos con los datos del ambiente seleccionado.

imagen de configuracion

imagen de configuracion

Nota: El boton "Obtener credenciales" se habilita si el ambiente en cuestion se encuentra seleccionado en General->Ejecucion en produccion.

Nuevas columnas y atributos

El plug in creará nuevas tablas y registros en tablas existentes para lograr las nuevas funcionalidades y su persistencia dentro del framework

Tablas:
  1. todopago_transacciones, para guardar un registro de las ordenes que utilizaron este método de pago.
  2. todopago_productos, para guardar la información necesaria en la Prevención del Fraude.
Registros:

Los valores de configuración se encuentran guardados en la tabla configuration Volver a inicio

Prevención de Fraude

Consideraciones Generales (para todas los verticales, por defecto RETAIL)

El plugin toma valores estándar del framework para validar los datos del comprador. Para ello se utilizan las clases Customer, Address y State para recuperar los registros almacenados en la base de datos que corresponden al cliente que efectúa la compra y Cart para recuperar el carrito en el que se almacena los datos relativos a la compra en sí.

   $cart = $this->context->cart;
   $customer = new Customer($cart->id_customer);
   $address = new Address($cart->id_address_invoice);
   $state = new State($address->id_state);

-- Ciudad de Facturación: $address->city;
-- País de facturación:  $address->country;
-- Identificador de Usuario: $customer->id;
-- Email del usuario al que se le emite la factura: $customer->email;
-- Nombre de usuario el que se le emite la factura: $customer->firstname;
-- Apellido del usuario al que se le emite la factura: $customer->lastname;
-- Teléfono del usuario al que se le emite la factura: $address->phone;
-- Provincia de la dirección de facturación: $state->iso_code;
-- Domicilio de facturación: $address->address1;
-- Moneda: $cart->id_currency;
-- Total:  $cart->getOrderTotal(true, Cart::BOTH);
-- IP de la pc del comprador: Tools::getRemoteAddr();

También se utiliza la clase Customer para obtener el password del usuario (comprador) y la tabla Orders, donde se consultan las transacciones facturadas al comprador.

Consideraciones para vertical RETAIL

Las consideración para el caso de empresas del rubro RETAIL son similares a las consideraciones generales con la diferencia de se utiliza el atributo id_address_delivery en lugar de id_address_invoice para recuperar el registro de la tabla address

   $cart = $this->context->cart;
   $customer = new Customer($cart->id_customer);
   $address = new Address($cart->id_address_delivery);
   $state = new State($address->id_state);
   $carrier = new Carrier($cart->id_carrier);
   
-- Ciudad de envío de la orden: $address->city;
-- País de envío de la orden: $address->country;
-- Mail del destinatario: $customer->email;
-- Nombre del destinatario: $customer->firstname;
-- Apellido del destinatario: $customer->lastname;
-- Número de teléfono del destinatario: $address->phone;
-- Código postal del domicio de envío: $address->postcode;
-- Provincia de envío: $state->iso_code;
-- Domicilio de envío: $address->address1;
-- Método de despacho: $carrier->name;
-- Listado de los productos: $cart->getProducts();

nota: la funcion $cart->getProducts() devuelve un array con el listado de los productos, que se usan para conseguir la información que se debe enviar mediante la función _getProductsDetails().

Muy Importante

Provincias: uno de los datos requeridos para prevención común a todos los verticales es el campo provinicia/state tanto del comprador como del lugar de envío, para tal fin el plug in utiliza el valor del campo id_state, que figura en el registro Address recuperado, para recuperar el objeto State correspondiente a ese id, y así obtener el iso_code. El formato de estos datos deben ser tal cual la tabla de referencia (tabla provincias). En Prestashop el listado se encuentra en Localización -> Provincias.
Celular: se utiliza el atributo phone_mobile del registro Address recuperado. Volver a inicio

Características

Consulta de transacciones

El plugin genera un nuevo tab con el nombre "Todopago" en la pagina de detalle de pedido "Pedidos->Pedidos->Detalle". Esa permite consultar online las características de la transacción en el sistema de Todo Pago.

imagen de configuracion

Volver a inicio

Devoluciones

Para realizar una devolucion parcial o total, Prestashop tiene en la seccion "Pedido->Pedidos->Ver Orden->TP devoluciones" la funcionalidad necesaria.

imagen de configuracion

Volver a inicio

Tablas de Referencia

ProvinciaCódigo
CABAC
Buenos AiresB
CatamarcaK
ChacoH
ChubutU
CórdobaX
CorrientesW
Entre RíosE
FormosaP
JujuyY
La PampaL
La RiojaF
MendozaM
MisionesN
NeuquénQ
Río NegroR
SaltaA
San JuanJ
San LuisD
Santa CruzZ
Santa FeS
Santiago del EsteroG
Tierra del FuegoV
TucumánT

Volver a inicio

Tabla de errores operativos

Id mensajeMensaje
-1Aprobada.
1100El monto ingresado es menor al mínimo permitido
1101El monto ingresado supera el máximo permitido.
1102Tu tarjeta no corresponde con el banco seleccionado. Iniciá nuevamente la compra.
1104El precio ingresado supera al máximo permitido.
1105El precio ingresado es menor al mínimo permitido.
1070El plazo para realizar esta devolución caducó.
1081El saldo de tu cuenta es insuficiente para realizar esta devolución.
2010En este momento la operación no pudo ser realizada. Por favor intentá más tarde. Volver a Resumen.
2031En este momento la validación no pudo ser realizada, por favor intentá más tarde.
2050Tu compra no puede ser realizada. Comunicate con tu vendedor.
2051Tu compra no pudo ser procesada. Comunicate con tu vendedor.
2052Tu compra no pudo ser procesada. Comunicate con tu vendedor. 
2053Tu compra no pudo ser procesada. Comunicate con tu vendedor.
2054El producto que querés comprar se encuentra agotado. Por favor contactate con tu vendedor.
2056Tu compra no pudo ser procesada.
2057La operación no pudo ser procesada. Por favor intentá más tarde.
2058La operación fué rechazada. Comunicate con el 0800 333 0010.
2059La operación no pudo ser procesada. Por favor intentá más tarde.
2062Tu compra no puede ser realizada. Comunicate con tu vendedor.
2064Tu compra no puede ser realizada. Comunicate con tu vendedor.
2074Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
2075Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
2076Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
90000La cuenta destino de los fondos es inválida. Verificá la información ingresada en Mi Perfil.
90001La cuenta ingresada no pertenece al CUIT/ CUIL registrado.
90002No pudimos validar tu CUIT/CUIL. Comunicate con nosotros acá para más información.
99900Tu compra fue exitosa.
99901Tu Billetera Virtual no tiene medios de pago adheridos. Ingresá a tu cuenta de Todo Pago y cargá tus tarjetas.
99902Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99903Lo sentimos, hubo un error al procesar la operación. Por favor reintentá más tarde.
99904El saldo de tu tarjeta no te permite realizar esta compra. Iniciala nuevamente utilizando otro medio de pago.
99905En este momento la operación no pudo ser procesada. Intentá nuevamente.
99907Tu compra no pudo ser procesada. Comunicate con tu vendedor. 
99910Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99911Lo sentimos, se terminó el tiempo para confirmar esta compra. Por favor iniciá nuevamente el proceso de pago.
99950Tu compra no pudo ser procesada.
99960Esta compra requiere autorización de VISA. Comunicate al número que se encuentra al dorso de tu tarjeta.
99961Esta compra requiere autorización de AMEX. Comunicate al número que se encuentra al dorso de tu tarjeta.
99970Lo sentimos, no pudimos procesar la operación. Por favor reintentá más tarde.
99971Lo sentimos, no pudimos procesar la operación. Por favor reintentá más tarde.
99972Tu compra no pudo realizarse. Iniciala nuevamente utilizando otro medio de pago. 
99974Tu compra no pudo realizarse. Iniciala nuevamente utilizando otro medio de pago. 
99975Tu compra no pudo realizarse. Iniciala nuevamente utilizando otro medio de pago. 
99977Tu compra no pudo realizarse. Iniciala nuevamente utilizando otro medio de pago. 
99979Tu compra no pudo realizarse. Iniciala nuevamente utilizando otro medio de pago. 
99978Lo sentimos, no pudimos procesar la operación. Por favor reintentá más tarde.
99979Lo sentimos, el pago no pudo ser procesado.
99980Ya realizaste una compra por el mismo importe. Iniciala nuevamente en unos minutos.
99982Tu compra no pudo ser procesada. Iniciala nuevamente utilizando.
99983Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99984Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99985Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99986Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99987Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99988Tu compra no pudo ser procesada. Iniciala nuevamente utilizando otro medio de pago.
99989Tu tarjeta no autorizó tu compra. Iniciala nuevamente utilizando otro medio de pago.
99990Tu tarjeta está vencida. Iniciá nuevamente la compra utilizando otro medio de pago.
99991Los datos informados son incorrectos. Por favor ingresalos nuevamente.
99992El saldo de tu tarjeta no te permite realizar esta compra. Iniciala nuevamente utilizando otro medio de pago.
99993Tu tarjeta no autorizó el pago. Iniciá nuevamente la compra utilizando otro medio de pago.
99994El saldo de tu tarjeta no te permite realizar esta operacion.
99995Tu tarjeta no autorizó tu compra. Iniciala nuevamente utilizando otro medio de pago.
99996La operación fué rechazada por el medio de pago porque el monto ingresado es inválido.
99997Lo sentimos, en este momento la operación no puede ser realizada. Por favor intentá más tarde.
99998Tu tarjeta no autorizó tu compra. Iniciala nuevamente utilizando otro medio de pago.
99999Tu compra no pudo realizarse. Iniciala nuevamente utilizando otro medio de pago.

Volver a inicio

Tabla de errores de integración

**Id mensaje****Descripción**
98001 ERROR: El campo CSBTCITY es requerido
98002 ERROR: El campo CSBTCOUNTRY es requerido
98003 ERROR: El campo CSBTCUSTOMERID es requerido
98004 ERROR: El campo CSBTIPADDRESS es requerido
98005 ERROR: El campo CSBTEMAIL es requerido
98006 ERROR: El campo CSBTFIRSTNAME es requerido
98007 ERROR: El campo CSBTLASTNAME es requerido
98008 ERROR: El campo CSBTPHONENUMBER es requerido
98009 ERROR: El campo CSBTPOSTALCODE es requerido
98010 ERROR: El campo CSBTSTATE es requerido
98011 ERROR: El campo CSBTSTREET1 es requerido
98012 ERROR: El campo CSBTSTREET2 es requerido
98013 ERROR: El campo CSPTCURRENCY es requerido
98014 ERROR: El campo CSPTGRANDTOTALAMOUNT es requerido
98015 ERROR: El campo CSMDD7 es requerido
98016 ERROR: El campo CSMDD8 es requerido
98017 ERROR: El campo CSMDD9 es requerido
98018 ERROR: El campo CSMDD10 es requerido
98019 ERROR: El campo CSMDD11 es requerido
98020 ERROR: El campo CSSTCITY es requerido
98021 ERROR: El campo CSSTCOUNTRY es requerido
98022 ERROR: El campo CSSTEMAIL es requerido
98023 ERROR: El campo CSSTFIRSTNAME es requerido
98024 ERROR: El campo CSSTLASTNAME es requerido
98025 ERROR: El campo CSSTPHONENUMBER es requerido
98026 ERROR: El campo CSSTPOSTALCODE es requerido
98027 ERROR: El campo CSSTSTATE es requerido
98028 ERROR: El campo CSSTSTREET1 es requerido
98029 ERROR: El campo CSMDD12 es requerido
98030 ERROR: El campo CSMDD13 es requerido
98031 ERROR: El campo CSMDD14 es requerido
98032 ERROR: El campo CSMDD15 es requerido
98033 ERROR: El campo CSMDD16 es requerido
98034 ERROR: El campo CSITPRODUCTCODE es requerido
98035 ERROR: El campo CSITPRODUCTDESCRIPTION es requerido
98036 ERROR: El campo CSITPRODUCTNAME es requerido
98037 ERROR: El campo CSITPRODUCTSKU es requerido
98038 ERROR: El campo CSITTOTALAMOUNT es requerido
98039 ERROR: El campo CSITQUANTITY es requerido
98040 ERROR: El campo CSITUNITPRICE es requerido
98101 ERROR: El formato del campo CSBTCITY es incorrecto
98102 ERROR: El formato del campo CSBTCOUNTRY es incorrecto
98103 ERROR: El formato del campo CSBTCUSTOMERID es incorrecto
98104 ERROR: El formato del campo CSBTIPADDRESS es incorrecto
98105 ERROR: El formato del campo CSBTEMAIL es incorrecto
98106 ERROR: El formato del campo CSBTFIRSTNAME es incorrecto
98107 ERROR: El formato del campo CSBTLASTNAME es incorrecto
98108 ERROR: El formato del campo CSBTPHONENUMBER es incorrecto
98109 ERROR: El formato del campo CSBTPOSTALCODE es incorrecto
98110 ERROR: El formato del campo CSBTSTATE es incorrecto
98111 ERROR: El formato del campo CSBTSTREET1 es incorrecto
98112 ERROR: El formato del campo CSBTSTREET2 es incorrecto
98113 ERROR: El formato del campo CSPTCURRENCY es incorrecto
98114 ERROR: El formato del campo CSPTGRANDTOTALAMOUNT es incorrecto
98115 ERROR: El formato del campo CSMDD7 es incorrecto
98116 ERROR: El formato del campo CSMDD8 es incorrecto
98117 ERROR: El formato del campo CSMDD9 es incorrecto
98118 ERROR: El formato del campo CSMDD10 es incorrecto
98119 ERROR: El formato del campo CSMDD11 es incorrecto
98120 ERROR: El formato del campo CSSTCITY es incorrecto
98121 ERROR: El formato del campo CSSTCOUNTRY es incorrecto
98122 ERROR: El formato del campo CSSTEMAIL es incorrecto
98123 ERROR: El formato del campo CSSTFIRSTNAME es incorrecto
98124 ERROR: El formato del campo CSSTLASTNAME es incorrecto
98125 ERROR: El formato del campo CSSTPHONENUMBER es incorrecto
98126 ERROR: El formato del campo CSSTPOSTALCODE es incorrecto
98127 ERROR: El formato del campo CSSTSTATE es incorrecto
98128 ERROR: El formato del campo CSSTSTREET1 es incorrecto
98129 ERROR: El formato del campo CSMDD12 es incorrecto
98130 ERROR: El formato del campo CSMDD13 es incorrecto
98131 ERROR: El formato del campo CSMDD14 es incorrecto
98132 ERROR: El formato del campo CSMDD15 es incorrecto
98133 ERROR: El formato del campo CSMDD16 es incorrecto
98134 ERROR: El formato del campo CSITPRODUCTCODE es incorrecto
98135 ERROR: El formato del campo CSITPRODUCTDESCRIPTION es incorrecto
98136 ERROR: El formato del campo CSITPRODUCTNAME es incorrecto
98137 ERROR: El formato del campo CSITPRODUCTSKU es incorrecto
98138 ERROR: El formato del campo CSITTOTALAMOUNT es incorrecto
98139 ERROR: El formato del campo CSITQUANTITY es incorrecto
98140 ERROR: El formato del campo CSITUNITPRICE es incorrecto
98201 ERROR: Existen errores en la información de los productos
98202 ERROR: Existen errores en la información de CSITPRODUCTDESCRIPTION los productos
98203 ERROR: Existen errores en la información de CSITPRODUCTNAME los productos
98204 ERROR: Existen errores en la información de CSITPRODUCTSKU los productos
98205 ERROR: Existen errores en la información de CSITTOTALAMOUNT los productos
98206 ERROR: Existen errores en la información de CSITQUANTITY los productos
98207 ERROR: Existen errores en la información de CSITUNITPRICE de los productos

Volver a inicio

Versiones Disponibles

Version del Plugin Estado Versiones Compatibles
v1.4.x - v1.9.x Stable (Current version) PrestaShop v1.6.x

Volver a inicio

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.