V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
adkudao
V2EX  ›  Bitcoin

请问比特币支付是怎么实现的?

  •  
  •   adkudao · 2017-01-04 00:12:50 +08:00 · 7677 次点击
    这是一个创建于 2916 天前的主题,其中的信息可能已经有所发展或是发生改变。

    发现国外有些网站, 支持比特币支付, 只要往指定的比特币钱包打入特定数额的比特币, 立马就可以完成[充值 /购买]

    请问, 他们是如何实现这个功能的呢?


    PS: 我对 PHP 比较熟悉, 很熟悉支付宝支付 /微信支付的支付接口开发

    但是像这种比特币支付接口我尝试着 Google 一下, 没有找到相关的资料, 不知道用哪个网站, 也不知道实现的原理

    还请诸位大神不吝赐教, 在此谢谢了~

    15 条回复    2017-10-31 21:41:15 +08:00
    lgn21st
        1
    lgn21st  
       2017-01-04 00:34:56 +08:00   ❤️ 2
    比特币背后的技术叫做区块链技术,你可以抽象成一个公共数据库(另外一种抽象是公共账本),然后通过向某个地址打一笔钱就是向这个数据库插入一条记录,然后下一步就是不停的查询数据库,找出这个这条最新插入的数据。

    关于如何访问这个公共数据库?
    你需要安装一个公共数据库的本地客户端,也通过第三方 API 来查询,这样缺点是依赖第三方提供服务,但是不用下载(同步)整个区块链数据到本地,具体看这里 https://blockchain.info/api

    如果你安装客户端 https://github.com/bitcoin/bitcoin 的话,则可以通过 JSONAPI 来访问公共数据库 https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)
    sneezry
        2
    sneezry  
       2017-01-04 00:35:15 +08:00 via iPhone   ❤️ 1
    和交易所合作的吧,支持比特币支付的平台往往都是立马变现的
    adkudao
        3
    adkudao  
    OP
       2017-01-04 00:46:52 +08:00
    @lgn21st
    我明白了, 国外那些 PHP 网站的实现流程, 我是否可以理解为:
    1. 创建一个订单, 要求客户在指定时间内,比如 15 分钟内, 往收款地址打款;
    2. 服务器创建完订单后, 在 15 分钟内, 不停通过 api 来查询该地址有没有收到这笔款项;
    3. 如果没查到, 就取消订单, 如果查到了, 就给会员[充值 /购买成功]
    adkudao
        4
    adkudao  
    OP
       2017-01-04 00:47:42 +08:00
    @sneezry
    哈哈, 跟交易所合作没有必要吧, 太麻烦了, 个人开发者也没那个能力;
    sneezry
        5
    sneezry  
       2017-01-04 01:03:28 +08:00 via iPhone
    @adkudao 我懂你意思了,那是你举的例子不合适。你举的比特币支付的例子大部分真的是和交易所合作,没记错的话 coinbase 就支持支付接口,好像新蛋和维基都用的那个,商家拿到的就是法币。

    如果你就是想用一个程序获知比特币钱包收款状态应该有很多现成的项目可以参考。
    adkudao
        6
    adkudao  
    OP
       2017-01-04 01:15:44 +08:00
    @sneezry 其实就是想做个网站, 然后用比特币做支付接口, 面向老外, 这个在国外貌似挺成熟的, 但是国内好像相关的中文资料特别少, 我搜了一大圈, 很难有什么收获; 不过找到了一个叫"付钱啦"的网站, 准备试试里面的比特币支付接口
    http://fuqianla.net
    boter
        7
    boter  
       2017-01-04 01:35:35 +08:00   ❤️ 1
    @adkudao 直接拿 coinbase 或者 bitpay 的接口就行了
    yun
        8
    yun  
       2017-01-04 02:55:55 +08:00   ❤️ 1
    @boter 没有用别人接口做比特币支付的。
    比特币支付是基于 bitcoind(bitcoin core)的,自己搭建 bitcoind 服务器,支付时候随机获取一个收款地址,当比特币支付到此地址(0 确认即可,基本达到实时,这也是不能用别人接口的原因),即完成交易。
    frienmo
        9
    frienmo  
       2017-01-04 04:01:12 +08:00   ❤️ 1
    @yun 很多都用接口,接口的目的不是判断支付与否而是已实时价格转换成法币。
    cctvsmg
        10
    cctvsmg  
       2017-01-04 04:17:30 +08:00   ❤️ 2
    2333 果然 V2EX 都是 web 码农,连比特币方面的人才都没有的
    我来回答下,楼主如果只是想接受比特币付款,那有集中方式:
    1.如果你有 stripe 账号,可以增加 bitcoin 支付的 method ,但是需要美国税号,不然美帝会怀疑你用比特币偷税漏税,这个是比较麻烦的;
    2.比特币界也有那种,别人发送比特币,你接受到的是美元的第三方支付公司,典型的有两家,一家叫 bitpay ,李嘉诚投资,一家叫 coinbase ,这两家都提供完善的 sdk , namecheap 就使用了 bitpay 的 sdk ,充值还是非常迅速的;
    3.如果是只是单纯想接收比特币,并不想做任何转换,那推荐用 blockchain.info 的 api ,你只需要一个你的比特币地址, blockchain.info 对你的比特币没有任何控制权,他只是通过公开区块链信息去查询,是否有一笔钱转账到你的地址成功;
    4.国内也有同类的企业,比如 okcoin 旗下的币行钱包,也有商家功能,之前 oklink 做的更多一些,但是 oklink 现在转型做基于比特币的全世界货币自由兑换去了;

    强烈不建议自己实现支付接口,那样浪费时间也不专业,现有的 sdk ,只有自动转成法币的才收你钱,其他的都是免费的。

    v2ex 总说什么比特币没价值,代码不就是价值,以比特币为核心的一整套支付和转账体系就是其价值(当然这个价值更多建立在比特币的垄断之上), site:github.com bitcoin 看下比特币相关项目总代码量,就知道价值在哪儿了。
    boter
        11
    boter  
       2017-01-04 10:37:00 +08:00   ❤️ 1
    @yun 你没看懂楼主的意思,楼主是做个网站卖东西,用比特币收款
    adkudao
        12
    adkudao  
    OP
       2017-01-04 11:20:33 +08:00
    @boter
    @cctvsmg
    @yun
    @cctvsmg

    谢谢, 我的目的确实是想做个国外网站, 卖东西, 然后用比特币做支付接口

    @boter 和 @cctvsmg 两位大神提到的 bitpay 和 okcoin 不错, 我刚查了一下, 尤其是 okcoin, 还有中文文档, 值得大家试试
    PaulPeng
        13
    PaulPeng  
       2017-01-04 12:06:31 +08:00
    @cctvsmg 涨姿势了…
    lgn21st
        14
    lgn21st  
       2017-01-04 18:23:44 +08:00
    @cctvsmg 戾气好重啊, V2EX 卧虎藏龙,另外也不要看不起 web 码农可以么?
    buseni
        15
    buseni  
       2017-10-31 21:41:15 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2755 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:53 · PVG 19:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.