Skip to navigation

Dompet Pendanaan

Dompet Pendanaan: integrasi Agent Java SDK v0.3.0, contoh, parameter, dan semantik respons.

View as Markdown

Panduan ini menargetkan Agent Java SDK v0.3.0, Java 8+, dan kontrak publik yang diberi tag. Contoh dijalankan di backend mitra setelah menginisialisasi client di Mulai Cepat.

Contoh prasyarat

Cuplikan Java membagikan impor ini. Inisialisasi client menggunakan Quick Start dan dapatkan platformUserId dari pengikatan yang disimpan. Contoh ID pengguna/pesanan harus diganti dengan nilai Anda yang tetap.

import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;

Pertanyaan dan transfer dompet

Bedakan ketiga dompet tersebut

dompetSumber keseimbanganmenggunakan
Dompet pengguna Merchant sendiriSistem akuntansi Merchant sendiriSaldo yang tersedia pengguna di sisi pedagang
Pendanaan PlatformqueryUserAssets dari fundingDana perdagangan detik dan transfer timbal balik Pendanaan/Kontrak
Kontrak PlatformBidang aset kontrak queryUserAssetsMargin kontrak perpetual dan saldo yang dapat ditransfer

queryAccount Kueri akun margin platform pedagang, bukan dompet pengguna pedagang. Antarmuka ini tidak memiliki parameter environment dan tidak dapat ditanyakan sebagai aset pengguna yang disimulasikan.

Kueri dua dompet platform pengguna yang disimulasikan:

QueryUserAssetsResponse assets = client.queryUserAssets(
QueryUserAssetsRequest.of(platformUserId)
.withFunding()
.withEnvironment(ExecutionEnvironment.SIMULATED));

Antarmuka: POST /v1/agent/query-user-assets. Pendanaan diminta hanya ketika includeFunding=true; semantik kueri aset kontrak asli digunakan secara default.

bidang responsarti
walletBalance, availableBalance, frozenMargin, usedMargin, isolatedMarginJumlah terkait dompet kontrak
funding.assetCodeSaat ini USDT
funding.availableAmount, heldAmount, totalAmountPendanaan tersedia, ditempati dan jumlah total
funding.materializedApakah akun Pendanaan telah terwujud?
environmentBidang ini digaungkan ketika lingkungan diteruskan secara eksplisit; permintaan lama yang menghilangkan lingkungan tidak mengembalikan bidang ini.
isSimulatedUserKlasifikasi akun; tidak dapat menggantikan pemilihan lingkungan perdagangan

Jumlah ditangani sebagai string atau BigDecimal, bukan float/double.

Arah transfer dana

Buat: POST /v1/agent/wallet-transfer, SDK walletTransfer.

directionAliran danatransferAll
PARTNER_TO_FUNDINGPedagang → Pendanaan PlatformJumlah tetap saja
FUNDING_TO_PARTNERPendanaan Platform → PedagangJumlah tetap saja
FUNDING_TO_CONTRACTPlatform lingkungan yang sama Pendanaan → KontrakMendukung jumlah tetap atau semua dana yang dapat ditarik
CONTRACT_TO_FUNDINGPlatform lingkungan yang sama Kontrak → PendanaanMendukung jumlah tetap atau semua dana yang dapat ditarik

Mata uang saat ini hanya mendukung USDT. Jumlah tetap harus berupa string positif hingga 8 tempat desimal dan tidak boleh menggunakan notasi ilmiah. Ketika transferAll=true, hilangkan amount dan catat sebagai respon akhir amount; “semua” hanya mencakup dana yang dapat ditarik.

Contoh: Merchant mentransfer 10 USDT ke Pendanaan simulasi. Pertama-tama simpan pesanan bisnis dan lingkungan di sistem pedagang, lalu kirim permintaan:

String fundingOrderNo = "SIM-FUNDING-20261010-000001";
WalletTransferResponse transfer = client.walletTransfer(
WalletTransferRequest.of(fundingOrderNo, "merchant-user-001",
"PARTNER_TO_FUNDING", "10.00000000", false)
.withEnvironment(ExecutionEnvironment.SIMULATED));

Pendanaan Transfer semua dana yang dapat ditransfer ke Kontrak simulasi:

WalletTransferResponse move = client.walletTransfer(
WalletTransferRequest.of("SIM-F2C-20261010-000001", "merchant-user-001",
"FUNDING_TO_CONTRACT", null, true)
.withEnvironment(ExecutionEnvironment.SIMULATED));

Operasi yang sama harus terus menggunakan agentOrderNo yang asli; operasi yang berbeda dan lingkungan yang berbeda menggunakan nomor pesanan yang berbeda. Mengubah jumlah, pengguna, arah atau lingkungan dengan nomor pesanan yang sama akan ditolak. Transfer Pendanaan/Kontrak hanya dapat dilakukan dalam lingkungan yang sama, dan dana simulasi tidak dapat ditransfer ke dana nyata.

Konfirmasi hasil dan pemulihan hasil yang tidak diketahui

