跳到导航

Java 快速入門

Java 快速入門:Agent Java SDK v0.3.0 集成、示例、參數和響應語義。

以 Markdown 格式查看

本指南針對 Agent Java SDK v0.3.0、Java 8+ 以及標記的公共合約。使用此頁面上的安裝和配置步驟初始化client;在合作伙伴後端運行示例。

先決條件示例

Java 片段共享這些導入。使用快速啟動初始化 client 並從保存的綁定中獲取 platformUserId。示例用戶/訂單 ID 必須替換為您自己的持久值。

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

Maven座標

當前源座標:

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

GitHub 是源代碼託管,而不是 Maven 依賴存儲庫。如果 SDK 沒有 尚未發佈到 Maven 存儲庫,請將其安裝到本地 Maven 首先存儲庫:

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

本地安裝後,您的業務項目就可以解決 com.sixmm.exchange.sdk:agent:0.3.0 來自本地 Maven 存儲庫。

對於團隊構建和測試環境,將 SDK 發佈到 Maven 存儲庫 例如 Nexus、Artifactory、GitHub Packages、Maven Central,或使用 GitHub 基於構建服務,例如 JitPack。

對於現有集成,請參閱 SDK升級指南。使用穩定的 v0.3.0 源標籤安裝 SDK 並閱讀其匹配的集成文檔。

客戶端初始化

普通 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());

春季啟動

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

應用屬性示例:

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

綁定用戶

綁定創建或獲取合作伙伴用戶和 6MM 之間的關係 平臺用戶。當用戶第一次進入交易流程時或交易結束之前調用它 首先轉入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);

請求字段:

場地類型必需的描述
agentUserIdstring是的合作伙伴端唯一用戶ID
usernamestring不合作伙伴端顯示名稱用作平臺用戶的暱稱
extstring不擴展字段。推薦使用 JSON 字符串

響應字段:

場地類型描述
platformUserIdstring6MM 外部用戶 ID
bindStatusstring通常 BOUND
isSimulatedUserboolean這是否是模擬用戶

推薦業務流程

首次交易入場

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.

存入 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.

撤回到合作伙伴

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.

來源及相關指南

錯誤處理

SDK 例外分為兩類:

例外設想建議處理
AgentApiExceptionHTTP 狀態不是 2xx,或代理響應 code != 0讀取getHttpStatus()、getCode()和getResponseBody()並將其視為業務/API失敗
AgentSdkException網絡、序列化、配置或簽名失敗記錄下來並將其視為系統異常

例子:

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

接收Webhooks

所有四種事件類型共享配置的商家回調URL;依正文 event 分流。驗證原始接收的字節,然後檢查時間視窗、商家和環境。僅在提交業務資料和成功的重複資料刪除記錄,或可靠地保存持久性任務後,才返回 HTTP 2xx。

事件和清算警告 · 簽名驗證、回應和重試