# Cobrar con tarjeta los pedidos a domicilio del Menú Digital (Botón de Pago Banco General)

## ¿Qué es / para qué sirve?

Permite que el cliente **pague con tarjeta** (Visa o Mastercard) los **pedidos a domicilio** que hace
desde la carta del Menú Digital. El cobro lo hace la **página segura de Banco General** (Botón de Pago
BG, que funciona con CyberSource): el sistema nunca ve ni guarda los datos de la tarjeta.

Lo importante:

- **Solo para delivery.** En la mesa o en la habitación el cliente sigue pagando como siempre, con el
  salonero.
- El pedido **entra a cocina solo cuando el banco confirma el pago**. Mientras tanto queda como
  **"Pago pendiente"** y no se cocina, no se imprime, no descuenta inventario y no toca la caja.
- Un pedido a domicilio **pagado con tarjeta entra directo**, aunque tengas configurado que los
  delivery esperen aprobación: el pago confirmado hace de aprobación.
- Viene **apagado**. Si no lo enciendes, la carta se ve y funciona exactamente igual que antes.

> No es Yappy. El "Botón de Pago Yappy" es otro servicio del banco y se configura aparte.

## Antes de empezar: lo que te entrega Banco General

Banco General activa a los comercios el Botón de Pago con **Pagos unificados** (Unified Checkout de
CyberSource). Necesitas tres datos del portal de CyberSource (Business Center), uno para el ambiente
de **pruebas** y otro para **producción**:

- **ID del comercio** (Merchant ID): aparece arriba en el portal, por ejemplo `bg_minegocio`.
- **Key ID** y **Shared secret**: se generan en *Gestión de cuentas → Key Management → Generate
  Key → REST – Shared Secret*. El Shared secret **solo se muestra una vez**: guárdalo al generarlo.

Si en el portal no aparece *Key Management* (o sale el aviso "su organización no está habilitada"),
pídele a **comercioelectronico@bgeneral.com** que lo habilite o que te envíe las llaves REST, y que
registre el dominio de tu carta (`https://<tu-negocio>.tuvendor.cloud`).

> Si tu comercio tiene el Botón de Pago antiguo (**Secure Acceptance**, con Profile ID, Access key y
> Secret key), también funciona: elige esa integración en la configuración.

## Paso a paso: configurarlo

1. Entra a **Menú Digital** y abre la pestaña **Configuraciones**.
2. Baja hasta la tarjeta **"Pago con tarjeta (Botón de Pago Banco General)"**.
   [CAPTURA: tarjeta "Pago con tarjeta (Botón de Pago Banco General)" en Configuraciones]
3. En **Integración** deja **Pagos unificados (Unified Checkout)**.
4. En **Ambiente** elige **Pruebas** mientras haces la prueba con el banco. Cambia a **Producción**
   solo cuando el banco te lo autorice: en producción **se cobra de verdad**.
5. Escribe el **ID del comercio**, el **Key ID** y pega el **Shared secret**.
   - El Shared secret se guarda **cifrado** y **no se vuelve a mostrar**: después de guardar solo
     verás sus últimos 4 caracteres.
   - Si más adelante cambias otra cosa, deja el Shared secret **vacío**: se conserva el que ya estaba.
6. Pulsa **Probar credenciales**. El sistema le pide al banco una sesión de pago de prueba (no cobra
   nada). Si sale "Las credenciales funcionan", están bien; si no, el aviso dice qué respondió el banco.
7. Marca **"Ofrecer el pago con tarjeta en la carta"** y pulsa **Guardar**.
   - Si falta alguna de las tres credenciales, el sistema **no lo enciende** y te avisa; lo demás
     sí se guarda.

Con **Secure Acceptance** los pasos son los mismos, pero con Profile ID, Access key y Secret key, y
hay que poner en el perfil de Secure Acceptance las tres direcciones de regreso que muestra la
tarjeta (`/qr-pago/bg/regreso`, `/qr-pago/bg/cancelado` y `/qr-pago/bg/notificacion`).

## Prueba con Banco General (ambiente de pruebas)

1. Con el **Ambiente en Pruebas**, abre la carta del Menú Digital como si fueras un cliente.
2. Arma un pedido, elige una **zona de entrega** y como método de pago **"Tarjeta (Banco General)"**.
3. Escribe nombre, apellido, teléfono y **correo** y confirma.
4. Se abre la página **Pagar con tarjeta** con el formulario del banco. Usa una tarjeta de prueba:
   - Visa **4111 1111 1111 1111**, vencimiento futuro, CVV **123**.
   - Mastercard **5555 5555 5555 4444**, vencimiento futuro, CVV **265**.
