← Semua Integrasi Panduan
Panduan Integrasi · API / BACKEND / Mobil

Mengintegrasikan Crypto Payments dengan MochiPay API

Create and query payment orders from your application. PHP Demo 1.1.8 supports PHP 7.0–8.4 and provides order.php, callback.php, checkout.php with both presentation branches, bundled local dialog assets and an English README. Use on-site (default) or HPP with the same payment order.

Demo walkthrough · konfigurasi ilustratif · gunakan pembayaran nyata kecil untuk mengkonfirmasi pengaturan Anda sendiri.

Perintah, di situs atau HPP Checkout, langsung menerima dompet dan konfirmasi
Payment-flow illustration. On-site and HPP use the same payment order; your server verifies its final status.

Lihat hasil pembayaran lengkap

Pernyataan verifikasi cek dan hasil pesanan dan dompet yang harus diperiksa

Demo illustration with sample values. Verify these outcomes using a real small payment in your own setup; the checkout amount and confirmation requirements depend on the order.

01 · Persiapan Anda MochiPay Akun

  1. Membuat akun dan Mengaktifkan langganan.
  2. Terbuka Dompet, pilih Add HD Wallet → Generate New, dengan aman backup frasa pemulihan dan simpan wallet.
  3. Menetapkan nama layar yang dapat diidentifikasi di Profil.
  4. Terbuka Kredensial API dan menyalin Anda API Kunci dan disimpan API Jika tidak ada rahasia disimpan, regenerasi untuk pertama kalinya dan simpan dengan aman. regenerasi rahasia yang ada menghalangi integrasi yang menggunakan rahasia sebelumnya.

Bersedia ketika: langganan dan menerima dompet Anda aktif, dan Anda memiliki kredibilitas yang diperlukan di bawah ini.

Lihat setup akun yang diilustrasikan

02 · Mengkonfigurasi PHP Demo

Download and extract the PHP Demo. Upload the entire extracted directory, including portable/ and its QR-code license, to a PHP 7.0–8.4 server with cURL, JSON, sessions, secure random generation, private writable temporary storage and HTTPS. Protect the demo form as an administrator/staging tool; use your durable order database for production. Edit the configuration at the top of order.php.

Terbuka : Server-side order.php configuration

menetapkanApa yang harus dimasukkan
MOCHIPAY_BASE_URLhttps://mochi.bz
MOCHIPAY_API_KEYpedagang Anda API Kunci
MOCHIPAY_API_SECRETyang diselamatkan API Rahasia
MOCHIPAY_CHECKOUT_MODEON_SITE (dengan default) atau HPP
MOCHIPAY_DEMO_PUBLIC_URLAbsolute Anda HTTPS URL direktori demo, terutama di belakang proxy
API / PHP Demo konfigurasi ilustrasi
Configuration illustration; appearance varies by platform version. The table contains the full values.

yang dibekalkan PHP Penggunaan demo CURLOPT_SSL_VERIFYPEER => false dalam permintaan cURL. teruskan API Rahasia dalam konfigurasi server-side. jangan pernah meletakkannya di browser JavaScript.

Bersedia ketika: order.php loads without the credential or cURL configuration error.

Pilih di situs atau HPP

Modepengalaman pelanggantanggung jawab server
Pada situs (default)Dialog pembayaran di domain Anda sendiri, dengan jumlah yang tepat, alamat, jaringan, QR dan statusnya.Create and store the payment binding; query through your own backend and return only a safe payment view.
HPPMengalihkan kembali ke yang dikembalikan payment_url pada MochiPay.Simpan link yang sama dan verify callbacks/returns server-to-server.

Mode Checkout adalah preferensi integrasi Anda, bukan API Kedua link menggunakan satu perintah.Jangan membuat perintah lain saat menukar mode.Classic SaaS mendukung HPP Hanya saja.

All five methods are available: USDT_TRC20, USDC_ERC20, BTC_BITCOIN, ETH_ERC20 and SOL_SOLANA. UP is the default unique amount direction; DOWN is also supported. Enable a receiving wallet for each offered method.

03 · Menempatkan dan membayar perintah ujian

Open order.php. Create a small demo order using a unique merchant order reference and a configured payment method. Select ON_SITE or HPP; open the preferred link shown after creation. The result also offers Embedded store checkout and PHP HPP redirect links; both are implemented in checkout.php. The alternative link uses the same order.

  1. Menyelaras aset dan jaringan yang dipilih, dan mengirimkan jumlah yang tepat yang ditampilkan di halaman pembayaran.
  2. mengirimkan yang Jumlah yang tepat di halaman pembayaran Jangan mengelilingi atau menggunakan alamat dari pesanan yang berbeda.
  3. Tunggu untuk pengesahan blockchain yang diperlukan dan MochiPay Perintah untuk menjadi PAID.

The store/API example may price the product in USD. MochiPay locks the conversion when creating the order; unique amount adjustments can change the final payable amount. The checkout value is the amount to send.