Respons pendanaan diwakili oleh status, SUCCESS, PROCESSING, atau FAILED, dan dikembalikan orderNo, direction, currency, amount, resultCode, dll. code=0 hanya berarti permintaan berhasil diproses dan Anda harus terus menilai status.

hasilPemrosesan pedagang
SUCCESSSelesaikan pemrosesan akuntansi lokal berdasarkan jumlah sebenarnya
PROCESSINGSimpan secara lokal untuk konfirmasi dan periksa pesanan aslinya
HTTP Batas waktu, kesalahan jaringan, hasil tidak dapat diuraikanHasilnya dianggap tidak diketahui dan urutan aslinya dipertanyakan; itu tidak bisa langsung ditentukan sebagai kegagalan atau membuat tatanan baru dan coba lagi.
Teridentifikasi FAILEDMelepaskan reservasi lokal sesuai dengan hasil kegagalan yang jelas; membuat tatanan bisnis baru ketika bisnis perlu dimulai kembali

Kueri pendanaan menggunakan antarmuka khusus POST /v1/agent/wallet-transfer-status:

WalletTransferResponse recovered = client.queryWalletTransfer(
WalletTransferQueryRequest.of(fundingOrderNo)
.withEnvironment(ExecutionEnvironment.SIMULATED));

Gunakan titik akhir khusus ini untuk memulihkan operasi Pendanaan asli; queryOrder tidak dapat menggantikannya. Simpan lingkungan asli dan teruskan secara eksplisit selama pemulihan. Jika environment dihilangkan dari wallet-transfer-status, server menggunakan lingkungan yang disimpan pada pesanan asli, termasuk pesanan simulasi. Lingkungan yang secara eksplisit bertentangan mengembalikan 102002 (order environment mismatch). Ketika pemanggil menghilangkan lingkungan, responsnya juga menghilangkan environment; ini tidak berarti pesanan asli adalah pesanan produksi.

Setoran dan penarikan lokal pedagang bersifat idempoten; pesanan dan saldo yang persisten dicadangkan sebelum inisiasi, dan dicadangkan untuk konfirmasi ketika hasilnya tidak diketahui. Akses pendanaan menggunakan kueri khusus untuk mengonfirmasi status akhir; jangan berasumsi bahwa metode transfer kontrak lama Webhook atau pembalikan berlaku secara otomatis untuk Pendanaan.

Alur transfer Kontrak yang ada

transfer, transferAllOut, reverse, queryOrder, listOrders terus memproses proses transfer kontrak asli. queryOrder menanyakan perintah transfer dana, listOrders adalah daftar rekonsiliasi transfer; alih-alih, Pertanyaan abadi digunakan untuk pesanan perdagangan abadi.

Respons pendanaan awal menggunakan orderStatus; respon Pendanaan menggunakan status, jangan dicampur. Transfer asli Webhook diverifikasi menggunakan X-Agent-Timestamp, X-Agent-Nonce, X-Agent-Signature, dan teks tanda tangan asli adalah timestamp + nonce + rawBody; badan permintaan asli diverifikasi terlebih dahulu, kemudian dideserialisasi dan idempoten. Notifikasi lingkungan simulasi eksplisit berisi environment=SIMULATED, notifikasi produksi tetap kompatibel dengan kolom lama. Jumlah, nomor pesanan, status dan lingkungan perlu diperiksa dengan pesanan bisnis lokal.

Sumber dan panduan terkait

Bidang permintaan pendanaan

BidangDiperlukanArti
agentOrderNoYaNomor pesanan mitra yang unik secara global; bertahan sebelum mengirim.
agentUserId / platformUserIdSatuIdentifikasi pengguna terikat; jika keduanya disediakan, keduanya harus cocok.
directionYaSalah satu dari empat arah yang didokumentasikan di atas.
currencyBawaan USDTHanya USDT yang didukung.
transferAllBawaan salahHanya transfer internal Pendanaan/Kontrak yang mendukung kebenaran.
amountBersyaratString desimal positif untuk transfer tetap; hilangkan untuk transferAll=true.
environmentOpsionalProduksi bila dihilangkan untuk transfer baru; SIMULATED memilih dana simulasi.

Mendanai bidang respons

BidangArti
orderNoPengidentifikasi operasi yang dikembalikan; simpan di samping nomor pesanan mitra asli.
statusSUCCESS / PROCESSING / FAILED; menentukan penyelesaian bisnis.
direction / currencyArah transfer dan aset yang dikonfirmasi.
amountJumlah aktual yang ditransfer sebagai string.
transferAllApakah operasi ini meminta semua dana yang dapat ditarik.
agentUserId / platformUserIdIdentitas pengguna dikembalikan; bandingkan dengan pesanan yang disimpan.
resultCodeDetail hasil operasi; simpan untuk rekonsiliasi dan dukungan.
environmentDigaungkan ketika penelepon secara eksplisit memberikannya; ketidakhadiran bukan merupakan bukti produksi untuk kueri status pesanan asli.