5. Al terminar ves **"¡Pago recibido!"** y el pedido pasa a cocina.
6. Con la autorización del banco, cambia el **Ambiente a Producción** y pon las credenciales de
   **producción**. La primera venta real conviene hacerla por un monto pequeño.

## Lo que ve el cliente

1. En el paso **Finalizar**, con una zona de entrega elegida, aparece el método
   **"Tarjeta (Banco General)"**.
   [CAPTURA: selector de método de pago con "Tarjeta (Banco General)"]
2. Al elegirlo se pide el **apellido** y el **correo** pasa a obligatorio. La **propina no se cobra
   por tarjeta** en esta versión: la casilla de propina se oculta.
3. Al confirmar, se abre la página **Pagar con tarjeta** con el formulario seguro de Banco General
   (tarjeta, y según lo que active el banco: Click to Pay, Google Pay o Apple Pay).
4. Al terminar:
   - **Pago aprobado:** ve "¡Pago recibido!" con su número de pedido y el botón **Volver al menú**.
   - **Pago rechazado o cancelado:** ve "El pago no se completó". Puede **intentar de nuevo con
     tarjeta** o **volver al menú y elegir otro método** (su carrito sigue guardado).

## Lo que ves tú (el restaurante)

- En **Menú Digital → Pedidos** aparece el filtro **"Pago pendiente"** (solo si tienes el pago con
  tarjeta encendido). Ahí están los pedidos que esperan que el cliente termine de pagar.
- Cuando el banco confirma, el pedido pasa a **Aceptados** con la etiqueta **"Pagado con tarjeta"**,
  sale la comanda por donde tengas configurado (impresora, KDS o ambos) y suena la campanita.
- La venta queda con su **pago con tarjeta ya registrado** (método Tarjeta, con el número de
  transacción del banco y los últimos 4 dígitos de la tarjeta). El pedido queda como cuenta abierta
  para que el cajero emita la factura al despacharlo, **sin volver a cobrarlo**.
- Un pedido que **nunca se paga** se anula solo a las **2 horas** y queda como **"Pago vencido"**.
  Como nunca tocó inventario ni caja, no hay nada que reponer.

## Notas y avisos

> Si el cliente ve el cargo en su tarjeta pero el pedido no aparece pagado, revisa la transacción en
> el portal de CyberSource (*Gestión de transacciones → Transacciones*) antes de cobrarle de nuevo.
> Si el banco no respondió al momento de cobrar, la carta **no** le ofrece reintentar al cliente,
> justamente para no cobrarle dos veces: confirma en el portal y cierra el pedido a mano.

> Si el banco deja un pago **"en revisión"** (antifraude), el pedido **no** entra a cocina: el
> cliente ve el aviso de que el restaurante lo contactará. Revisa el pago en el portal de CyberSource.

> Si un cliente llegara a pagar **dos veces** el mismo pedido (por ejemplo, desde dos pestañas), el
> sistema registra un solo pago y no repite la comanda; el segundo cobro hay que **devolverlo desde
> el portal del banco**.

> Monedas: el Botón de Pago cobra siempre en **dólares (USD)**, que equivalen al balboa.

## Cerrar en el POS un pedido ya pagado con tarjeta

1. En el POS abre la cuenta del pedido (ventas suspendidas / cuentas abiertas) y presiona **PAGAR**.
2. En el cuadro de pago verás la fila **"Tarjeta (Banco General)"** con el monto ya pagado, **bloqueada**
   (no se puede cambiar), **Pago Total** igual al total y **Saldo: 0.00**.
3. **No marques efectivo ni otro método.** Presiona **Cobrar sin ticket** o **Cobrar e Imprimir**.
4. La cuenta se cierra con el pago del banco tal cual (número de transacción y últimos 4 dígitos).

[CAPTURA: cuadro de pago del POS con la fila "Tarjeta (Banco General)" bloqueada y Saldo 0.00]

> La fila "Tarjeta (Banco General)" aparece aunque tu sucursal no tenga el método "Tarjeta" en el POS:
> es el pago que confirmó el banco y no se puede borrar ni cambiar desde el POS.

> PENDIENTE DE VERIFICAR: la factura electrónica que se emite al cerrar estos pedidos (forma de pago
> tarjeta) — en la copia de pruebas la emisión de FE estaba apagada.