主页 > imtoken新版本 > 免费、开源的数字货币收藏插件

免费、开源的数字货币收藏插件

imtoken新版本 2023-01-17 13:27:03

虽然区块链正在蓬勃发展,但对于程序员来说,在网站上支持数字货币收藏仍然非常困难。无论是比特币还是eos,都需要安装全节点软件,才能实现稳定的查询和收集服务。但是,目前区块链的全节点消耗大量的硬盘空间和系统资源免费获得比特币网站免费获得比特币网站,仅投资于数字货币收款是不划算的。

这是一个支付插件。

优点:不需要依赖外部库,因为它是用go语言编写的。不需要外部数据库,默认数据库使用sqlite3,熟练的可以修改支持mysql和postgre。开发者可以通过http请求创建支付渠道,查询支付状态。收款有推送,方便编写业务代码。无需安装复杂的比特币全节点、以太坊全节点和eos全节点来接收付款。体积小,提前准备一个 Mixin Messenger 账号

中国大陆的iOS和Android用户到这个地址下载应用并注册账号。

大陆以外的Apple ID和Google Play用户请到地址下载app并注册账号。

成为开发人员并创建应用程序

访问开发者中心,点击右上角的图标,用Mixin Messenger应用的摄像头扫描屏幕上的二维码,开始创建应用。创建App流程可以参考这个教程

克隆代码

git clone https://github.com/myrual/mixin-network-snapshot-golang
cd mixin-network-snapshot-golang
复制代码

更改参数

在 mixin_snap.go 中找到以下代码片段

const (
	userid      = "3c5fd587-5ac3-4fb6-b294-423ba3473f7d"
	sessionid   = "42848ded-0ffd-45eb-9b46-094d5542ee01"
	private_key = `-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDACTrT4uaB9el9qe0MUOsFrm8kpaDI9PowauMB1Ha25mpfL+5h
MFqISLS5z2P89nAsXBg+KyQ2gAVA6rBwW/ZqOc1PKiJhhLBS80nzo3ayfv7OlzNG
IxMyqD5izCCtPixnqpuTePoPWq4CNZlxop0VYklsWEfU0U0qqMBgmtqYfQIDAQAB
AoGAR8crZed5oTn5fC73m5LjRcxdXqVJ49MtcMuC7jwr41FckRepUkpwjGAgrRMH
nJXAd9Q0e4hEkNppHEqciGLXR1dQfZnaM1Gnv7mD3oSgHaH+4qAMnNOCpvwW4Eu3
yp9b1UGj9SvM3D2BrpA+MGf0E/yEJzpRcT956W6SPYYSegECQQDm4uTK+teoxr1Z
agJZuCta+IhMzpxIWMob+JN/Huf7OnRcIa9JpXngg4tHOUWmZCDQdqeJMpaQc8SQ
44hba015AkEA1OyJswNIhdmvVp5P1zgREVVRK6JloYwmAtj+Qo4pWJ117LqH4w+b
491r4AeLEGh8VrZ4k6Hp+Cm783S2jTAWJQJARbWdlHdV45xVkQiDuyjy1h2RsXb0
EpfUNcvAZLIlImIMvcBh1x+CA7pTs+Zj1BAJJEee37qJYQXDBGfeRJPKKQJAVG+c
x42Ew/eoTZwoIzvLoOkJcFlNHjwaksSER9ZiVQ7URdVOr99vvXQAJG45Wn9k12oy
9LCfvNan/wqIngK0tQJBAL1Wc02seEbMeWyt5jycJEhn6G8F18s9S1v0GXb4U/7/
6Y87P3TmDLcEuCXkrbZQaCX7jVLu0BkDw8To58TWjh0=	
-----END RSA PRIVATE KEY-----`
	ADMIN_MessengerID = ""//this is your mixin messenger id, you can find your id in contact page.
)
复制代码

