Skip to navigation

Java بداية سريعة

Java البداية السريعة: تكامل Agent Java SDK الإصدار 0.3.0 والأمثلة والمعلمات ودلالات الاستجابة.

View as Markdown

يستهدف هذا الدليل Agent Java SDK v0.3.0، Java 8+، والعقد العام الموسوم. قم بتهيئة client باستخدام خطوات التثبيت والتكوين الموجودة في هذه الصفحة؛ قم بتشغيل الأمثلة في الواجهة الخلفية للشريك.

مثال المتطلبات الأساسية

تشترك مقتطفات Java في هذه الواردات. قم بتهيئة client باستخدام البدء السريع واحصل على platformUserId من الرابط المحفوظ. يجب استبدال معرفات المستخدم/الطلب بالقيم الثابتة الخاصة بك.

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

إحداثيات مافن

إحداثيات المصدر الحالي:

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

ربط المستخدم

يقوم Bind بإنشاء أو جلب العلاقة بين مستخدم شريك و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نعممعرف مستخدم فريد من جانب الشريك
usernamestringلااسم العرض من جانب الشريك يُستخدم كاسم مستخدم النظام الأساسي
extstringلامجال التمديد. يوصى باستخدام سلسلة JSON

حقول الاستجابة:

مجاليكتبوصف
platformUserIdstring6MM معرف المستخدم الخارجي
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 تنقسم الاستثناءات إلى فئتين:

استثناءسيناريوالتعامل المقترح
AgentApiExceptionحالة HTTP ليست 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 فقط بعد الالتزام ببيانات العمل وسجلات إلغاء البيانات المكررة الناجحة، أو حفظ مهمة مستمرة بشكل موثوق.

الأحداث وتحذيرات التصفية · التحقق من التوقيع والاستجابات وإعادة المحاولة