德华们, 电商平台实现 btc 支付,一定要自建全节点服务器吗 (go 语言)

2021-02-01 17:52:30 +08:00
 b00tyhunt3r

上个贴子没表达清楚 目前平台不做自营,是 100%的买家、卖家交易平台。但商品本身是由平台制作,平台发货的。 所以不存在例如买家付了款,卖家不发货的情况,

只要能通过某种方式确定买家完成了付款,款项正确的到达了卖家手里, 我们就可以发货完结这笔交易了。

而关于比特币支付的实现,大概会是这么个流程,我来描述一场交易:

已知这么几个信息:

1.物品 1 卖家定价 100btc

2.一位买家 A

3.卖家 B, 钱包地址 bbb

4.介绍人 C (如果有的话) ,钱包地址 ccc (介绍人制度是你可以介绍别人来买这个卖家的东西。卖出去了你分到物品定价的 1%)

5.公司钱包地址 ppp

6.平台手续费为,物品定价的 3%

现在,

一、 买家 A 欲购买物品 1,点下“确认购买”按钮

平台弹出窗口,创建交易 tx1:A 支付 100btc 到平台钱包 ppp. 限时 15 分钟

A 自行支付。

if (支付失败) {

订单取消

}

二、

确认 A 支付到账后,平台基于 A 的付款再生成 1 笔交易 tx2, tx2 包含 3 个输出

输出 1 付给 卖家 B 的钱包地址 bbb 96btc

输出 2 付给 介绍人 C 钱包地址 C 1btc

输出 3 找回自己 3btc 。(手续费)

三、

确认交易 tx2 成功后,将物品 1 发货给买家 A 。

现在的问题是 如果想实现这个流程,技术上最好的 approach 应该是哪种?

好像不需要自建全节点服务器,借助网络上的附近节点也可以实现发起交易,确认交易状态? 先谢过各位彦祖。

2381 次点击
所在节点    程序员
18 条回复
zpfhbyx
2021-02-01 18:03:04 +08:00
方便 pt 跑路?
JDog
2021-02-01 18:17:26 +08:00
说清楚,是马德华还是刘德华
swulling
2021-02-01 18:20:57 +08:00
主流平台的结算都要到买家确认收货后,你设计那么着急得打钱给卖家是为啥。
Showfom
2021-02-01 18:22:40 +08:00
https://btcpayserver.org/

开源的 BTCPay 一般都用这个搭建
keepeye
2021-02-01 18:25:36 +08:00
我是 马特.彦祖,很高兴回答你的问题,自己搭个全节点也没啥难度啊,随便租一台 e3 服务器就行,硬盘搞大点
htoooth
2021-02-01 18:55:51 +08:00
这不是交易所吗
Aaron325
2021-02-01 18:57:28 +08:00
不需要
你是在做这个方向,还是只是技术研究
redtea
2021-02-01 19:01:40 +08:00
100 个比特币,你们还是手工操作吧。
learningman
2021-02-01 19:04:39 +08:00
流程错了啊
应该是一开始买家就全款付给平台,收到货后平台扣除手续费付给买家
不是让买家自己分的啊
b00tyhunt3r
2021-02-01 19:14:22 +08:00
@swulling
@learningman

我们的商品类似虚拟道具,没有收不到货 /货有问题的可能性。
所以只要确认买家款项到了就可以视为交易成功。不用等待买家确认收货,因为发货(即时发到)/货本身一定没问题
b00tyhunt3r
2021-02-01 19:24:54 +08:00
@Aaron325
真的在做,年内就上线了。
老哥可以指点下具体的实现方法吗
现在第 1 是不知道怎么自己发起一笔交易,第 2 怎么确认这个交易被矿工挖到了,并已经成功确认到主链了。
yfwl
2021-02-02 10:15:55 +08:00
麻瓜宝支付了解一下啊,或者第三方的 BTC 支付系统啊,你自己去对接节点很麻烦... 有现成的 API 为什么不用呢
pkoukk
2021-02-02 10:22:34 +08:00
@b00tyhunt3r 我们当时是用的 bitcore 的 websocket,交易打包 push 到链上然后订阅地址,每当地址被一个区块 ack 之后会收到回调,确认数超过几个就认为确认到主链。
不过节点是自己搭的,不确定其它人的节点是否会给你开放这些 api
大概是这样,太久没做忘了
Aaron325
2021-02-02 12:50:50 +08:00
@b00tyhunt3r 给个联系方式,关注下,最近也想做这个方向
ruanimal
2021-02-02 14:34:36 +08:00
@b00tyhunt3r 就算即时到货,货也有可能有问题,比如充值不了
b00tyhunt3r
2021-02-03 12:33:34 +08:00
@pkoukk
兄弟 现在我想解决的主要是 2 个问题,
用户点击购买后,我这边服务器需要生成一个地址给用户付款。随后我需要知道用户的确付款成功了,比如这笔交易确认到主链了我接受到一个通知之类的。
但是我怎么之后这笔交易的交易 id(TxId)呢? 毕竟我只给了用户一个付款地址,交易是他自己完成的,只要他知道交易 id 吧。

第 2 是 就算我知道交易 id 了,我怎么用非人工的方法追踪这笔交易呢?你提到”交易打包 push 到链上然后订阅地址“, 这一步可以完成我的需求吗?可以的话能具体再说下吗,我搜了 bitcore 貌似没看到相关 API

还想问下,你有其他联系方式吗 v 站没有私信功能
主要是如果确实能帮到我, 我们希望给你一些酬谢礼品 谢谢!!
b00tyhunt3r
2021-02-03 12:35:26 +08:00
@pkoukk
病句更正:
但是我怎么知道这笔交易的交易 id(TxId)呢? 毕竟我只给了用户一个付款地址,交易是他自己完成的,只有他知道交易 id 吧。
wj5868386
2022-02-22 20:57:03 +08:00
这种就是 2 个方案,一种自己搭建钱包 做相应业务处理
第二种 用三方钱包类似优盾这种,他收到款会把交易回调给你。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/750382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX