Μετάβαση στην πλοήγηση

Πορτοφόλι χρηματοδότησης

Πορτοφόλι χρηματοδότησης: Agent Java SDK ενσωμάτωση v0.3.0, παραδείγματα, παράμετροι και σημασιολογία απόκρισης.

Προβολή ως Markdown

Αυτός ο οδηγός στοχεύει Agent Java SDK v0.3.0, Java 8+ και τη δημόσια σύμβαση με ετικέτα. Τα παραδείγματα εκτελούνται σε ένα backend συνεργάτη μετά την προετοιμασία του client στο Γρήγορη εκκίνηση.

Παράδειγμα προαπαιτούμενα

Τα αποσπάσματα Java μοιράζονται αυτές τις εισαγωγές. Αρχικοποιήστε το client χρησιμοποιώντας Γρήγορη εκκίνηση και αποκτήστε platformUserId από την αποθηκευμένη δέσμευση. Παραδείγματα αναγνωριστικών χρήστη/παραγγελιών πρέπει να αντικατασταθούν με τις δικές σας σταθερές τιμές.

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

Ερωτήματα και μεταφορές πορτοφολιού

Ξεχωρίστε τα τρία πορτοφόλια

πορτοφόλιΠηγή υπολοίπουχρήση
Το πορτοφόλι χρήστη του εμπόρουΤο λογιστικό σύστημα του ίδιου του εμπόρουΤο διαθέσιμο υπόλοιπο του χρήστη από την πλευρά του εμπόρου
Χρηματοδότηση πλατφόρμαςqueryUserAssets από fundingΔευτερόλεπτα διαπραγμάτευση κεφαλαίων και αμοιβαία μεταφορά χρηματοδότησης/Σύμβασης
Συμβόλαιο πλατφόρμαςΤο πεδίο περιουσιακών στοιχείων της σύμβασης queryUserAssetsΠεριθώριο αορίστου συμβολαίου και μεταβιβάσιμο υπόλοιπο

queryAccount Υποβάλετε ερώτημα στον λογαριασμό περιθωρίου της πλατφόρμας εμπόρου και όχι στο πορτοφόλι χρήστη του εμπόρου. Αυτή η διεπαφή δεν έχει παραμέτρους environment και δεν μπορεί να αναζητηθεί ως προσομοιωμένο στοιχείο χρήστη.

Ρωτήστε τα δύο πορτοφόλια πλατφόρμας των προσομοιωμένων χρηστών:

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

Διεπαφή: POST /v1/agent/query-user-assets. Η χρηματοδότηση ζητείται μόνο όταν includeFunding=true; Η σημασιολογία ερωτήματος περιουσιακών στοιχείων του αρχικού συμβολαίου χρησιμοποιούνται από προεπιλογή.

πεδία απόκρισηςέννοια
walletBalance, availableBalance, frozenMargin, usedMargin, isolatedMarginΠοσά που σχετίζονται με το πορτοφόλι συμβολαίου
funding.assetCodeΕπί του παρόντος USDT
funding.availableAmount, heldAmount, totalAmountΔιαθέσιμη χρηματοδότηση, κατειλημμένο και συνολικό ποσό
funding.materializedΕάν ο λογαριασμός Χρηματοδότησης έχει υλοποιηθεί;
environmentΑυτό το πεδίο επαναλαμβάνεται όταν το περιβάλλον μεταβιβάζεται ρητά. παλιά αιτήματα που παραλείπουν το περιβάλλον δεν επιστρέφουν αυτό το πεδίο.
isSimulatedUserΤαξινόμηση λογαριασμού; δεν μπορεί να αντικαταστήσει την επιλογή περιβάλλοντος συναλλαγών

Τα ποσά αντιμετωπίζονται ως συμβολοσειρές ή BigDecimal, όχι float/double.

Οδηγίες μεταφοράς χρηματοδότησης

Δημιουργία: POST /v1/agent/wallet-transfer, SDK walletTransfer.

directionΡοή κεφαλαίωνtransferAll
PARTNER_TO_FUNDINGΈμπορος → Χρηματοδότηση πλατφόρμαςΜόνο σταθερό ποσό
FUNDING_TO_PARTNERΧρηματοδότηση πλατφόρμας → ΈμποροςΜόνο σταθερό ποσό
FUNDING_TO_CONTRACTΠλατφόρμα ίδιου περιβάλλοντος Χρηματοδότηση → ΣυμβόλαιοΥποστηρίζει σταθερό ποσό ή όλα τα αναληφθέντα κεφάλαια
CONTRACT_TO_FUNDINGΠλατφόρμα ίδιου περιβάλλοντος Συμβόλαιο → ΧρηματοδότησηΥποστηρίζει σταθερό ποσό ή όλα τα αναληφθέντα κεφάλαια

