Generar plugin ( slug: dvtcbr nombre : Dvt cobros ) que permita realizar el cobro de productos determinados por medio de hooks o acciones .
El plugin permitirá realizar el pago de un producto :
El cliente ingresa a al sitio web , a solicitar la compra de cierto producto
El sitio web determinara el producto
El sitio web del que se le proveerá por medio de un hook de dvtcbr el nombre, descripción , monto , precio , moneda, así como los datos del comprado ( opcionalmente ) ; este filtro retornara la url a la que redireccionar al cliente .
El cliente será redireccionado a la página de checkout en mercadopago
Mercadopago redireccionará al usuario a una página de voucher con el identificador de la transacción
El sitio conseguirá los dato de la transacción y los pagos del producto enviando los datos de la petición recibidos desde mercado pago a un filtro del dvtcbr
Con esos datos renderizar un voucher con el esta de la transacción
Mercadopago enviará notificaciones a dvtcbr en la url determinada por el plugin
dvtcbr guardará los datos en un log para su futuro procesado , respondiendo al servidor de mercado pago en menos de 10 seg ( según plantea el a documentación de mercadopago
Por medio de un proceso de cron dvtcbr revisa los logs previamente creados , que no hayan sido procesados
Por medio de una acción a la que llamará ( cuya implementación está entre los datos requeridos ) informará el cambio de estado de pago para que quien sea que maneje el producto ( otro plugin externo ) realice los cambios necesarios
Marcará como procesados los logs para evitar volver a procesarlos .
Contemplar la gestión de como máximo 5 intentos de proceso ,en caso de aún no funcionar marcarlo como erróneo ( quizás una columna de la tabla ) y como procesado a fin de evitar los casos en los no se haya podido procesar en 5 intentos o más , para estos casos además disparará una acción ( considerada requerida determinada como requerida .) .
Para realizar el pago utilizar SDK de mercadopago express checkout
https://www.mercadopago.com.ar/developers/es/guides/sdks
Utilizar
https://wppb.me/ como base del desarrollo
Iniciar los texto del plugin en inglés ( contemplar su traducción al español )
Gestionar desde una página creada en ajustes las opciones del plugin entre ellas:
Keys requeridas por mercado pago
El plugin debe poder instalarse como los plugins de wordpress
Contemplar la creación de las tablas al instalar ( copiarlas del de reservas )
Creación o eliminación de propiedades con la activación y desactivación
Eliminación de las propiedades al desinstalar
Gestionar el webhook desde el que se reciben las peticiones que llegan desde mercadopago
Guardar las peticiones entrantes en un log
Contestar en el menor tiempos posible
Validar que los datos estén completos al tener instalado el plugin y no permitir el inicio del pago. Lanzar mensaje en caso de que no esté determinado alguno de los datos de configuración pero el plugin esté activo .
Ejemplo de las acciones/filtros que se tendrían que ofrecer desde el plugin
dvtcbr_solicitar_pago(nombre, descripción , monto ,.....) => Genera el boton de pago y redirecciona a la url o retorna un WP_Error informando .
Dvtcbr_traer_datos_pago(....) => Retorna los datos de la reserva, el estado, etc
dvtcbr_pago_cambio_estado(...) => Se declara y es llamado desde el api cuando cambie de estado , se obliga a implementarlo sino lanza mensaje .
Dvtcbr_pago_imposible_procesar(...) => Se declara y es llamado desde el api cuando cambie de estado , se obliga a implementarlo sino lanza mensaje .
Contexto general del proyecto
Contamos con distintas plantillas que buscan realizar pagos para distintas situaciones particulares , se busca integrar el plugin de manera que cada plantilla pueda realizar el pago utilizando los hooks de este plugin .
Plazo de Entrega: No definido