Dokümantasyon

Callback / webhook

Polling yerine callback kullanmanızı öneriyoruz. Dashboard'da Developers → Webhooks altında backend adresinizi Callback URL olarak girin. Kullanıcı onayladığında/reddettiğinde Touchque bu URL'ye POST gönderir.

Önerilen yöntem: Callback, polling'e göre daha verimli ve hızlıdır.
Callback payload (Touchque → siz)
AlanTipAçıklama
requestIdUUIDGiriş isteğinin kimliği
statusstring"SUCCESS" (onaylandı; durum sorgusunda CONFIRMED) / "REJECTED"
externalUsernamestringKullanıcı ID
timestampISO 8601İşlem zamanı
signaturehexHMAC-SHA256 imzası
Callback'te x-signature header'ını mutlaka doğrulayın! API secret'ınızla imzalanır; Developers → Webhooks altındaki Signing secret aynı değerdir.
Callback işleyici
const express = require('express');
const { Touchque } = require('@touchque/node');

const app = express();
const tq = new Touchque({
  apiKey: 'tq_abc123',
  apiSecret: 'YOUR_API_SECRET'
});

// Webhook Callback - Touchque'dan gelen bildirim
app.post('/touchque/callback', express.text({ type: 'application/json' }), (req, res) => {
  try {
    const headerSig = req.headers['x-signature'];

    // İmzayı doğrula ve içeriği parse et
    const payload = tq.webhook.verify({
      rawBody: req.body,
      signature: headerSig
    });

    if (payload.status === 'SUCCESS') {
      // ✅ Kullanıcı onayladı
      console.log(`User ${payload.externalUsername} approved!`);
    }

    res.json({ received: true });
  } catch (err) {
    res.status(401).json({ error: 'Invalid signature' });
  }
});

app.listen(3000);