ROKI Connect para Gravity Forms
===============================

Cobra con tarjeta los formularios de Gravity Forms: inscripciones, donaciones, matriculas,
reservas, y cualquier formulario que termine en un pago.


COMO SE INSTALA
---------------

1. En el panel de WordPress anda a Plugins > Anadir nuevo > Subir plugin, elegi este ZIP y
   activalo. Gravity Forms 2.5 o superior tiene que estar instalado y activo.

2. Anda a Formularios > Configuracion > ROKI Connect y pega tus llaves.
   La llave de sandbox empieza con sk_test_ y la de produccion con sk_live_. Las dos salen de la
   pestana Integracion API del portal de ROKI.

3. En esa misma pantalla aparece la URL del webhook. Registrala en el portal de ROKI, en la
   pestana Webhooks, y pega aca el secreto de firma que te devuelva.

4. Abri el formulario que queres cobrar y anda a Configuracion > ROKI Connect > Anadir nuevo.
   Ponele un nombre, elegi de donde sale el monto y guarda.

Proba con una llave sk_test_ y un monto chico antes de publicarlo.


COMO TIENE QUE ESTAR ARMADO EL FORMULARIO
-----------------------------------------

Gravity Forms saca el monto de los campos de tipo producto. Si tu formulario no tiene ninguno, no
hay nada que cobrar y el complemento no crea ningun pago.

- Para un precio fijo: un campo de producto de tipo "Precio unico".
- Para que el visitante elija: un campo de producto de tipo "Lista desplegable" o "Radio", con las
  opciones y sus precios.
- Para una donacion de monto libre: un campo de producto de tipo "Definido por el usuario".

Despues, en el feed, elegi "Total del formulario" o el campo puntual que quieras cobrar.


LO QUE HACE
-----------

- El cliente envia el formulario y sale al checkout de ROKI a pagar con tarjeta.
- La entrada se marca pagada cuando llega el webhook firmado, no cuando el navegador vuelve.
  Que el navegador vuelva significa que el navegador volvio, no que el dinero se movio.
- El monto que se cobra lo calcula Gravity Forms desde los campos de producto, del lado del
  servidor. No viaja por el navegador, asi que no hay nada que se pueda cambiar para pagar menos.
- Reenviar el mismo formulario no crea un segundo cobro: se manda una llave de idempotencia
  derivada del contenido, y ROKI devuelve el pago que ya existia.
- Las entregas repetidas del webhook se descartan por el id del evento, con la deduplicacion que
  Gravity Forms ya trae.
- Comision al cliente opcional: ROKI recalcula el total para que a vos te quede el monto del
  formulario.


LO QUE NO HACE, DICHO DE FRENTE
-------------------------------

No cobra suscripciones. En el feed solo esta "Un pago" a proposito: una suscripcion exige cobrar
sin el cliente presente, y para eso hay que guardar la tarjeta - un modulo que ROKI habilita por
comercio. Un complemento que ofreciera suscripciones sin eso fallaria en la primera renovacion, y
eso es peor que no ofrecerlas.

No pone campos de tarjeta dentro de tu formulario. Gravity Forms lo permite, pero eso haria pasar
el numero de tarjeta por tu servidor, con las obligaciones de PCI que trae encima.

Esta version es Beta. Instalala primero en una copia de prueba de tu sitio y hace un envio completo
del formulario con una llave sk_test_ y un monto chico. Confirma que la entrada queda marcada como
pagada -que es lo que hace el webhook- antes de dejarla cobrando de verdad.


REQUISITOS
----------

- WordPress 6.2 o superior.
- Gravity Forms 2.5 o superior, con licencia activa.
- PHP 8.0 o superior.
- HTTPS en el sitio.


SOPORTE
-------

https://connect.roki.la
