区块链 > 钱包知识 > 比特现金(BCH)钱包

BCH科普:比特现金(BCH)钱包对接流程

2021-12-01 11:33:33 佚名
简介这篇文章主要介绍了BCH科普:比特现金(BCH)钱包对接流程的相关资料,希望这篇关于BCH科普:比特现金(BCH)钱包对接流程的文章,能够帮助到各位新人投资者对比特币钱包有一个深入的了解。

虽然Bitcoin Cash(BCH)好像正慢慢淡出主流圈子,但它依然跻身加密货币市值TOP11之列。

那么,今天就和小编一起来认识下什么是BCH,它与BTC有哪些区别,在应用场景BCH具备哪些优点,以及BCH钱包对接流程。

BCH科普:比特现金(BCH)钱包对接流程

什么是BCH?

BCH全称为Bitcoin Cash,是矿池ViaBTC基于Bitcoin ABC方案推出的新的加密数字资产。

BCH是比特币区块链的硬分叉(一种社区驱动的协议或代码层面的更新)。比特币分叉发生在2017年8月1日,其目的是将区块大小更新为8mb。

2018年11月16日,BCH进行了第二次硬分叉,分为比特币SV(Satoshi’s Vision 中本聪的愿景)和比特币ABC。比特币ABC由于拥有更多的哈希算力和节点,最终成为了主链并接管了BCH代号。

比特现金最近一次减半是在2020年4月8日,当时其区块奖励从12.5降低至6.25。

BCH和BTC有什么区别?

BTC可以说是BCH的前世,但是分叉以后,BCH一直被认为是新方向的BTC,BCH有更大的区块,能够处理更多交易,不会出现像BTC那样由于区块太小,处理速度跟不上交易数量的情况,从而造成拥堵的现象。这也是BCH与BTC最明细的区别。

这也直接造成了BCH的手续费用比BTC要低的多,BTC由于缓慢的交易处理速度,出现了谁的手续费价格高谁的交易先处理的规则,而BCH是不可能出现这种情况的。

由于BCH社区从理念上与现在BTC社区core团队不一样,简单的说BCH与BTC没有多少关联了,成为一种全新的币种。

BCH可以算是比特币中的“革新派”,他们认同比特币通过提升区块大小,认同有更多的项目能够落实,应该运用最新的技术在比特币上,但是他们的激进也让他们受到非议,说他们是逐利的矿工,不尊重中本聪的意志,他们就如同历史上的革新派一般,充满激情但又太过激进。

BCH在应用场景上具备哪些特点?

BCH科普:比特现金(BCH)钱包对接流程

快速交易,根据设计,比特币现金网络的设立是为了快速处理交易并且花费很少。

与初始的比特币区块链受限于1MB区块和替换费用不同,比特币现金区块为8MB。 升级到更大的区块意味着矿工可以验证所有交易,而不仅仅是收费最高的交易。较大的区块有助于保持BCH内存池的空间和交易的快速确认。

对客户和商家来说都是负担得起的,比特币现金的交易很快就会被挖掘出来——即使费用低。由于在8MB的区块中适合更多的交易,因此确保交易在下一个区块中得到确认的竞争就更少了。

对消费者来说,低费用意味着对商家的低收费。商户可以开始接受比特币现金支付,无需支付每月的费用和每笔交易的百分比。另外,货币兑换成本不存在;BCH是一种全球性的无国界货币。

风险较小,接受信用卡支付的风险之一,尤其是在网上,是欺诈。商家总是面临着退款的风险(从消费者的信用卡或银行账户转回资金)。一些金融机构实际上向商户收取费用。

比特币现金交易以秒为单位,并在几分钟内得到确认。你可以在全球范围内发送或接收货币,交易是不可逆转的(即使是对欺诈者而言)。

易于实施,小商家只需要自己的比特币现金地址就可以开始接受BCH的付款。实体店应该有一个设备,比如手机或平板电脑,这样消费者就可以很容易地扫描二维码。

像Coinbase Commerce这样的商业服务使它变得更加容易。商户可以在电子商务平台上添加CoinbaseCommerce作为支付选项,也可以添加到现有的结账流程中。你所需要的只是一个电子邮件地址和一部电话。

定期升级,比特币现金社区在承诺继续升级网络方面是独一无二的。最近,开发人员发布了BCH地址格式的升级。BCH地址现在包括了“bitcoincash:”在通常的字母和数字串之前,所以人们扫描条形码不会误以为它是比特币地址。减轻这种风险有助于简化、快速支付。

BCH钱包对接流程

基于BCH运用广泛性,不管是交易所、商城、游戏又或者项目方对接BCH钱包以及充提币的需求进一步提升,但由于上述企业在区块链领域技术能力有限,往往会寻找第三方开放平台进行对接。

今天小编跟大家聊聊交易所等交易平台如何进行BCH钱包对接,以及BCH充提币API接口对接方法。

1、目录

1.1、生成地址

1.2、提币

1.3、代付

1.4、交易回调

1.5、校验地址合法性

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

2、接口明细

1、生成地址

1.1 场景说明

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

1.2 接口详情

1.2.1 接口地址

接口详情
 
URL
【/mch/address/create】
请求方式
POST

1.2.2 参数

1.2.2.1 参数说明

参数
类型
是否必填
说明
备注
timestamp
String
时间戳
见 验签说明
nonce
String
随机数
见 验签说明
sign
String
签名
见 验签说明
body
String
消息内容
json字符串,格式如下

 

[

    {undefined

     "merchantId":"300015",

     "coinType":520,

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

    }

]

1.2.2.2 body参数字段

body参数名
类型
是否必填
说明
merchantId
String
商户号
coinType
Integer
主币种编号,见 附录一
callUrl
String
回调地址,通过该接口创建的地址,以后关于该地址的充币信息会通过您指定的回调地址通知您。具体示例见 交易回调接口
walletId
String
钱包编号,默认根据主钱包生成地址
alias
String
地址别名

1.2.2.3 示例

{undefined

"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 成功

{undefined

    "data":{undefined

        "coinType":520,

        "address":"0xbe4e3699cb870bc95365fe04a187dd279a651a58"

    },

    "message":"SUCCESS",

    "code":200

}

1.3.2 失败

{undefined

    "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字符串,格式如下

[

    {undefined

        "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 示例

{undefined

  "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 成功

{undefined

"message":"SUCCESS",

"code":200

}

2.3.2 失败

{undefined

"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字符串,格式如下

[

  {undefined

      "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 示例

{undefined

"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 成功

{undefined

"message":"SUCCESS",

"code":200

}

3.3.2 失败

{undefined

"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字符串,格式如下

{undefined

"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 示例

{undefined

"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字符串,格式如下

{undefined

"merchantId":200000,

"mainCoinType":"206",

"address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"

}

5.2.2.2 body参数说明

body参数名称
类型
是否必填
说明
merchantId
Long
商户号
mainCoinType
String
主币种编号,见 附录一
address
String
需校验的地址

5.2.2.2 示例

{undefined

"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 成功

{undefined

"code":200,

"message":"SUCCESS"

}

5.3.2 失败

{undefined

"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 示例

{undefined

"timestamp": 1535005047,

"nonce": 100000,

"sign": "e1bee3a417b9c606ba6cedda26db761a",

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

}

6.2.3 返回状态码表

状态码
解释
200
成功
4005
body参数错误

6.3 调取示例

6.3.1 成功

{undefined

"code": 200,

"message": "SUCCESS",

"data":[

{undefined

"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地址

},

{undefined

"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 失败

{undefined

"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]

以上就是BCH科普:比特现金(BCH)钱包对接流程的详细内容,更多关于比特现金(BCH)钱包的资料请关注脚本之家其它相关文章!

本站提醒:投资有风险,入市须谨慎,本内容不作为投资理财建议。

相关文章