Pagos OXXO

🏪 Genera fichas de pago OXXO para que tus clientes paguen en tiendas de conveniencia

🏪

Selecciona un cliente para generar una ficha OXXO Pay

document.addEventListener('DOMContentLoaded', () => { // 3. OXXO SEARCH let selectedOxxoClient = null; setupSearch('oxxoSearch', 'oxxoResults', 'search_stripe', async (partialClient) => { const res = await fetch(`${window.SIIP_OXXO_PATH || ''}?action=get_stripe_details&id=${partialClient.id}`); const data = await res.json(); selectedOxxoClient = data; document.getElementById('oxxoClientName').textContent = data.fullName; document.getElementById('oxxoClientIdDisplay').textContent = `ID: #${data.id}`; document.getElementById('oxxoBalanceBadge').textContent = `Saldo: $${parseFloat(data.accountOutstanding||0).toFixed(2)}`; document.getElementById('oxxoAmount').value = data.accountOutstanding > 0 ? data.accountOutstanding : ''; document.getElementById('btnOxxoCrm').href = `${store.publicUrl}/client/${data.id}`; // Reset View document.getElementById('oxxoPlaceholder').style.display = 'block'; // This is the PREVIEW placeholder (keep as is) document.getElementById('oxxoModulePlaceholder').style.display = 'none'; // Hide MODULE placeholder document.getElementById('oxxoResult').style.display = 'none'; document.getElementById('oxxoResult').innerHTML = ''; document.getElementById('oxxoDetailContainer').style.display = 'block'; // Load History if (data.stripeCustomerId) { document.getElementById('oxxoHistoryContainer').style.display = 'block'; loadOxxoHistory(data.stripeCustomerId); } else { document.getElementById('oxxoHistoryContainer').style.display = 'none'; } }); document.getElementById('btnCreateOxxoIntent').onclick = async () => { if (!selectedOxxoClient) return; const amt = parseFloat(document.getElementById('oxxoAmount').value); if (!amt || amt < 10) return showToast('Mínimo 10 MXN', true); const btn = document.getElementById('btnCreateOxxoIntent'); const original = btn.innerHTML; btn.disabled = true; btn.innerHTML = ' Procesando...'; const fd = new FormData(); fd.append('action', 'create_oxxo_intent'); fd.append('clientId', selectedOxxoClient.id); fd.append('amount', amt); try { const res = await fetch(`${window.SIIP_OXXO_PATH || ''}?`, { method: 'POST', body: fd }); const d = await res.json(); if (d.success) { const url = d.data.voucher_image_url || `?action=image&file=${d.data.voucher_filename}`; // Hide Placeholder document.getElementById('oxxoPlaceholder').style.display = 'none'; // Show Result const resDiv = document.getElementById('oxxoResult'); resDiv.style.display = 'flex'; resDiv.innerHTML = `

¡Ficha Generada!

Referencia OXXO Pay

${d.data.oxxo_reference}

Descargar Ficha
`; } else showToast(d.error, true); } catch (e) { console.error(e); showToast('Error de conexión', true); } btn.disabled = false; btn.innerHTML = original; }; });