Panduan lengkap integrasi payment gateway ke game RPG Maker kamu. Dari instalasi hingga transaksi pertama.
Anaryx Pay adalah platform payment gateway yang dirancang khusus untuk developer game indie Indonesia yang menggunakan RPG Maker. Integrasikan sistem pembelian item premium ke dalam game kamu tanpa kerumitan menggunakan plugin siap pakai.
Plugin AGPay.js menangani seluruh alur: membuat transaksi, membuka popup checkout Midtrans, memantau status pembayaran, hingga memasukkan item ke inventory pemain secara otomatis setelah pembayaran berhasil.
Alur kerja sistem secara keseluruhan:
Ikuti 6 langkah berikut untuk memulai transaksi pertama kamu.
Buka https://ananwildan.my.id/register.html dan buat akun. Sandbox API Key tersedia langsung setelah pendaftaran.
Download dari dashboard dan letakkan di folder js/plugins/ di project RPG Maker MZ kamu.
Buka Plugin Manager → aktifkan AGPay → isi parameter API Key dengan Sandbox Key dari dashboard, dan set Game ID yang unik.
Di parameter Daftar Item Premium, klik tombol tambah dan isi key, nama, harga, serta ID item/weapon/armor di database RPG Maker.
Di event map, panggil BuyItem dengan item key yang sesuai untuk memulai alur pembelian.
Jalankan game di browser, klik event beli, login/guest, lalu bayar. Kartu test Midtrans: 4811 1111 1111 1114 | CVV: 123 | Exp: 01/25
| Komponen | Versi | Keterangan |
|---|---|---|
| RPG Maker MZ | 1.0+ | Semua versi MZ didukung |
| AGPay.js | v2.5.8 | File plugin utama, download dari dashboard |
| Koneksi Internet | — | Wajib aktif saat transaksi berlangsung |
| AG APK Builder | — | Opsional — untuk build ke Android APK |
Semua parameter diisi di Plugin Manager RPG Maker MZ. Klik dua kali plugin AGPay untuk membuka editor parameter. Tombol Copy di setiap tabel akan menyalin nama parameter beserta nilai defaultnya.
| Parameter | Tipe | Default | Wajib | Keterangan |
|---|---|---|---|---|
| apiKey | string | axp_sandbox_ | WAJIB | API Key dari dashboard. Awalan axp_sandbox_ untuk testing, axp_live_ untuk produksi. |
| serverUrl | string | https://ananwildan.my.id/api | WAJIB | URL endpoint API Anaryx Pay. Jangan ubah kecuali self-host. |
| baseUrl | string | https://ananwildan.my.id | WAJIB | URL root untuk halaman HTML (checkout, auth form). Jangan ubah kecuali self-host. |
| gameId | string | my_game_v1 | WAJIB | Identifier unik game. Gunakan huruf, angka, underscore. Contoh: mygame_v1 |
| Parameter | Tipe | Default | Wajib | Keterangan |
|---|---|---|---|---|
| pollInterval | number | 3 | OPSIONAL | Interval cek status pembayaran dalam detik. Min: 2, Max: 10. |
| pollMaxTry | number | 200 | OPSIONAL | Maksimal polling sebelum timeout. Default 200 × 3 detik ≈ 10 menit. |
| Parameter | Tipe | Default | Wajib | Keterangan |
|---|---|---|---|---|
| resultSwitchId | switch | 1 | OPSIONAL | Switch global yang jadi ON saat item permanent berhasil dibeli. |
| resultVarId | variable | 1 | OPSIONAL | Variable hasil pembayaran. 1=sukses, 2=cancel, 3=timeout, 0=idle. |
| loginResultVarId | variable | 3 | OPSIONAL | Variable status login player. 1=login, 0=belum login. |
| orderVarId | variable | 2 | OPSIONAL | Variable yang menyimpan Order ID transaksi aktif. |
| playerNameVarId | variable | 4 | OPSIONAL | Variable yang menyimpan display name/username player yang sedang login. |
| Parameter | Default | Keterangan |
|---|---|---|
| noInternetMsg | \C[2]Tidak ada koneksi internet.\nPastikan kamu terhubung ke internet lalu coba lagi. | Pesan saat koneksi internet tidak tersedia (TypeError dari fetch). Mendukung escape code RPG Maker. |
| networkErrorMsg | \C[2]Gagal terhubung ke server.\nCoba beberapa saat lagi atau hubungi support. | Pesan saat server tidak bisa dijangkau (error non-network). |
| resumeMsg | \C[14]Kamu masih punya transaksi yang belum selesai.\nMembuka kembali halaman pembayaran... | Pesan saat BuyItem dipanggil tapi ada transaksi yang belum selesai — checkout dibuka ulang otomatis. |
| Parameter | Tipe | Default | Wajib | Keterangan |
|---|---|---|---|---|
| syncOnStart | boolean | true | OPSIONAL | Sync item yang dimiliki dari server otomatis saat game start. |
| cacheTtlMinutes | number | 60 | OPSIONAL | Berapa menit cache owned items berlaku sebelum sync ulang ke server. |
| useCustomPaymentPage | boolean | true | OPSIONAL | Gunakan halaman checkout kustom Anaryx Pay. Jika false, redirect langsung ke URL Midtrans. |
| debugMode | boolean | false | OPSIONAL | Tampilkan log detail di browser console dengan prefix [AGPay]. Aktifkan saat development. |
Setiap item didefinisikan di parameter Daftar Item Premium (itemList). Klik tombol tambah di Plugin Manager untuk menambah item baru.
| Field | Tipe | Default | Wajib | Keterangan |
|---|---|---|---|---|
| key | string | — | WAJIB | Identifier unik item. Gunakan huruf kapital dan underscore. Contoh: SWORD_01. Jangan pernah diubah setelah ada pemain yang membeli. |
| name | string | — | WAJIB | Nama item yang ditampilkan ke player di UI pembayaran. |
| price | number | 10000 | WAJIB | Harga dalam Rupiah. Minimum 1000. |
| consumable | boolean | false | OPSIONAL | true = bisa dibeli berkali-kali, stok maks 99. false = beli sekali, selamanya dimiliki (permanent). |
| switchId | switch | 0 | OPSIONAL | Switch yang otomatis jadi ON saat item dimiliki. Hanya untuk item permanent. |
| weaponId | weapon | 0 | OPSIONAL | ID senjata dari database RPG Maker yang diberikan ke party saat beli berhasil. |
| armorId | armor | 0 | OPSIONAL | ID armor dari database RPG Maker yang diberikan ke party. |
| itemId | item | 0 | OPSIONAL | ID item dari database RPG Maker yang diberikan ke party. |
| itemQty | number | 1 | OPSIONAL | Jumlah item yang diterima per pembelian. |
| variableId | variable | 0 | OPSIONAL | Override variable hasil bayar untuk item ini, menggantikan parameter global resultVarId. |
| commonEventId | common_event | 0 | OPSIONAL | Common Event yang dipanggil otomatis setelah pembayaran berhasil. |
Semua command dipanggil dari event RPG Maker MZ via Plugin Command → pilih AGPay.
| Argumen | Tipe | Wajib | Keterangan |
|---|---|---|---|
| itemKey | string | WAJIB | Key item yang ingin dibeli. Harus cocok dengan key di Daftar Item Premium. |
Jika player belum login → form login terbuka otomatis, setelah login proses beli dilanjutkan. Jika ada transaksi yang belum selesai → popup checkout dibuka ulang secara otomatis (resume, v2.5.8).
| Argumen | Nilai | Keterangan |
|---|---|---|
| mode | login / register | Mode tampilan awal form auth. Default: login |
Setelah login/register berhasil, variable loginResultVarId di-set ke 1 dan item yang dimiliki di-sync dari server otomatis.
| Argumen | Tipe | Keterangan |
|---|---|---|
| itemKey | string | Key item yang ingin dicek. |
| resultSwitchId | switch | Switch yang di-set ON jika dimiliki, OFF jika tidak. |
Untuk consumable: Switch ON selama stok di inventory > 0. Untuk permanent: Switch ON jika pernah dibeli.
Menghapus session dari localStorage, mengosongkan variable nama dan status login, serta menghapus cache item. Tidak ada argumen tambahan.
Mengabaikan cache lokal dan mengambil data kepemilikan terbaru dari server. Berguna setelah transaksi dilakukan di luar game (misal beli via web). Tidak ada argumen tambahan.
Membaca cache lokal dan mengaplikasikan ulang semua item ke inventory party. Berguna saat load save game lama atau setelah inventory direset. Tidak ada argumen tambahan.
Menghentikan polling, menutup popup pembayaran, dan membersihkan data transaksi aktif dari localStorage. Tidak ada argumen tambahan.
| Argumen | Tipe | Keterangan |
|---|---|---|
| targetVarId | variable | Variable tujuan. 1=settlement, 2=pending, 3=lainnya. |
Query status ke server berdasarkan Order ID yang tersimpan di variable orderVarId.
| Tipe | Deskripsi | Bisa Beli? | Data Tersimpan? |
|---|---|---|---|
| Registered | Login dengan email & password | ✓ Ya | ✓ Permanent di server |
| Guest | Login tanpa akun, token sementara | ✓ Ya | ⚠ Selama session aktif |
Alur normal dari event BuyItem dipanggil hingga item masuk inventory:
Kode hasil pembayaran yang disimpan ke Variable:
| Nilai Variable | Status | Keterangan |
|---|---|---|
| 0 | Idle | Belum ada transaksi / setelah reset |
| 1 | ✓ Sukses | Pembayaran berhasil (settlement) |
| 2 | ✗ Cancel | Dibatalkan oleh player atau expire |
| 3 | ⏱ Timeout | Polling melebihi pollMaxTry |
Semua fungsi tersedia melalui global object window.AGPay. Bisa dipanggil dari Script Call RPG Maker atau plugin JS lain.
Plugin AGPay versi RPG Maker MV sedang dalam pengembangan dengan fitur yang setara versi MZ.
COMING SOONDokumentasi endpoint lengkap (request, response, error codes) sedang disiapkan.
COMING SOONPerbaikan sistem consumable qty cache, auto-restore saat load scene, dan berbagai bug fix stabilitas polling transaksi.
Rilis awal plugin dengan fitur dasar: item permanent & consumable, auth player (login/register/guest), polling pembayaran, dan integrasi Midtrans Snap.