交易所如何对接狗狗币(DOGE)钱包?这点不可忽视

摘要:
新来者可能不熟悉狗币。狗币的价格上涨了10倍。以狗币为例,让我们看看狗币钱包如何与交易所连接,即交易所如何构建狗币钱包系统以满足狗币地址生成的要求,提供狗币钱包接口以方便更好的业务访问、多地址生成、狗币快速充取、交易查询、资金收集、,在安全稳定的前提下。

一个大家非常熟悉的 meme 头像 doge 在一夜之间成为了全球热搜。在国内,「狗狗币一天暴涨逾 250%」登上了微博热搜第七位,在国外,「DOGE」或者「DOGECOIN」站上了多个地区的「推特趋势榜」。比特币似乎都没有如此高规格的待遇。

 交易所如何对接狗狗币(DOGE)钱包?这点不可忽视第1张

对于新入币圈的朋友们可能对狗狗币还不太熟悉。这个币是个很早期的山寨币,它基本上是比特币的翻版,但是在比特币的基础上主要修改了两处地方:一是将区块出块的时间大大加快,二是将发行量上限设为无限,每年都会有5%的通胀。

这个币的设计者之所以设计这样的币是认为当时比特币的价格已经太高不太适合普及,因此他设计了这种发行量大、价格便宜很多的币,方便大家广泛采用,并且可以像小费一样在论坛、博客等社交媒体上打赏。

在狗狗币问世之初,这种理念很快得到一批粉丝的拥护,但后来当越来越多数字货币问世之后,狗狗币显得越来越没有特色,逐渐失去了投资者的关注。

它在上一轮牛市的尾巴2018年1月9日达到了历史最高价0.015美元,之后便开始暴跌,并长期徘徊在0.002美元左右,狗狗币基本上算是被市场淘汰了。

不过狗狗币所开创的打赏文化在数字货币发展史上留下了浓重的一笔。也正因为如此,它始终还有一批非常忠实的粉丝,尤其在欧美一些老牌论坛和社交媒体上。特斯拉的马斯克就是狗狗币的忠实粉丝,时不时在谈起数字货币时就会提到狗狗币。

本次狗狗币的大涨,很重要的一个原因就是那些老牌粉丝发挥了自己意见领袖的作用,带领广大散户开启狗狗币的买买买模式。狗狗币的价格上涨10倍。

在本次狗狗币的大涨中,最受益的恐怕还是早期的粉丝,因为只有他们才会在低价位持有这个币,新人朋友如果没有人介绍几乎没有多少人了解更不用说买入这个币了。

在相关人士看来,狗狗币的这种涨势恐怕很难持久,狗狗币要维持在现在这个价位恐怕也不容易,因此从投资的角度看,这个品种现在是不太适合追高的。

本次狗狗币的大涨除了散户们宣泄情绪,表达对华尔街的不满之外,相关人士认为还有另外一个非常重要的原因:就是美国政府疯狂撒钱的动作已经开始发挥作用,资金已经泛滥到散户们手中的钱都开始乱窜。

现在美国的散户们手中拿着免费得来的钱,一定会四处寻找资金的出路,这股汇聚散户力量的资金也是一股不可小觑的力量。接下来很可能还会有更多这样匪夷所思的投资品暴涨的事件发生。

对于不少狗狗币(DOGE)的加密货币交易所来说,要想真正吸引并且留住更多的用户,核心是了解并满足用户需求,做好平台用户服务,毕竟“得用户者得天下”的共识在币圈依旧适用。另外还有安全、流动性等方面等考量,加密数字货币交易所能否满足用户随时随地进行交易转账、充提币的需求?用户存储在交易所的资产是否安全?会不会出现盗币事件?这是作为一个加密货币交易所最基本的特质,也是交易所用户最关心的问题。

币圈的激烈竞争、数字资产管理安全隐患,让诸多投资者十分焦虑。解决焦虑的办法就是正视它,对于交易所这种业务型系统,选择钱包的时候需要考虑的问题,应该是安全的同时也需要快速的业务对接。在业务上常见的难点有:安全、跨链整合、庞大的数据量、还有其他的业务需求比如生成地址、地址管理、资金管理、交易记录管理、充提币及回调等等。