Το τρέχον νόμισμα υποστηρίζει μόνο USDT. Το σταθερό ποσό πρέπει να είναι θετική συμβολοσειρά με έως και 8 δεκαδικά ψηφία και δεν μπορεί να χρησιμοποιήσει επιστημονική σημείωση. Όταν transferAll=true, παραλείψτε το amount και καταγράψτε το ως την τελική απόκριση amount. Το “όλα” περιλαμβάνει μόνο τα αποσυρόμενα κεφάλαια.

Παράδειγμα: Ο έμπορος μεταφέρει 10 USDT σε προσομοίωση χρηματοδότησης. Πρώτα αποθηκεύστε την επιχειρηματική παραγγελία και το περιβάλλον στο σύστημα εμπόρων και, στη συνέχεια, στείλτε το αίτημα:

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));

Μεταφορά χρηματοδότησης όλων των κεφαλαίων που μπορούν να μεταφερθούν στην προσομοιωμένη σύμβαση:

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

Η ίδια λειτουργία πρέπει να συνεχίσει να χρησιμοποιεί το αρχικό agentOrderNo. διαφορετικές λειτουργίες και διαφορετικά περιβάλλοντα χρησιμοποιούν διαφορετικούς αριθμούς παραγγελίας. Η αλλαγή του ποσού, του χρήστη, της κατεύθυνσης ή του περιβάλλοντος με τον ίδιο αριθμό παραγγελίας θα απορριφθεί. Οι μεταφορές χρηματοδότησης/συμβολαίου μπορούν να πραγματοποιηθούν μόνο εντός του ίδιου περιβάλλοντος και τα προσομοιωμένα κεφάλαια δεν μπορούν να μεταφερθούν σε πραγματικά κεφάλαια.

Επιβεβαίωση αποτελέσματος και ανάκτηση άγνωστου αποτελέσματος

Οι απαντήσεις χρηματοδότησης αντιπροσωπεύονται από status, SUCCESS, PROCESSING, ή FAILED, και επιστρέφονται orderNo, direction, currency, amount, resultCodeκ.λπ. code=0 σημαίνει μόνο ότι το αίτημα διεκπεραιώθηκε με επιτυχία και πρέπει να συνεχίσετε να κρίνετε status.

αποτέλεσμαΕπεξεργασία εμπόρου
SUCCESSΟλοκληρώστε την τοπική λογιστική επεξεργασία με βάση το πραγματικό ποσό
PROCESSINGΔιατηρήστε το τοπικό για επιβεβαίωση και ελέγξτε την αρχική παραγγελία
HTTP Λήξη χρονικού ορίου, σφάλμα δικτύου, το αποτέλεσμα δεν μπορεί να αναλυθείΤο αποτέλεσμα θεωρείται άγνωστο και ερωτάται η αρχική παραγγελία. δεν μπορεί να προσδιοριστεί άμεσα ως αποτυχία ή να δημιουργήσετε μια νέα παραγγελία και να προσπαθήσετε ξανά.
Αναγνωρίστηκε FAILEDΑπελευθερώστε την τοπική κράτηση σύμφωνα με το σαφές αποτέλεσμα αποτυχίας. δημιουργήστε μια νέα επιχειρηματική παραγγελία όταν η επιχείρηση πρέπει να ξεκινήσει ξανά

Το ερώτημα χρηματοδότησης χρησιμοποιεί την αποκλειστική διεπαφή POST /v1/agent/wallet-transfer-status:

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

Χρησιμοποιήστε αυτό το αποκλειστικό τελικό σημείο για να ανακτήσετε την αρχική λειτουργία χρηματοδότησης. Το queryOrder δεν μπορεί να το αντικαταστήσει. Αποθηκεύστε το αρχικό περιβάλλον και περάστε το ρητά κατά την ανάκτηση. Εάν το environment παραλειφθεί από το wallet-transfer-status, ο διακομιστής χρησιμοποιεί το περιβάλλον που είναι αποθηκευμένο στην αρχική παραγγελία, συμπεριλαμβανομένων των προσομοιωμένων παραγγελιών. Ένα περιβάλλον ρητά σε διένεξη επιστρέφει 102002 (order environment mismatch). Όταν ο καλών παραλείπει το περιβάλλον, η απόκριση παραλείπει επίσης το environment. Αυτό δεν σημαίνει ότι η αρχική παραγγελία είναι παραγγελία παραγωγής.

