javascript
Code kopiëren
// Simpel client-only demo: in productie vervang mockFetch met echte API calls.
const payBtn = document.getElementById(‘payBtn’);
const status = document.getElementById(‘status’);
const balance = document.getElementById(‘balance’);
async function mockBrokerProcess(amountEur){
// Simuleer broker: return crypto amount & fake tx_hash
const rateUsdtPerEur = 0.40; // voorbeeld (1 EUR = 0.40 USDT)
const usdt = (amountEur * rateUsdtPerEur).toFixed(2);
const txHash = ‘0x’ + Math.random().toString(16).slice(2,18);
return {usdt, txHash};
}
async function simulatePayment(){
const eur = parseFloat(document.getElementById(‘euro’).value);
status.innerText = ‘Redirecting to iDEAL (simulatie)…’;
// Simuleer iDEAL flow (2s)
await new Promise(r => setTimeout(r, 2000));
status.innerText = ‘Betaling ontvangen door broker — verwerken…’;
// Broker converteert en stuurt crypto onchain (simulatie)
const res = await mockBrokerProcess(eur);
await new Promise(r => setTimeout(r, 1500)); // network delay
// Simuleer onchain bevestiging
status.innerText = `Crypto gestuurd: ${res.usdt} USDT (tx: ${res.txHash}) — bevestigen…`;
await new Promise(r => setTimeout(r, 2000));
// Update local “wallet” view
const srdRate = 40; // voorbeeld: 1 USDT = 40 SRD
const srd = (parseFloat(res.usdt) * srdRate).toFixed(2);
balance.innerHTML = `Crypto: ${res.usdt} USDT — Indicatie: ${srd} SRD`;
status.innerText = ‘Ontvanger heeft het ontvangen (simulatie).’;
}
payBtn.addEventListener(‘click’, simulatePayment);