以狗狗币(DOGE)为例,我们来看看狗狗币(DOGE)钱包如何跟交易所对接,即交易所如何搭建一个狗狗币(DOGE)钱包系统,使之在安全、稳定的前提下满足狗狗币(DOGE)地址生成、提供狗狗币(DOGE)钱包接口以便于更好地业务接入,多地址生成、狗狗币(DOGE)快捷充提、交易查询、资金归集等。

详细的钱包接口文档如下:

原文链接:https://www.uduncloud.com/gateway-interface

1、目录

1.1、生成地址

1.2、提币

1.3、代付

1.4、交易回调

1.5、校验地址合法性

1.6、获取商户支持币种信息

2、接口明细

1、生成地址

1.1 场景说明

请求指定币种地址,如要成功获取地址,需先存在钱包,且钱包支持该币种

1.2.1 接口地址

接口详情

 

URL

【/mch/address/create】

请求方式

POST

1.2.2 参数

1.2.2.1 参数说明

参数

类型

是否必填

说明

备注

timestamp

String

时间戳

见验签说明

nonce

String

随机数

见验签说明

sign

String

签名

见验签说明

body

String

消息内容

json字符串,格式如下

[

    {

     "merchantId":"300015",

     "coinType":520,

     "callUrl":"http://localhost:8080/callBack"

    }

]

1.2.2.2 body参数字段

body参数名

类型

是否必填

说明

merchantId

String

商户号

coinType

Integer

主币种编号,见附录一

callUrl

String

回调地址,通过该接口创建的地址,以后关于该地址的充币信息会通过您指定的回调地址通知您。具体示例见交易回调接口

1.2.2.3 示例

{

    "timestamp": 1535005047,

    "nonce": 10000,

    "sign": "a230def43c1a12b14393880a28d4e005",

    "body": "[{"merchantId":"300015","coinType":520,"callUrl":"http://localhost:8080/callBack"}]"

}

1.2.3 返回状态码表

code

解释

200

成功

4005

非法参数

4001

商户不存在

4169

商户已禁用

4162

签名错误

4175

钱包编号错误

4017

商户没有创建钱包

4176

钱包未添加支持该币种

4166

商户没有配置套餐

4168

商户地址达到上限

4045

币种信息错误

-1

获取地址失败

1.3 调取示例

1.3.1 成功

{

    "data":{

        "coinType":520,

        "address":"0xbe4e3699cb870bc95365fe04a187dd279a651a58"

    },

    "message":"SUCCESS",

    "code":200

}

1.3.2 失败

{

    "code": "4101",

    "message": "SIGN_MSG_ERROR"

}

2、发送提币申请

2.1 场景说明

提币申请

2.2 接口详情

2.2.1 接口地址

接口详情

 

URL

【/mch/withdraw】

请求方式

POST

2.2.2 参数

2.2.2.1 参数说明

参数

类型

是否必填

说明

备注

timestamp

String

时间戳

见验签说明

nonce

String

随机数

见验签说明

sign

String

签名

见验签说明

body

String

消息内容

json字符串,格式如下

[

    {

        "address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s",

        "amount":"0.11",

        "merchantId":"100109",

        "mainCoinType":"144",

        "coinType":"144",

        "callUrl":"http://localhost:8080/mch/callBack",

        "businessId":"15",

        "memo":"10112"

    }

]

2.2.2.2 body参数字段

body参数名称

是否必填

类型

说明

address

String

提币地址

amount

String

提币数量

merchantId

String

商户号

mainCoinType

String

