QRISDynamic

Ubah QRIS Statis β†’ Dinamis

Upload QRIS statis toko Anda, isi nominal, lalu hasilkan QR pembayaran dinamis lengkap dengan hitung mundur.

1. QRIS Statis
πŸ“€

Tarik & letakkan gambar QRIS di sini

atau klik untuk memilih file / tempel teks QRIS
2. Detail Transaksi
ℹ️ Sistem tidak mengizinkan dua QR aktif bernominal sama. Bila terjadi, ditambah kode unik agar mudah dibedakan.
3. Auto Registrasi / Login (opsional)
πŸ’Ύ Auto registrasi/login jika mengisi form ini. Transaksi akan tercatat & bisa dilihat di Dashboard.
Lupa password?

Memuat transaksi…

πŸ“š Dokumentasi

Panduan penggunaan aplikasi dan integrasi API / Webhook.

Mulai Cepat

Aplikasi ini terdiri dari dua bagian: Frontend (halaman ini, bisa ditaruh di server mana pun / lokal) dan Backend Google Apps Script (API + Spreadsheet). Setel URL backend lewat tombol βš™οΈ Setelan di kanan atas.

Alur Generate

  1. Upload / tempel QRIS statis (otomatis tersimpan di perangkat).
  2. Isi nominal, nama toko, invoice (opsional), dan durasi expired.
  3. (Opsional) isi No. WhatsApp + password agar transaksi tercatat di dashboard.
  4. Klik Generate β†’ diarahkan ke halaman pembayaran dengan QR dinamis + hitung mundur.

Jika ada dua QR aktif bernominal sama, sistem otomatis menambah kode unik (menambah beberapa rupiah) agar nominalnya unik dan mudah dibedakan.

Endpoint API

Semua request adalah POST ke URL Web App dengan body JSON dan field action. Gunakan Content-Type: text/plain untuk menghindari CORS preflight.

POST {WEB_APP_URL}
Content-Type: text/plain

{
  "action": "createTransaction",
  "qrisStatic": "000201...",
  "amount": 25000,
  "storeName": "Toko Berkah",
  "invoice": "INV-001",
  "expiryMinutes": 30,
  "apiKey": "qris_xxx (opsional)"
}

Action tersedia: previewConvert, createTransaction, getTransaction, register, login, dashboardStats, listTransactions, updateTxStatus, rotateApiKey, blockApiKey, waVerifyStart, waGenerateManual, listWaVerifications, webhookPaid.

Webhook: Set Status β†’ Paid

Server lain (mis. sistem mutasi bank) dapat menandai transaksi lunas secara otomatis:

POST {WEB_APP_URL}
Content-Type: text/plain

{
  "action": "webhookPaid",
  "txCode": "TRX...",
  "status": "paid",
  "apiKey": "qris_xxx"      // atau "secret": "WEBHOOK_SECRET"
}

Verifikasi WhatsApp (Gateway)

Tombol Verifikasi WhatsApp di dashboard membuat kode unik & link chat ke admin (628980552001). Aplikasi gateway WA di HP admin meneruskan pesan masuk ke backend dengan format berikut, dan backend membalas otomatis:

Request (dari gateway β†’ backend)

POST {WEB_APP_URL}
Content-Type: application/json

{
  "message": "Verifikasi WhatsApp QRIS. Kode: VERIFY-AB12CD",
  "timestamp": "2025-11-30T10:30:00Z",
  "sender": "John Doe",
  "phoneNumber": "+62812xxxx",
  "appName": "com.whatsapp"
}

Response (backend β†’ gateway, dibalas ke chat)

{ "reply": "WhatsApp Anda berhasil diverifikasi. Terima kasih!" }

Backend mencari pola VERIFY-XXXXXX / RESET-XXXXXX di dalam pesan, mencocokkan, menandai terverifikasi, lalu mengirim balasan.

Generator Manual / dari Server

Membuat kode verifikasi manual (mis. dari server lain) via waGenerateManual:

POST {WEB_APP_URL}
{
  "action": "waGenerateManual",
  "phone": "628xxxx",
  "type": "verify",        // atau "reset"
  "secret": "WEBHOOK_SECRET"  // atau "apiKey": "qris_xxx"
}

Riwayat semua verifikasi bisa dilihat & diekspor (Excel / JSON) di tab Verifikasi pada dashboard.

Reset Password

Reset password memakai verifikasi WhatsApp yang sama: minta kode β†’ kirim ke admin β†’ setelah terverifikasi, buat password baru. Satu nomor telepon = satu user.

πŸ” Login Dashboard

Masuk dengan No. WhatsApp & password Anda untuk mengakses dashboard.