Οι τοπικές καταθέσεις και αναλήψεις των εμπόρων είναι ανίκανες. Οι επίμονες παραγγελίες και τα υπόλοιπα δεσμεύονται πριν από την έναρξη και δεσμεύονται για επιβεβαίωση όταν το αποτέλεσμα είναι άγνωστο. Η πρόσβαση χρηματοδότησης χρησιμοποιεί ένα αποκλειστικό ερώτημα για να επιβεβαιώσει την τελική κατάσταση. μην υποθέσετε ότι οι μέθοδοι μεταβίβασης της παλιάς σύμβασης Webhook ή αντιστροφής ισχύουν αυτόματα για τη Χρηματοδότηση.

Υφιστάμενη ροή μεταβίβασης συμβολαίου

Οι αρχικοί transfer, transferAllOut, reverse, queryOrder, listOrders συνεχίζουν να επεξεργάζονται την αρχική διαδικασία μεταφοράς συμβολαίου. Το queryOrder ζητά εντολές μεταφοράς κεφαλαίων, το listOrders είναι μια λίστα συμφωνίας μεταφοράς. αντί, Διαρκή ερωτήματα χρησιμοποιούνται για εντολές διαρκούς διαπραγμάτευσης.

Η αρχική απάντηση χρηματοδότησης χρησιμοποιεί orderStatus. η απάντηση χρηματοδότησης χρησιμοποιεί status, μην τα ανακατεύετε. Η αρχική μεταφορά Webhook επαληθεύεται χρησιμοποιώντας X-Agent-Timestamp, X-Agent-Nonce, X-Agent-Signature και το αρχικό κείμενο υπογραφής είναι timestamp + nonce + rawBody. το αρχικό σώμα του αιτήματος πρώτα επαληθεύεται, στη συνέχεια αποδεσμεύεται και είναι ανίσχυρο. Οι ρητές ειδοποιήσεις προσομοιωμένου περιβάλλοντος περιέχουν environment=SIMULATED, οι ειδοποιήσεις παραγωγής παραμένουν συμβατές με παλιά πεδία. Το ποσό, ο αριθμός παραγγελίας, η κατάσταση και το περιβάλλον πρέπει να ελεγχθούν με την τοπική επιχειρηματική παραγγελία.

Πηγή και σχετικοί οδηγοί

Πεδία αιτήματος χρηματοδότησης

ΠεδίοΥποχρεούμαιΕννοια
agentOrderNoΝαίΠαγκοσμίως μοναδικός αριθμός παραγγελίας συνεργάτη. επιμείνετε πριν την αποστολή.
agentUserId / platformUserIdΕναςΠροσδιορίστε τον δεσμευμένο χρήστη. αν παρέχονται και τα δύο πρέπει να ταιριάζουν.
directionΝαίΜία από τις τέσσερις κατευθύνσεις που τεκμηριώνονται παραπάνω.
currencyΠροεπιλογή USDTΥποστηρίζεται μόνο το USDT.
transferAllΠροεπιλογή ψευδήςΜόνο οι εσωτερικές μεταφορές χρηματοδότησης/συμβολαίου υποστηρίζουν αληθές.
amountΥποθετικόςΘετική δεκαδική συμβολοσειρά για σταθερή μεταφορά. παράλειψη για transferAll=αληθές.
environmentΠροαιρετικόςΠαραγωγή όταν παραλείπεται για νέα μεταφορά. Το SIMULATED επιλέγει προσομοιωμένα κεφάλαια.

Πεδία απάντησης χρηματοδότησης

ΠεδίοΕννοια
orderNoΕπιστράφηκε αναγνωριστικό λειτουργίας. διατηρήστε μαζί με τον αρχικό αριθμό παραγγελίας συνεργάτη.
statusSUCCESS / PROCESSING / FAILED; καθορίζει την ολοκλήρωση της επιχείρησης.
direction / currencyΕπιβεβαιωμένη κατεύθυνση μεταφοράς και περιουσιακό στοιχείο.
amountΠραγματικό μεταφερόμενο ποσό ως συμβολοσειρά.
transferAllΕάν αυτή η πράξη ζήτησε όλα τα αναληφθέντα κεφάλαια.
agentUserId / platformUserIdΕπιστράφηκε ταυτότητα χρήστη. συγκρίνετε με την αποθηκευμένη παραγγελία.
resultCodeΛεπτομέρεια αποτελεσμάτων λειτουργίας. κρατήστε για συμφιλίωση και υποστήριξη.
environmentΑντηχούσε όταν ο καλών το παρείχε ρητά. Η απουσία δεν αποτελεί απόδειξη παραγωγής για ένα ερώτημα κατάστασης αρχικής παραγγελίας.