主币种编号 (见附录一 

coinType

String

子币种编号 (见附录一

callUrl

String

回调地址,通过该callUrl告知您该笔提币交易的状态,具体示例见交易回调接口

businessId

String

业务id,必须保证该字段在系统内唯一,如果重复,则该笔审核钱包不会接收。

memo

String

备注,XRP和EOS,这两种币的提币申请该字段可选,起他类型币种不填

2.2.2.3 示例

{

  "timestamp": 1535005047,

  "nonce": 100000,

  "sign": "6df1512ee650431632ce1541a6b064e1",

  "body": "[{"address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s","amount":"0.11","merchantId":"100109","mainCoinType":"144","coinType":"144","callUrl":"http://localhost:8080/callBack","businessId":"15","memo":"10112"}]"

}

2.2.3 返回状态码表

code

解释

200

成功

4005

非法参数

4598

传入body中的list对象中的所有merchantId必须保持一致

4001

商户不存在

4169

商户已被禁用

4183

到账地址异常

4193

EOS金额小数点后超过4位长度

4034

未找到该币种信息

2.3.1 成功

{

    "message":"SUCCESS",

    "code":200

}

2.3.2 失败

{

    "code": "4101",

    "message": "SIGN_MSG_ERROR"

}

3、代付

3.1 场景说明

代付,发送自动付款申请,未设置代付信息或代付失败则进入审核状态。

3.2 接口详情

3.2.1 接口地址

接口详情

 

URL

【/mch/withdraw/proxypay】

请求方式

POST

3.2.2 参数

3.2.2.1 参数说明

参数

类型

是否必填

说明

备注

timestamp

String

时间戳

见验签说明

nonce

String

随机数

见验签说明

sign

String

签名

见验签说明

body

String

消息内容

JSON字符串,格式如下

[

  {

      "address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s",

      "amount":"0.1",

      "merchantId":"100146",

      "mainCoinType":"144",

      "coinType":"144",

      "callUrl":"http://localhost:8080/callBack",

      "businessId":"571001",

      "memo":"10112"

  }

]

3.2.2.2 body参数说明

body参数名称

类型

是否必填

说明

merchantId

String

商户号

address

String

提币地址

mainCoinType

String

主币种编号,见附录一

coinType

String

子币种编号,见附录一

amount

String

交易数量

callUrl

String

回调地址,提币(审核、交易)结果将通过该地址进行回调,具体示例见交易回调接口

businessId

String

业务id,必须保证该字段在系统内唯一,如果重复,则该笔提币钱包将不会进行接收

memo

String

备注,XRP和EOS,这两种币的提币申请该字段可选,起他类型币种不填

3.2.2.2 示例

{

    "timestamp": 1535005047,

    "nonce": 100000,

    "sign": "e1bee3a417b9c606ba6cedda26db761a",

    "body": "[{"address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s","amount":"0.1","merchantId":"100146","mainCoinType":"144","coinType":"144","callUrl":"http://localhost:8080/callBack","businessId":"571001","memo":"10112"}]"

}

3.2.3 返回状态码表

code

解释

200

成功

4005

非法参数

4001

商户不存在

4166

商户没有配置套餐

4169

商户已被禁用

4612

签名错误

4163

签名信息错误

569

无效的地址

571

已存在审核记录,将不再进行处理

581

非法提币金额

554

商户不支持该币种

3.3 调取示例

3.3.1 成功

{

    "message":"SUCCESS",

    "code":200

}

3.3.2 失败

{

    "code": "4101",

    "message": "SIGN_MSG_ERROR"

}

4、交易回调接口

4.1 场景说明

网关收到交易处理结果,调用商户提供的回调接口,通知商户具体变化信息。该接口网关发送给您指定的回调地址的内容,处理您的业务信息。 分充值回调和提币回调,其中提币最多会进行两次回调(审核回调+交易结果回调)

4.2 接口详情

4.2.1 接口地址

接口详情

 

URL

 

请求方式

POST

4.2.2 参数

4.2.2.1 参数说明

参数

类型

是否必填

说明

备注

timestamp

String

时间戳

见验签说明

nonce

String

随机数

见验签说明

sign

String

签名

见验签说明

body

String

消息内容

JSON字符串,格式如下

{

    "address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW",

    "amount":"12345678",

    "blockHigh":"102419",

    "coinType":"206",

    "decimals":"8",

    "fee":"452000",

    "mainCoinType":"206",

    "status":3,

    "tradeId":"20181024175416907",

    "tradeType":1,

    "txId":"31689c332536b56a2246347e206fbed2d04d461a3d668c4c1de32a75a8d436f0",

    "businessId":"",// 提币回调为提币接口传入的businessId,充币无值

    "memo":""

}

4.2.2.2 body参数说明

body参数名称

类型

说明

address

String

地址

amount

String

交易数量,根据币种精度获取实际金额,实际金额=amount/pow(10,decimals),即实际金额等于amount除以10的decimals次方

fee

String

矿工费,根据币种精度获取实际金额,实际金额获取同上

decimals

String

币种精度

coinType

String

子币种编号,见附录一

mainCoinType

String

主币种编号,见附录一

businessId

String

业务编号,提币回调时为提币请求时传入的,充币回调无值

blockHigh

String

区块高度

status

Integer

状态,见回调接口状态说明

tradeId

String

交易流水号

tradeType

Integer

交易类型,见回调接口交易类型说明

txid

String

区块链交易哈希

memo

String

备注,XRP和EOS(见附录一 ),这2种类型币的充提币可能有值

4.2.2.2 示例

{

    "timestamp": 1535005047,

    "nonce": 100000,

    "sign": "e1bee3a417b9c606ba6cedda26db761a",

    "body": "{"address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW","amount":"12345678","blockHigh":"102419","coinType":"206","decimals":"8","fee":"452000","mainCoinType":"206","status":3,"tradeId":"20181024175416907","tradeType":1,"txId":"31689c332536b56a2246347e206fbed2d04d461a3d668c4c1de32a75a8d436f0"}"

}

5、校验地址合法性

5.1 场景说明

校验地址的合法性,添加地址、提币申请等场景时可先校验地址合法性,参看校验规则

5.2 接口详情

5.2.1 接口地址

接口详情

 

URL

【/mch/check/address】

请求方式

Post

5.2.2 参数

5.2.2.1 参数说明

参数

类型

是否必填

说明

备注

timestamp

String

时间戳

 

nonce

String

随机数

 

sign

String

签名

 

body

String

消息内容

JSON字符串,格式如下

{

    "merchantId":200000,

    "mainCoinType":"206",

    "address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"

}

5.2.2.2 body参数说明

body参数名称

类型

是否必填

说明

merchantId

Long

商户号

mainCoinType

String

主币种编号,见附录一

5.2.2.2 示例

{

    "timestamp": 1535005047,

    "nonce": 100000,

    "sign": "e1bee3a417b9c606ba6cedda26db761a",

    "body": "[{"merchantId":200000,"mainCoinType":"206","address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"}]"

5.2.3 返回状态码表

code

解释

200

成功

4005

非法参数

4162

签名错误

4165

地址不合法

5.3 调取示例

5.3.1 成功

{

    "code":200,

    "message":"SUCCESS"

}

5.3.2 失败

{

    "code":4005,

    "message":"PARAM_ERROR"

}

6、获取商户支持的币种信息

6.1 场景说明

获取商户支持的币种,以及余额

6.2 接口详情

6.2.1 接口地址

接口详情

 

URL

【/mch/support-coins】

请求方式

POST

6.2.2 参数

6.2.2.1 参数说明

参数

类型

是否必填

说明

timestamp

String

时间戳

nonce

String

随机数

sign

String

签名

body

String

消息内容

6.2.2.2 body参数说明

body参数名称

类型

是否必填

说明

merchantId

Long

商户号

showBalance

Boolean

是否查询余额,false不获取,true获取

6.2.2.3 示例

{

    "timestamp": 1535005047,

    "nonce": 100000,

    "sign": "e1bee3a417b9c606ba6cedda26db761a",

    "body": "{"merchantId":"200032","showBalance":true}"

}

6.2.3 返回状态码表

状态码

解释

200

成功

4005

body参数错误

6.3 调取示例

6.3.1 成功

{

    "code": 200,

    "message": "SUCCESS",

    "data":[

        {

            "name": "BTC", // 币种别名

            "coinName":"Bitcoin", // 币种全称

            "symbol":"BTC", // 币种单位

            "mainCoinType":"0", //主币种类型

            "coinType":"0", // 币种类型

            "decimals":"8", // 币种精度

            "tokenStatus":"0", // 0: 主币 1:代币

            "mainSymbol":"BTC", //主币种单位

            "balance":"0", // 币种余额

            "logo":"http://bipay-admin.oss-cn-hangzhou.aliyuncs.com/bipay-admin-release/coin-logo/BTC.png" // 币种log地址

        },

        {

            "name": "ETH", // 币种别名

            "coinName":"Ethereum", // 币种全称

            "symbol":"ETH", // 币种单位

            "mainCoinType":"60", //主币种类型

            "coinType":"60", // 币种类型

            "decimals":"18", // 币种精度

            "tokenStatus":"0", // 0: 主币 1:代币

            "mainSymbol":"ETH", //主币种单位

            "balance":"0", // 币种余额

            "logo":"https://bipay-admin.oss-cn-hangzhou.aliyuncs.com/bipay-admin-release/coin-logo/ETH.png" // 币种log地址

        }

    ]

}

6.3.2 失败

{

    "code":4005,

    "message":"BGS_ILLEGAL_PARAMETER"

}

附录一

主币种编号

子币种编号

币种简称

币种英文名

币种中文名称

精度

0

0

BTC

Bitcoin

比特币

8

60

60

ETH

Ethereum

以太坊

18

0

31

USDT

Tether USD

泰达币

8

520

520

CNT

CNT

测试币

18

5

5

DASH

DASH

达世币

8

133

133

ZEC

ZEC

大零币

8

145

145

BCH

Bitcoincash

比特币现金

8

61

61

ETC

Ethereum Classic

以太坊经典

18

2

2

LTC

LTC

莱特币

8

2301

2301

QTUM

QTUM

量子链币

8

502

502

GCC

GalaxyChain

 

8

60

合约地址

eth代币

eth代币

 

根据代币具体情况而定

144

144

XRP

Ripple

瑞波币

6

194

194

EOS

EOS

柚子币

4

194

194

EOS

EOS

柚子币

4

2304

2304

IOTE

IOTE

IOTE

8

2303

2303

VDS

Vollar

Vollar币

8

回调接口状态说明

状态

说明

0

待审核

1

审核成功

2

审核驳回

3

交易成功

4

交易失败

回调接口交易类型说明

状态

说明

1

充币回调

2

提币回调

验签说明

为了保证商户传送到优盾的参数信息不被恶意篡改,网关为商户接口提供Md5加密摘要认证。商户可用基础加密参数:时间戳、随机数、签名密钥(商户唯一的APIKEY)、请求明文参数按指定顺序排列进行Md5加密,产生一个验签串sign,商户请求网关接口时,带上参数时间戳、随机数、请求明文参数、sign作为参数。网关拿到相应的参数以同样的方式进行签名验签。同理,网关请求商户也以同样的方式进行身份验证。

sign=md5(body + key + nonce + timestamp)

key为接口授权码APIKEY,由网关分配给商户,加密字段顺序不能错误

币种地址校验规则

主币种类型

币种简称

币种英文名称

币种中文名称

地址前缀

地址长度限制区间

0

BTC

Bitcoin

比特币

1或者3

[26,36]

60

ETH

Ethereum

以太坊

0x

[42]

145

BCH

Bitcoincash

比特币现金

1

[26,36]

61

ETC

EthereumClassic

以太坊经典

0x

[42]

2

LTC

Litecoin

莱特币

L或者M

[26,36]

508

GX

GX

 

G

[26,36]

503

NBTC

NBTC

 

N

不限制

99

STO

STO

证券型通证发行

S

不限制

5

DASH

DASH

达世币

X

[26,36]

2301

QTUM

QTUM

量子链币

Q

[26,36]

133

ZEC

ZCash

大零币

t1

不限制

144

XRP

Ripple

瑞波币

r

[34]

免责声明:文章转载自《交易所如何对接狗狗币(DOGE)钱包?这点不可忽视》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IOCP 浅析(java代码实现)centos7 openssl 生成证书给自己使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

postman 发送post请求,参数为json

mvc 控制器接收post请求,参数为json PostMan设置 Headers设置key和Value值 key:Content-Type,Value:application/json。 参数设置: 选中Body并进行参数设置,选择raw,格式为json。就酱 控制器代码: //post 请求测试 [HttpPost] //请求方法,...

python之SQLAlchemy

ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型...

配置之XML--读取XML文件 转存为Key-Value

将XML文件读取 绑定数据至Dictionary Eg: Xml文件 <?xml version="1.0" encoding="utf-8" ?> <LanguageConfig> <Chinese></Chinese> <English>002</English> &...

JDBC操纵数据库的步骤(以SQLServer为例)

JDBC的简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数...

mini.DataGrid使用说明

mini.DataGrid表格。实现分页加载、自定义列、单元格渲染、行编辑器、锁定列、过滤行、汇总行等功能。Extendmini.PanelUsage <div url="../data/AjaxService.aspx?method=SearchEmployees" > <div property=...

C#的post请求 捕获错误代码的内容

public string Query(stringqueryString) { try{ HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create(AOPResource.LVSRequestURL);...