← Tutti i Guidi di integrazioneGuida di integrazione; API Home / Mobilità / MobileIntegrare i pagamenti Crypto con il 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 · configurazione illustrativa · utilizzare un piccolo pagamento reale per verificare la propria impostazione.
Payment-flow illustration. On-site and HPP use the same payment order; your server verifies its final status.Vedi il risultato di pagamento completo

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 • Preparare il tuo MochiPay conto
- Creare un account e Attivare un abbonamento.
- aperto Portafogli, selezionare Add HD Wallet → Generare Nuovo, salvare in modo sicuro la frase di recupero e salvare il portafoglio.
- Inserisci un riconoscibile nome di display facciale al cliente Profilo.
- aperto Credenziali API e copia il tuo API chiave e salvato API Se nessun segreto viene salvato, ripristinalo per la prima volta e lo memorizza in modo sicuro.Rigenerare un segreto esistente invalida le integrazioni che utilizzano il precedente segreto.
Preparazione quando: Il tuo abbonamento e ricevere la casella sono attivi, e hai le credenziali necessarie qui sotto.
Vedi la configurazione del conto illustratoScegliere il sito o HPP
| Modalità | esperienza clienti | Responsabilità del server |
|---|
| Il sito (default) | Il dialogo di pagamento sul proprio dominio, con l'importo esatto, l'indirizzo, la rete, QR e lo stato. | Create and store the payment binding; query through your own backend and return only a safe payment view. |
|---|
| HPP | Ritorno al ritorno payment_url di MochiPay. | Mantenere lo stesso legame e verificare gli appuntamenti/ritorni server-to-server. |
|---|
Il modo di check-out è la tua preferenza di integrazione, non una API campo. entrambi i collegamenti utilizzano un ordine. non creare un altro ordine quando si scambiano modi. HPP Solo di
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 • Posizionare e pagare un ordine di prova
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.
- Corrisponde all'attività selezionata e alla rete, e invia l'importo esatto visualizzato sulla pagina di pagamento.
- Invia il L'importo esatto sulla pagina di pagamento Non girare o riutilizzare un indirizzo da un ordine diverso.
- Aspettate le richieste conferme blockchain e le MochiPay Ordine di diventare
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.
Il check di successo: Il MochiPay L'ordine mostra PAID, con la transazione registrata. Aprire la pagina di ritorno del browser solo non dimostra il pagamento.
04 · Verificare il risultato e la ricezione del portafoglio
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.
Utilizzare un portafoglio compatibile e aspettare conferme blockchain quando si spostano fondi. Leggi la guida per la gestione del ricevimento-moneta
Recupero e quantità esatte
persiste il tentativo prima di creare ordine. PHP Demo salve request_id e il carico esatto prima di Creare Ordine. Dopo un timout senza un ID di sistema salvato, ritirare lo stesso carico e request_idUn conosciuto order_id E’ chiesto, invece, per i record più vecchi senza request_id, chiedere il riferimento unico del commerciante prima di qualsiasi nuova Create. preservare i valori di risposta decimale come righe prima PHP o JavaScript Conversione flotta; display pay_amount E’ vero, il legato QR codifica solo l'indirizzo, quindi i clienti devono inserire l'importo visualizzato.
Quando si costruisce la propria API Cliente
Utilizzo X-Mochi-Key e X-Mochi-SignatureCreare ordine segna l'esatto JSON Il corpo utilizzando la base64Il codice HMAC-SHA256.Query Order segna l'esatta riga di query senza il segno di query principale.
Se il test non è completato
L'opzione di pagamento o l'ordine non può essere creato
Verificare lo stato di abbonamento, un portafoglio attivo ricevente, il codice del metodo di pagamento, le credenziali e la coppia di tassi di cambio per la valuta di ordine. Per i plug-ins, anche verificare il metodo è abilitato per il contenuto di magazzino/cliente utilizzato nel test.
Il pagamento è ancora in attesa o sottopagato
Confronta l'attività, la rete, l'indirizzo e l'importo pagato esatto con la transazione. Attendere le conferme richieste. Non segnalare un ordine di magazzino pagato basato solo su una screenshot o il ritorno del browser.
MochiPay pagato ma il mio negozio/applicazione non è aggiornato
Verificare che i punti finali di notifica/callback siano accessibili al pubblico HTTPS e non bloccato dall'autenticazione o da un firewall. conferma l'integrazione può chiedere MochiPay e verificare i suoi log di errore. link di pagamento solo aggiornamento MochiPayNon un negozio esterno.
Opzionale richiesta di deduplicazione
L'integrazione esistente continua a funzionare senza request_idPer riutilizzare lo stesso ordine di pagamento dopo un timout, aggiungere un opzionale request_id per i firmati JSON prima di computarne la firma HMAC esistente.
{"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_PROGRESSRitorna la stessa richiesta dopo il ritardo di ritorno. HTTP 409 REQUEST_ID_CONFLICT: la chiave è stata riutilizzata con un'altra carica di pagamento. non generare una nuova chiave solo per passare un timout. ON_SITE e HPP possono entrambi utilizzare i campi di pagamento restituiti o payment_url come prima.