德华们, 电商平台实现 btc 支付,一定要自建全节点服务器吗 (go 语言) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
b00tyhunt3r
V2EX    程序员

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

  •  
  •   b00tyhunt3r 2021-02-01 17:52:30 +08:00 2915 次点击
    这是一个创建于 1720 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上个贴子没表达清楚 目前平台不做自营,是 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 应该是哪种?

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

    18 条回复    2022-02-22 20:57:03 +08:00
    justseemore
        1
    justseemore  
       2021-02-01 18:03:04 +08:00
    方便 pt 跑路?
    JDog
        2
    JDog  
       2021-02-01 18:17:26 +08:00
    说清楚,是马德华还是刘德华
    swulling
        3
    swulling  
       2021-02-01 18:20:57 +08:00 via iPhone
    主流平台的结算都要到买家确认收货后,你设计那么着急得打钱给卖家是为啥。
    Showfom
        4
    Showfom  
    PRO
       2021-02-01 18:22:40 +08:00   1
    https://btcpayserver.org/

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

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

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

    还想问下,你有其他联系方式吗 v 站没有私信功能
    主要是如果确实能帮到我, 我们希望给你一些酬谢礼品 谢谢!!
    b00tyhunt3r
        17
    b00tyhunt3r  
    OP
       2021-02-03 12:35:26 +08:00
    @pkoukk
    病句更正:
    但是我怎么知道这笔交易的交易 id(TxId)呢? 毕竟我只给了用户一个付款地址,交易是他自己完成的,只有他知道交易 id 吧。
    wj5868386
        18
    wj5868386  
    PRO
       2022-02-22 20:57:03 +08:00
    这种就是 2 个方案,一种自己搭建钱包 做相应业务处理
    第二种 用三方钱包类似优盾这种,他收到款会把交易回调给你。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2563 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:53 PVG 11:53 LAX 20:53 JFK 23:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86