Developer Documentation

Dokumentasi
Anaryx Pay

Panduan lengkap integrasi payment gateway ke game RPG Maker kamu. Dari instalasi hingga transaksi pertama.

Plugin: v2.5.8 Platform: RPG Maker MZ Diperbarui: 27 Feb 2026

Pengenalan

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.

Apa yang bisa dilakukan Anaryx Pay?
Terima pembayaran dari pemain via GoPay, OVO, QRIS, Dana, dan transfer bank — langsung dari dalam game RPG Maker MZ/MV, baik di browser maupun Android APK (via AG APK Builder), tanpa perlu membuat backend sendiri.

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:

RPG Maker Game AGPay Plugin Anaryx Pay API Midtrans Database

Quick Start — 5 Menit

Ikuti 6 langkah berikut untuk memulai transaksi pertama kamu.

1

Daftar akun developer

Buka https://ananwildan.my.id/register.html dan buat akun. Sandbox API Key tersedia langsung setelah pendaftaran.

2

Download plugin AGPay.js

Download dari dashboard dan letakkan di folder js/plugins/ di project RPG Maker MZ kamu.

3

Aktifkan plugin & isi API Key

Buka Plugin Manager → aktifkan AGPay → isi parameter API Key dengan Sandbox Key dari dashboard, dan set Game ID yang unik.

4

Tambahkan item pertama

Di parameter Daftar Item Premium, klik tombol tambah dan isi key, nama, harga, serta ID item/weapon/armor di database RPG Maker.

5

Tambahkan Plugin Command di event

Di event map, panggil BuyItem dengan item key yang sesuai untuk memulai alur pembelian.

6

Test di browser dengan kartu Sandbox

Jalankan game di browser, klik event beli, login/guest, lalu bayar. Kartu test Midtrans: 4811 1111 1111 1114 | CVV: 123 | Exp: 01/25

Instalasi Plugin

Persyaratan
KomponenVersiKeterangan
RPG Maker MZ1.0+Semua versi MZ didukung
AGPay.jsv2.5.8File plugin utama, download dari dashboard
Koneksi InternetWajib aktif saat transaksi berlangsung
AG APK BuilderOpsional — untuk build ke Android APK
Struktur Folder
YourGame/ ├── js/ │ └── plugins/ │ └── AGPay.js ← taruh di sini ├── img/ └── index.html
Android WebView (AG APK Builder)
Plugin mendeteksi AGBridge secara otomatis. Tidak ada konfigurasi tambahan — checkout page akan terbuka via AGBridge.openWebView() dengan CSS scroll fix otomatis agar tampilan tidak terpotong.

Parameter Plugin

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.

Koneksi & Identitas
ParameterTipeDefaultWajibKeterangan
apiKeystring axp_sandbox_ WAJIB API Key dari dashboard. Awalan axp_sandbox_ untuk testing, axp_live_ untuk produksi.
serverUrlstring https://ananwildan.my.id/api WAJIB URL endpoint API Anaryx Pay. Jangan ubah kecuali self-host.
baseUrlstring https://ananwildan.my.id WAJIB URL root untuk halaman HTML (checkout, auth form). Jangan ubah kecuali self-host.
gameIdstring my_game_v1 WAJIB Identifier unik game. Gunakan huruf, angka, underscore. Contoh: mygame_v1
Polling & Timeout
ParameterTipeDefaultWajibKeterangan
pollIntervalnumber 3 OPSIONAL Interval cek status pembayaran dalam detik. Min: 2, Max: 10.
pollMaxTrynumber 200 OPSIONAL Maksimal polling sebelum timeout. Default 200 × 3 detik ≈ 10 menit.
Variable & Switch
ParameterTipeDefaultWajibKeterangan
resultSwitchIdswitch 1 OPSIONAL Switch global yang jadi ON saat item permanent berhasil dibeli.
resultVarIdvariable 1 OPSIONAL Variable hasil pembayaran. 1=sukses, 2=cancel, 3=timeout, 0=idle.
loginResultVarIdvariable 3 OPSIONAL Variable status login player. 1=login, 0=belum login.
orderVarIdvariable 2 OPSIONAL Variable yang menyimpan Order ID transaksi aktif.
playerNameVarIdvariable 4 OPSIONAL Variable yang menyimpan display name/username player yang sedang login.
Pesan Kustom v2.5.8
ParameterDefaultKeterangan
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.
Pengaturan Lainnya
ParameterTipeDefaultWajibKeterangan
syncOnStartboolean true OPSIONAL Sync item yang dimiliki dari server otomatis saat game start.
cacheTtlMinutesnumber 60 OPSIONAL Berapa menit cache owned items berlaku sebelum sync ulang ke server.
useCustomPaymentPageboolean true OPSIONAL Gunakan halaman checkout kustom Anaryx Pay. Jika false, redirect langsung ke URL Midtrans.
debugModeboolean false OPSIONAL Tampilkan log detail di browser console dengan prefix [AGPay]. Aktifkan saat development.