在此处替换应用程序创建过程中的这些参数。ADMIN_MessengerID 是你的 Mixin Messenger ID,你可以在 Mixin Messenger 的 Contacts 页面看到。

编译

go build mixin_snap.go
复制代码

./mixin_snap
复制代码

其实因为它是基于go语言的,所以可以在linux机器上编译,然后把可执行文件传输到实际工作的服务器上运行。

如何为 eos 和 xlm 创建存款地址

生成一个唯一的字符串作为支付id,然后在收到支付时设置回调URL。

curl -d '{"reqid":"value8", "callback":":9090/"}' -H "Content-Type: application/json" 127.0.0.1:8080/payment
复制代码

这条 curl 指令的效果是:将 value8 作为支付 id 传递给支付插件,当需要支付 id 来接收支付时,程序需要访问本机 9090 端口的根 URL。

正常情况下,这条命令会立即收到如下回复,可以看到EOS和XLM的充值地址已经存在。

{"Reqid":"value9",
"Payment_methods":[
{"Name":"XLM","PublicKey":"","AccountName":"GD77JOIFC622O5HXU446VIKGR5A5HMSTAUKO2FSN5CIVWPHXDBGIAG7Y","AccountTag":"39819a44ac87dd2c"},
{"Name":"EOS","PublicKey":"","AccountName":"eoswithmixin","AccountTag":"7648a59ae0eaee11d5d7f90c0f334eb1"}],
"Payment_records":null,"Balance":null}
复制代码

如何查看付款状态

curl -X GET 'http://localhost:8080/payment?reqid=value8'
复制代码

如果还没有完成支付,结果如下

{"Reqid":"value6","Payment_methods":[{"Name":"XLM","PublicKey":"","AccountName":"GD77JOIFC622O5HXU446VIKGR5A5HMSTAUKO2FSN5CIVWPHXDBGIAG7Y","AccountTag":"dfc6af4e022c3a11"},
{"Name":"EOS","PublicKey":"","AccountName":"eoswithmixin","AccountTag":"d457cab41245ca0531f64947d1bb958a"}],
"Payment_records":null,"Balance":null}
复制代码

如果付款已经确认,那么结果如下

{"Reqid":"value8",
"Payment_methods":[{"Name":"XLM","PublicKey":"","AccountName":"GD77JOIFC622O5HXU446VIKGR5A5HMSTAUKO2FSN5CIVWPHXDBGIAG7Y","AccountTag":"62d0d256dcf15608"}
,{"Name":"EOS","PublicKey":"","AccountName":"eoswithmixin","AccountTag":"7481cd36f77953f129c194d3444ae2ff"}],
"Payment_records":[{"Amount":"0.1","AssetId":"","created_at":"2019-06-20T02:00:39.650472961Z","snapshot_id":"570233aa-3c91-45cd-a6ec-0e9724165300"}
,{"Amount":"0.01","AssetId":"6cfe566e-4aad-470b-8c9a-2fd35b49c68d","created_at":"2019-06-20T02:33:50.152539755Z","snapshot_id":"88859d4d-5bee-4fb5-aef6-ac01dc3a43c6"}
,{"Amount":"0.01","AssetId":"6cfe566e-4aad-470b-8c9a-2fd35b49c68d","created_at":"2019-06-20T02:37:05.870885973Z","snapshot_id":"6530f455-3238-491a-a9c5-bbcb52bcc306"}
,{"Amount":"0.001","AssetId":"6cfe566e-4aad-470b-8c9a-2fd35b49c68d","created_at":"2019-06-20T02:40:53.251365044Z","snapshot_id":"f2c8a751-3d30-472e-bf76-924787f341b9"},
{"Amount":"0.001","AssetId":"6cfe566e-4aad-470b-8c9a-2fd35b49c68d","created_at":"2019-06-20T02:59:28.854380284Z","snapshot_id":"3ebfd5a3-bd29-4e32-bd06-2506bee3da99"},
{"Amount":"-0.122","AssetId":"6cfe566e-4aad-470b-8c9a-2fd35b49c68d","created_at":"2019-06-20T03:00:17.249302744Z","snapshot_id":"0bfe6f6b-1ff8-4144-9786-52d6a6459b19"}],
"Balance":null}
复制代码

