Links

创建订单

1. 接口调用:
https://{host}/api/v2/accountExchange
2. 请求参数实例
参数
是否必须
说明
depositCoinCode
eg:ETH
receiveCoinCode
eg:BTC
depositCoinAmt
eg:0.01
receiveCoinAmt
期待接收数量
destinationAddr
"eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY 如有memo,请讲memo放到地址后,用#分隔,例如:18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY#1927632"
refundAddr
"eg:18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY 如有memo,请讲memo放到地址后,用#分隔,例如:18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY#1927632"
equipmentNo
设备唯一编号
sourceType
ANDROID,IOS,H5
sourceFlag
用于标识是哪个平台创建的订单,需要与SWFT BlockChain进行协商设置
isNoGas
是否开启免 gas true/false
3.请求参数示例
{
"depositCoinCode": "ETHF",
"receiveCoinCode": "USDT(BSC)",
"depositCoinAmt": "42.207403",
"receiveCoinAmt": "46.367529",
"destinationAddr": "0x19b9918f...f85ad08ba0",
"refundAddr": "0x19b9918f...f85ad08ba0",
"equipmentNo":"zfgryh918f93a19fdg6918a68cf5",
"sourceType": "H5",
"sourceFlag":"widget",
"isNoGas":true
}
4.返回结果示例
{
"data": {
"chainFee": "0.001",//兑换完成后发币旷工费
"changeType": "advanced",//去中心化兑换
"choiseFeeType": "3",
"createTime": "2022-03-10 18:44:21",
"dealFinishTime": null,
"depositCoinAmt": "2",
"depositCoinCode": "ETH",
"depositCoinFeeAmt": "0.004",//兑换手续费
"depositCoinFeeRate": "0.002",//兑换手续费率
"depositCoinState": "wait_send",
"depositFeeRate": "0.002",
"depositTxid": "",
"destinationAddr": "0xAE93FA34f728855cE663cf9FcF8e32148F079071",//用户接收币种地址
"detailState": "wait_deposit_send",//订单状态(详见高级兑换接口)
"developerId": "",
"instantRate": "6.856554564172",//汇率
"isDiscount": "N",
"kycUrl": "",//超过当日限额的kyc路径(详见高级兑换接口)
"orderId": "f94e631b-d99b-4dd5-98f7-09bf99d16d94",//订单号
"orderState": "wait_deposits",
"platformAddr": "0x3181af4f7cc7251a6a4eda75526c8abe10106db8",//存币地址(用户创建订单后需向此地址转币,转币币种depositCoinCode,转币数量depositCoinAmt)
"receiveCoinAmt": "13.713109",
"receiveCoinCode": "BNB(BSC)",
"receiveSwftAmt": "2416.89",
"refundAddr": "0xAE93FA34f728855cE663cf9FcF8e32148F079071",//退币地址(兑换失败退回存币币种到此地址)
"refundCoinAmt": "",//兑换失败时的退币数量
"refundCoinMinerFee": "",
"refundDepositTxid": "",//兑换失败时的退币哈希
"refundSwftAmt": "",
"swftCoinFeeRate": "0.001",
"swftCoinState": "",
"swftReceiveAddr": "",
"swftRefundAddr": "",
"transactionId": "",//发币哈希
"xrpInfo": "",
//开启免 gas 后返回的代签名交易数据
"noGasTxInfo": "{\"gasLimit\":37920,\"data\":\"0xxxxx\",\"chainId\":56,\"to\":\"0xxxxx\",\"nonce\":51,\"gasPrice\":\"3150000000\"}",
},
"resCode": "800",
"resMsg": "成功",
"resMsgEn": ""
}
5.返回参数说明
字段名称
字段
数据类型
备注
订单号
orderId
String
eg:d47e8b9b-c17f-432b-9285-a46c0a3ceb9a
存币币种
depositCoinCode
String
eg:ETH
接收币币种
receiveCoinCode
String
eg:BTC
存币数量
depositCoinAmt
String
eg:1
接收币数量
receiveCoinAmt
String
eg:0.1
存币地址
platformAddr
String
eg:123123123-232-1231232
目标币接收地址
destinationAddr
String
"eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY, 如有memo,请讲memo放到地址后,用#分隔,例如:18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY#1927632"
退原币的地址
refundAddr
String
"eg: 18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY 如有memo,请讲memo放到地址后,用#分隔,例如:18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY#1927632"
存币的手续费率
depositCoinFeeRate
String
eg:手续费率
存币的手续费金额
depositCoinFeeAmt
String
eg:手续费收取的原币的数量
退币金额
refundCoinAmt
String
eg: 0.98
兑换成功交易id
transactionId
String
链上交易id,在兑换完成并已发币之后,该字段才会有值
兑换失败交易id
refundDepositTxid
String
链上交易id,在兑换失败退币情况下,已退币之后,该字段才会有值
订单状态
detailState
String
"(1)wait_deposit_send:等待存币发送 (2)timeout:超时; (3)wait_exchange_push:等待交换信息推送; (4)wait_exchange_return:等待交换信息返回; (5.1)wait_receive_send:等待接收币种发送, wait_receive_confirm:等待接收币种确认, receive_complete:接收币种确认完成. (5.2)wait_refund_send:等待退原币币种发送, wait_refund_confirm:等待退原币币种确认, refund_complete:退原币币种确认完成; (6)ERROR/error:正在处理的订单 (7)WAIT_KYC: 等待进行KYC或联系客服提供链接"
kyc的路径
kycUrl
String
<!--td {border: 1px solid #cccccc;}br {mso-data-placement:same-cell;}-->当返回码是311时,需要跳转到该链接。 https://swap.swftcoin.com/swft-v3/swft-v3-m/kyc/kyc.html?lang=cn&equipmentNo=pls_input_your_real_equipmentno_ok 请更新equipmentNo的值用户的设备号(公共请求参数),lang取值:cn、en
开启免gas兑换返回的待签名数据
noGasTxInfo
String
需要对这个交易对象进行签名

代码示例

java代码示例

OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"equipmentNo\":\"Zsda352943090468518\",\"sessionUuid\":\"\",\"sourceType\":\"ANDROID\",\"userNo\":\"\",\"depositCoinCode\":\"BTC\",\"receiveCoinCode\":\"ETH\",\"depositCoinAmt\":\"0.01\",\"receiveCoinAmt\":\"0.336585\",\"receiveSwftAmt\":\"0\",\"destinationAddr\":\"0x364397e2fc9929f11ba0c03826ef282dd64a829f\",\"refundAddr\":\"18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY\",\"sourceFlag\":\"LendChain\",\"developerId\":\"\"}");
Request request = new Request.Builder()
.url("https://{host}/api/v2/accountExchange")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
C# 代码示例
var client = new RestClient("${host}/api/v2/accountExchange");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", "{\"equipmentNo\":\"352943090468518\",\"sessionUuid\":\"\",\"sourceType\":\"ANDROID\",\"userNo\":\"\",\"depositCoinCode\":\"BTC\",\"receiveCoinCode\":\"ETH\",\"depositCoinAmt\":\"0.01\",\"receiveCoinAmt\":\"0.336585\",\"receiveSwftAmt\":\"0\",\"destinationAddr\":\"0x364397e2fc9929f11ba0c03826ef282dd64a829f\",\"refundAddr\":\"18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY\",\"sourceFlag\":\"LendChain\",\"developerId\":\"\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Objective-C 代码示例
#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"Content-Type": @"application/json",
@"cache-control": @"no-cache" };
NSDictionary *parameters = @{ @"equipmentNo": @"Zsda352943090468518",
@"sessionUuid": @"",
@"sourceType": @"ANDROID",
@"userNo": @"",
@"depositCoinCode": @"BTC",
@"receiveCoinCode": @"ETH",
@"depositCoinAmt": @"0.01",
@"receiveCoinAmt": @"0.336585",
@"receiveSwftAmt": @"0",
@"destinationAddr": @"0x364397e2fc9929f11ba0c03826ef282dd64a829f",
@"refundAddr": @"18orDLFMp3fGoy5Uk93LDGTGbxWEm7b7FY",
@"sourceFlag": @"LendChain",
@"developerId": @"" };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{host}/api/v2/accountExchange"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
Nodejs代码示例
//getToken example
import axios from 'axios'
const params = {
equipmentNo: "zfgryh918f93a19fdg6918a68cf5",
sourceType: "H5",
userNo: "",
sessionUuid: "",
orderId: "",
sourceFlag: "widget",
depositCoinCode: "ETHF",
receiveCoinCode: "USDT(BSC)",
depositCoinAmt: "42.207403",
receiveCoinAmt: "46.367529",
destinationAddr: "0x19b9918f...f85ad08ba0",
refundAddr: "0x19b9918f...f85ad08ba0"
}
const res = await axios.post('https://{host}/api/v2/accountExchange', params )
console.log(res)