Konfigurasi Item Premium

Setiap item didefinisikan di parameter Daftar Item Premium (itemList). Klik tombol tambah di Plugin Manager untuk menambah item baru.

Struktur ItemDef
FieldTipeDefaultWajibKeterangan
keystring WAJIB Identifier unik item. Gunakan huruf kapital dan underscore. Contoh: SWORD_01. Jangan pernah diubah setelah ada pemain yang membeli.
namestring WAJIB Nama item yang ditampilkan ke player di UI pembayaran.
pricenumber10000 WAJIB Harga dalam Rupiah. Minimum 1000.
consumablebooleanfalse OPSIONAL true = bisa dibeli berkali-kali, stok maks 99. false = beli sekali, selamanya dimiliki (permanent).
switchIdswitch0 OPSIONAL Switch yang otomatis jadi ON saat item dimiliki. Hanya untuk item permanent.
weaponIdweapon0 OPSIONAL ID senjata dari database RPG Maker yang diberikan ke party saat beli berhasil.
armorIdarmor0 OPSIONAL ID armor dari database RPG Maker yang diberikan ke party.
itemIditem0 OPSIONAL ID item dari database RPG Maker yang diberikan ke party.
itemQtynumber1 OPSIONAL Jumlah item yang diterima per pembelian.
variableIdvariable0 OPSIONAL Override variable hasil bayar untuk item ini, menggantikan parameter global resultVarId.
commonEventIdcommon_event0 OPSIONAL Common Event yang dipanggil otomatis setelah pembayaran berhasil.
Contoh — Item Permanent (Senjata)
{ "key" : "PREMIUM_SWORD", "name" : "Pedang Legendaris", "price" : 50000, "consumable" : false, "switchId" : 10, // Switch 10 jadi ON saat dimiliki "weaponId" : 5, // ID senjata di database RPG Maker "itemQty" : 1, "commonEventId": 3 // Jalankan Common Event 3 setelah beli }
Contoh — Item Consumable (Potion)
{ "key" : "HEALTH_POTION", "name" : "Health Potion x5", "price" : 10000, "consumable" : true, // bisa dibeli berkali-kali, stok maks 99 "itemId" : 1, // ID item di database RPG Maker "itemQty" : 5, // 5 item per pembelian "variableId" : 5 // simpan hasil ke Variable 5 }
Penting
Setiap key item harus unik dan konsisten. Jangan pernah ganti key setelah ada pemain yang membeli item tersebut, karena data kepemilikan disimpan berdasarkan key ini.

Plugin Commands

Semua command dipanggil dari event RPG Maker MZ via Plugin Command → pilih AGPay.

BuyItem Memulai proses pembelian item premium
ArgumenTipeWajibKeterangan
itemKeystringWAJIBKey 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).

Event — Contoh Penggunaan
◆Plugin Command:AGPay - BuyItem itemKey : HEALTH_POTION ◆Conditional Branch: Variable[1] = 1 ◆Text:Pembelian berhasil! +5 Health Potion. ◆Else ◆Text:Pembayaran dibatalkan.
ShowAuthForm Membuka form login / register player
ArgumenNilaiKeterangan
modelogin / registerMode 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.

CheckOwned Cek apakah player memiliki suatu item → set Switch
ArgumenTipeKeterangan
itemKeystringKey item yang ingin dicek.
resultSwitchIdswitchSwitch 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.

PlayerLogout Logout player yang sedang aktif

Menghapus session dari localStorage, mengosongkan variable nama dan status login, serta menghapus cache item. Tidak ada argumen tambahan.

SyncPurchases Sync item yang dimiliki dari server secara paksa

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.

RestoreItems Restore item premium ke inventory dari cache lokal

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.

CancelPayment Batalkan transaksi yang sedang berjalan

Menghentikan polling, menutup popup pembayaran, dan membersihkan data transaksi aktif dari localStorage. Tidak ada argumen tambahan.

CheckStatus Cek status pembayaran terakhir → simpan ke Variable
ArgumenTipeKeterangan
targetVarIdvariableVariable tujuan. 1=settlement, 2=pending, 3=lainnya.

Query status ke server berdasarkan Order ID yang tersimpan di variable orderVarId.

Autentikasi Player

Tipe Akun Player
TipeDeskripsiBisa Beli?Data Tersimpan?
Registered Login dengan email & password ✓ Ya ✓ Permanent di server
Guest Login tanpa akun, token sementara ✓ Ya ⚠ Selama session aktif
Event — Cek Status Login
◆Conditional Branch: Variable[3] = 1 // loginResultVarId = 3 ◆Text:Selamat datang, \V[4]! // V[4] = playerNameVarId ◆Else ◆Plugin Command:AGPay - ShowAuthForm mode : login

Alur Pembayaran

Alur normal dari event BuyItem dipanggil hingga item masuk inventory:

BuyItem Buat Transaksi Popup Checkout Polling Status Item → Inventory
Resume Transaksi (v2.5.8)
Jika pemain menutup game sebelum pembayaran selesai, URL checkout disimpan di localStorage. Saat BuyItem dipanggil lagi, popup lama dibuka ulang otomatis — bukan memulai transaksi baru.

Kode hasil pembayaran yang disimpan ke Variable:

Nilai VariableStatusKeterangan
0IdleBelum ada transaksi / setelah reset
1✓ SuksesPembayaran berhasil (settlement)
2✗ CancelDibatalkan oleh player atau expire
3⏱ TimeoutPolling melebihi pollMaxTry

JavaScript API

Semua fungsi tersedia melalui global object window.AGPay. Bisa dipanggil dari Script Call RPG Maker atau plugin JS lain.

Metode
AGPay.buyItem('ITEM_KEY'); // Memulai pembelian AGPay.showAuthForm('login'); // Buka form auth ('login' / 'register') AGPay.playerLogout(); // Logout player AGPay.syncOwned(true); // Sync dari server (true = paksa) AGPay.applyOwnedToGame(); // Apply owned ke inventory tanpa network AGPay.cancel(); // Batalkan transaksi aktif AGPay.resumeTransaction(); // Resume transaksi yang tertunda AGPay.isOwned('ITEM_KEY'); // → boolean — cek kepemilikan AGPay.isLoggedIn(); // → boolean — akun terdaftar aktif AGPay.isGuest(); // → boolean — mode tamu aktif AGPay.getPlayer(); // → object|null — data player aktif
Properties (read-only)
AGPay.isActive // boolean — ada transaksi berjalan AGPay.currentOrderId // string|null — order ID transaksi aktif AGPay.currentItemKey // string|null — item key transaksi aktif AGPay.ownedItems // object — { [itemKey]: true } AGPay.consumableQty // object — { [itemKey]: number } AGPay.items // object — semua item yang terdaftar

RPG Maker MV

🕹️
Dokumentasi MV

Plugin AGPay versi RPG Maker MV sedang dalam pengembangan dengan fitur yang setara versi MZ.

COMING SOON

REST API

Dokumentasi Lengkap Segera Hadir
Preview endpoint tersedia di bawah. Dokumentasi request/response lengkap sedang disiapkan.
Base URL & Headers Wajib
Base URL: https://ananwildan.my.id/api Headers wajib di setiap request: X-API-Key : axp_sandbox_xxxxxxxxxxxxxxxxxxxx X-Game-ID : my_game_v1 Content-Type : application/json

Dokumentasi endpoint lengkap (request, response, error codes) sedang disiapkan.

COMING SOON

Changelog

v2.5.8 Terbaru 27 Feb 2026
[FIX #5] WebView Android terpotong / tidak bisa scroll
AGBridge.openWebView kini mengirim extra param ?agpay_webview=1. Checkout page mendeteksi flag ini dan meng-inject meta viewport + CSS khusus agar tampilan tidak terpotong dan bisa di-scroll di Android WebView.
[FIX #6] Error koneksi — pesan custom
Parameter baru: noInternetMsg, networkErrorMsg. Setiap fetch() kini dibungkus try-catch dengan deteksi TypeError (network fail) vs error server. Pesan yang muncul lebih informatif untuk pemain.
[FIX #7] Resume transaksi aktif
Sebelumnya jika ada transaksi aktif dan BuyItem dipanggil lagi, muncul error. Sekarang plugin mengambil URL checkout terakhir dari localStorage dan membuka kembali popup secara otomatis. Parameter baru: resumeMsg.

v2.5.7 Feb 2026

Perbaikan sistem consumable qty cache, auto-restore saat load scene, dan berbagai bug fix stabilitas polling transaksi.

v2.5.0 – v2.5.6 Jan–Feb 2026

Rilis awal plugin dengan fitur dasar: item permanent & consumable, auth player (login/register/guest), polling pembayaran, dan integrasi Midtrans Snap.