充值确认并返回网址

程序在收到充值确认时,可以根据你设置的回调url发起http post访问。网址如下

"http://127.0.0.1"+callbackurl
复制代码

json正文如下

{"Reqid":"value8","Callbackurl":":9090/","Paymentrecord":{"Amount":"0.01","AssetId":"56e63c06-b506-4ec5-885a-4a5ac17b83c1","created_at":"2019-06-20T07:33:06.445471337Z","snapshot_id":"a6603374-509b-4015-a192-c63bfa8def5f"}}
复制代码

资金提现 本程序将在充值确认后立即自动将充值地址对应的钱包中的所有资金转入您的 Mixin Messenger 账户。您也可以手动发起指令,请求程序将账户中的所有资金转给您。Mixin 信使账号

curl -X POST -H "Content-Type: application/json" 127.0.0.1:8080/moneygohome
复制代码

数据备份

默认只使用sqlite,所以只需备份执行目录下的test.db即可

支持的数字货币范围

理论上,Mixin Network 支持的所有数字货币都可以接受,但由于部分数字货币充值确认慢,代码默认支持 EOS 和 XLM,因为这两种货币都可以在 3 分钟内确认。

如果想支持更多币种,修改如下代码即可

const (//目前主要的数字货币
	BTC_ASSET_ID  = "c6d0c728-2624-429b-8e0d-d9d19b6592fa"
	EOS_ASSET_ID  = "6cfe566e-4aad-470b-8c9a-2fd35b49c68d"
	USDT_ASSET_ID = "815b0b1a-2764-3736-8faa-42d694fa620a"
	ETC_ASSET_ID  = "2204c1ee-0ea2-4add-bb9a-b3719cfff93a"
	XRP_ASSET_ID  = "23dfb5a5-5d7b-48b6-905f-3970e3176e27"
	XEM_ASSET_ID  = "27921032-f73e-434e-955f-43d55672ee31"
	ETH_ASSET_ID  = "43d61dcd-e413-450d-80b8-101d5e903357"
	DASH_ASSET_ID = "6472e7e3-75fd-48b6-b1dc-28d294ee1476"
	DOGE_ASSET_ID = "6770a1e5-6086-44d5-b60f-545f9d9e8ffd"
	LTC_ASSET_ID  = "76c802a2-7c88-447f-a93e-c29c9e5dd9c8"
	SIA_ASSET_ID  = "990c4c29-57e9-48f6-9819-7d986ea44985"
	ZEN_ASSET_ID  = "a2c5d22b-62a2-4c13-b3f0-013290dbac60"
	ZEC_ASSET_ID  = "c996abc9-d94e-4494-b1cf-2a3fd3ac5714"
	BCH_ASSET_ID  = "fd11b6e3-0b87-41f1-a41f-f0e9b49e5bf0"
	XIN_ASSET_ID  = "c94ac88f-4671-3976-b60a-09064f1811e8"
	CNB_ASSET_ID  = "965e5c6e-434c-3fa9-b780-c50f43cd955c"
	XLM_ASSET_ID  = "56e63c06-b506-4ec5-885a-4a5ac17b83c1"
	TRON_ASSET_ID = "25dabac5-056a-48ff-b9f9-f67395dc407c"
	........
)
.......
.......
	// 想要支持哪个,就把那个放在这个slice里面
	default_asset_id_group := []string{XLM_ASSET_ID, EOS_ASSET_ID}
复制代码

充值到货时间清单

资产估计确认期限

波场

5分钟

比特币

1小时

USDT

1小时

欢迎使用 Mixin Messenger App 联系我。