Postman示例

返回结果示例

{
"data": {
"chainFee": "0.001",//兑换完成后发币旷工费
"changeType": "advanced",//去中心化兑换
"choiseFeeType": "3",
"createTime": "2022-03-10 18:44:21",
"dealFinishTime": null,
"depositCoinAmt": "2",
"depositCoinCode": "ETH",
"depositCoinFeeAmt": "0.004",//兑换手续费
"depositCoinFeeRate": "0.002",//兑换手续费率
"depositCoinState": "wait_send",
"depositFeeRate": "0.002",
"depositTxid": "",
"destinationAddr": "0xAE93FA34f728855cE663cf9FcF8e32148F079071",//用户接收币种地址
"detailState": "wait_deposit_send",//订单状态(详见高级兑换接口)
"developerId": "",
"instantRate": "6.856554564172",//汇率
"isDiscount": "N",
"kycUrl": "",//超过当日限额的kyc路径(详见高级兑换接口)
"orderId": "f94e631b-d99b-4dd5-98f7-09bf99d16d94",//订单号
"orderState": "wait_deposits",
"platformAddr": "0x3181af4f7cc7251a6a4eda75526c8abe10106db8",//存币地址(用户创建订单后需向此地址转币,转币币种depositCoinCode,转币数量depositCoinAmt)
"receiveCoinAmt": "13.713109",
"receiveCoinCode": "BNB(BSC)",
"receiveSwftAmt": "2416.89",
"refundAddr": "0xAE93FA34f728855cE663cf9FcF8e32148F079071",//退币地址(兑换失败退回存币币种到此地址)
"refundCoinAmt": "",//兑换失败时的退币数量
"refundCoinMinerFee": "",
"refundDepositTxid": "",//兑换失败时的退币哈希
"refundSwftAmt": "",
"swftCoinFeeRate": "0.001",
"swftCoinState": "",
"swftReceiveAddr": "",
"swftRefundAddr": "",
"transactionId": "",//发币哈希
"xrpInfo": "",
//开启免 gas 后返回的代签名交易数据
"noGasTxInfo": "{\"gasLimit\":37920,\"data\":\"0xxxxx\",\"chainId\":56,\"to\":\"0xxxxx\",\"nonce\":51,\"gasPrice\":\"3150000000\"}"
},
"resCode": "800",
"resMsg": "成功",
"resMsgEn": ""
}

响应数据

参数参见API接口文档 闪兑接口

业务参考图

创建订单确认页
创建订单完成,生成订单