Skip to navigation

Java Mulai Cepat

Java Mulai Cepat: Agent Java SDK integrasi 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. Inisialisasi client menggunakan langkah-langkah instalasi dan konfigurasi di halaman ini; jalankan contoh di backend mitra.

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.*;

Koordinat Maven

Koordinat sumber saat ini:

<dependency>
<groupId>com.sixmm.exchange.sdk</groupId>
<artifactId>agent</artifactId>
<version>0.3.0</version>
</dependency>

GitHub adalah hosting sumber, bukan repositori ketergantungan Maven. Jika SDK belum telah dipublikasikan ke repositori Maven, instal ke Maven lokal Anda repositori terlebih dahulu:

git clone https://github.com/6mm-com/agent-java-sdk.git
cd agent-java-sdk
git checkout v0.3.0
mvn install

Setelah instalasi lokal, proyek bisnis Anda dapat diselesaikan com.sixmm.exchange.sdk:agent:0.3.0 dari repositori Maven lokal.

Untuk pembangunan tim dan lingkungan pengujian, publikasikan SDK ke repositori Maven seperti Nexus, Artifactory, Paket GitHub, Maven Central, atau gunakan GitHub layanan build berbasis seperti JitPack.

Untuk integrasi yang sudah ada, lihat SDK panduan peningkatan. Gunakan tag sumber stabil v0.3.0 untuk menginstal SDK dan membaca dokumentasi integrasi yang cocok.

Inisialisasi Klien

Biasa Java

import com.sixmm.agent.AgentClient;
import com.sixmm.agent.AgentClientConfig;
AgentClient client = new AgentClient(AgentClientConfig.builder()
.baseUrl("https://agent-api.6mm.com")
.agentCode("AGENT001")
.apiSecret("your-api-secret")
.defaultCurrency("USDT")
.build());

sepatu bot musim semi

import com.sixmm.agent.AgentClient;
import com.sixmm.agent.AgentClientConfig;
import java.time.Duration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AgentSdkConfig {
@Bean
public AgentClient agentClient(AgentSdkProperties props) {
return new AgentClient(AgentClientConfig.builder()
.baseUrl(props.getBaseUrl())
.agentCode(props.getAgentCode())
.apiSecret(props.getApiSecret())
.defaultCurrency("USDT")
.timeout(Duration.ofSeconds(10))
.build());
}
}

Contoh properti aplikasi:

agent.sdk.base-url=https://agent-api.6mm.com
agent.sdk.agent-code=AGENT001
agent.sdk.api-secret=${AGENT_API_SECRET}

Ikat Pengguna

Bind membuat atau mengambil hubungan antara pengguna mitra dan 6MM pengguna platform. Sebut saja saat pengguna pertama kali memasuki alur perdagangan atau sebelum transfer pertama ke 6MM.

import com.sixmm.agent.model.BindRequest;
import com.sixmm.agent.model.BindResponse;
BindResponse resp = client.bind(
BindRequest.of("agent-user-001")
.withUsername("alice")
.withExt("{\"source\":\"web\"}"));
System.out.println(resp.platformUserId);
System.out.println(resp.bindStatus);
System.out.println(resp.isSimulatedUser);

Bidang permintaan:

BidangJenisDiperlukanKeterangan
agentUserIdstringYaID pengguna sisi mitra yang unik
usernamestringTIDAKNama tampilan sisi mitra digunakan sebagai nama panggilan pengguna platform
extstringTIDAKBidang ekstensi. String JSON direkomendasikan

Bidang respons:

BidangJenisKeterangan
platformUserIdstring6MM ID pengguna eksternal
bindStatusstringBiasanya BOUND
isSimulatedUserbooleanApakah ini pengguna simulasi

Alur Bisnis yang Direkomendasikan

Entri Perdagangan Pertama

1. User logs in to the partner site.
2. Partner backend calls bind with agentUserId.
3. Partner stores the agentUserId and platformUserId relationship.
4. User clicks the trading entry.
5. Redirect mode: call createEntryUrl and open webUrl in the browser.
6. Embed mode: Trading Widget calls tokenProvider, and partner backend calls createEmbedToken.

Setor Ke 6MM

1. Partner creates a unique agentOrderNo.
2. Partner calls transfer(Direction.IN).
3. If SUCCESS is returned, mark the local order as successful.
4. If PROCESSING is returned, wait for webhook or poll queryOrder.
5. If FAILED is returned or AgentApiException is thrown, handle it as failed.

Tarik Kembali Ke Mitra

1. Partner creates a unique agentOrderNo.
2. Fixed amount withdraw: call transfer(Direction.OUT).
3. Full withdraw: call transferAllOut.
4. Confirm the final result by orderStatus, webhook, or queryOrder.

Sumber dan panduan terkait

Penanganan Kesalahan

Pengecualian SDK dibagi menjadi dua kategori:

PengecualianSkenarioPenanganan yang disarankan
AgentApiExceptionHTTP status bukan 2xx, atau respons Agen code != 0Baca getHttpStatus(), getCode(), dan getResponseBody() dan perlakukan itu sebagai kegagalan bisnis/API
AgentSdkExceptionKegagalan jaringan, serialisasi, konfigurasi, atau penandatangananCatat dan perlakukan itu sebagai pengecualian sistem

Contoh:

import com.sixmm.agent.AgentApiException;
import com.sixmm.agent.AgentSdkException;
try {
TransferResponse resp = client.transfer(TransferRequest.fixed(
"AGT-ORDER-1001", "agent-user-001", Direction.IN, "USDT", "10.00"));
// Update the local order according to resp.orderStatus.
} catch (AgentApiException e) {
// Business rejection or HTTP error.
log.warn("6mm agent api rejected request, httpStatus={}, code={}, body={}",
e.getHttpStatus(), e.getCode(), e.getResponseBody());
} catch (AgentSdkException e) {
// Local SDK error or network error.
log.error("6mm agent sdk request failed", e);
}

Terima Webhooks

Keempat jenis peristiwa berbagi callback pedagang yang dikonfigurasi URL; dikirim oleh badan event. Verifikasi byte asli yang diterima, lalu periksa jendela waktu, pedagang, dan lingkungan. Kembalikan HTTP 2xx hanya setelah melakukan data bisnis dan catatan deduplikasi yang berhasil, atau menyimpan tugas persisten dengan andal.

Peristiwa dan peringatan likuidasi · Verifikasi tanda tangan, tanggapan, dan percobaan ulang