Pemeriksaan Kesuksesan : dan yang MochiPay Pesanan menunjukkan PAID, dengan transaksi tercatat. membuka halaman pengembalian browser sendiri tidak membuktikan pembayaran.

04 · Memeriksa hasil dan penerimaan dompet

Query the order by the system order_id from your application. Accept payment only after the authenticated query is PAID and matches your stored system ID, merchant reference, original amount/currency, selected asset/network, receiving address, exact payable amount and expected received amount. Fulfill through an atomic, idempotent local transaction. callback.php demonstrates this verification for notifications and browser returns, using private demo records. It does not fulfill orders; replace temporary records and the callback TODO with your production database and fulfillment transaction. Read the bundled README.

Match the payment transaction and receiving address with your MochiPay order. Review the receiving wallet or blockchain explorer. Funds are already in your receiving wallet; there is no platform withdrawal request.

Gunakan dompet yang kompatibel dan tunggu konfirmasi blockchain saat memindahkan dana. Baca Panduan Manajemen Deposit

Pengembalian dan jumlah yang tepat

Bertahan usaha sebelum membuat perintah. PHP Demo Menyelamatkan request_id dan beban yang tepat sebelum membuat pesanan.Selepas timout tanpa ID sistem yang disimpan, mengembalikan beban yang sama dan request_id· Seorang yang dikenal order_id yang dikehendaki. untuk rekaman yang lebih tua tanpa request_id, tanyakan referensi pedagang yang unik sebelum apa pun yang baru dicipta. menyimpan nilai respons dekimal sebagai string sebelum PHP atau JavaScript Konversi float; paparan pay_amount dengan benar. yang terikat QR hanya mengenkripsi alamat, sehingga pelanggan harus memasukkan jumlah yang dipaparkan.

Ketika membangun sendiri API Pelanggan

Penggunaan X-Mochi-Key dan X-Mochi-SignatureMencipta Order menandakan yang tepat JSON Badan menggunakan basis64Kode HMAC-SHA256Perintah pertanyaan menandatangani baris pertanyaan yang tepat tanpa tanda pertanyaan utama.

Jika tes tidak selesai

Opsi pembayaran atau pesanan tidak dapat dibuat

Periksa status langganan, dompet penerima aktif, kode metode pembayaran, pengesahan dan pasangan kadar pertukaran untuk mata uang pesanan. Untuk plugins, juga periksa metode diaktifkan untuk jangkauan / pelanggan yang digunakan dalam tes.

Pembayaran masih menunggu atau tidak dibayar

Bandingkan aset, jaringan, alamat dan jumlah yang dapat dibayar dengan transaksi. tunggu untuk konfirmasi yang diperlukan. Jangan menandai pesanan toko yang dibayar berdasarkan hanya pada screenshot atau pengembalian browser.

MochiPay dibayar tetapi toko / aplikasi saya tidak diperbarui

Periksa apakah titik akhir pemberitahuan / panggilan balik dapat diakses secara umum HTTPS dan tidak diblokir oleh autentikasi atau firewall. mengkonfirmasi integrasi dapat meminta MochiPay dan memeriksa log kesalahan. link pembayaran sendiri update MochiPayBukan toko luar.

Permintaan Optional Deduplication

Integrasi yang ada terus bekerja tanpa request_idUntuk menggunakan ulang pesanan pembayaran yang sama setelah timout, tambahkan opsi request_id Untuk yang ditandatangani JSON sebelum menghitung tanda tangan HMAC yang ada.

{"merchant_order_id":"STORE-1001","amount":25,"currency":"USD","payment_method":"USDT_TRC20","request_id":"STORE-1001:create:v1"}

Use 1–64 ASCII letters, digits, dots, underscores, colons or hyphens. A key belongs to one merchant and one request payload. Reuse the same key and payload for retries; responses keep the existing fields and return the original order in its current state. Keys are retained without automatic expiry. For a genuinely new purchase, use a new key and a new merchant_order_id; an unpaid earlier purchase does not block the same amount on a different reference. WEB82.3 guards reference creation even without request_id. Query a legacy uncertain reference first; replay unchanged only after authenticated404 ORDER_NOT_FOUND with recovery_contract=merchant-reference-v1. Deploy the website API before recovery plugins.

HTTP 409 REQUEST_IN_PROGRESS: mengembalikan permintaan yang sama setelah keterlambatan Retry-After. HTTP 409 REQUEST_ID_CONFLICTKunci digunakan kembali dengan beban pembayaran yang berbeda.Jangan menghasilkan kunci baru hanya untuk melewati timout. ON_SITE dan HPP dapat menggunakan kedua-dua medan pembayaran yang dikembalikan atau payment_url Seperti sebelumnya.

Berkongsi Panduan ini

Kirim link ini kepada orang yang menetapkan integrasi Anda.