【问题标题】:Javascript / Blockchain.info Websocket API Address SubscriptionJavascript / Blockchain.info Websocket API 地址订阅
【发布时间】:2017-03-19 16:05:39
【问题描述】:

我是比特币、Blockchain.info API 和 javascript 的新手,但是,我正在尝试实现一个代码来跟踪特定比特币地址上的实时支付通知。这里的想法是……用户扫描二维码<img src="http://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=12fMma2J15qre9bZPsX3AerdgWd9Poe9ee">,并支付到BTC地址12fMma2J15qre9bZPsX3AerdgWd9Poe9ee后,ID为#websocket的Div会立即显示Live(无需刷新网页),金额转移到地址的比特币,从而将 div 的初始内容从monitoring... 转换为转移的金额Recieved: 0.003 BTC

我已经写了一段代码......但我不确定我错过了什么。请帮忙。谢谢。

代码:

        <div class="row">
            <div class="col-md-4 "> 
                <img src="http://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=12fMma2J15qre9bZPsX3AerdgWd9Poe9ee"> 
                <div id="websocket">
                    Monitoring Transactions ...
                </div>

                <script>
                var btcs = new WebSocket("12fMma2J15qre9bZPsX3AerdgWd9Poe9ee");
                btcs.onopen = function() {
                    btcs.send(JSON.stringify({"op":"addr_sub", "addr":"12fMma2J15qre9bZPsX3AerdgWd9Poe9ee"}));
                };

                btcs.onmessage = function (onmsg) {
                    var response = JSON.parse(onmsg.data);
                    var getOutputs = response.x.out;
                    var countOuts = getOutputs.length;

                    for (i=0; i < countOuts; i++){
                        var outAdd = response.x.out[i].addr;
                        var address = "12fMma2J15qre9bZPsX3AerdgWd9Poe9ee";
                        if (outAdd == address){
                            var amount =response.x.out[i].value;
                            var calAmount = Amount / 100000000;
                            document.getElementById("websocket").innerHTML = "Recieved" + calAmount + "BTC";
                        }
                    }
                };
                </script>

            </div>
            <div class="col-md-8">
                <!-- more html stuff goes here -->
            </div>
        </div>

【问题讨论】:

    标签: javascript websocket bitcoin blockchain.info-api


    【解决方案1】:

    我在代码中的任何地方都没有看到与区块链的 api 建立连接,所以我猜这个

    var btcs = new WebSocket("12fMma2J15qre9bZPsX3AerdgWd9Poe9ee");
    

    应该使用api的地址而不是目标比特币钱包地址。

    【讨论】:

      【解决方案2】:

      您可能需要在地址位置启动新套接字时输入wss://ws.blockchain.info/inv

      【讨论】:

      • 以上 WebSocket api 不适用于 TestNet 地址??
      【解决方案3】:
          <div class="row">
              <div class="col-md-4 "> 
                  <img src="http://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=12fMma2J15qre9bZPsX3AerdgWd9Poe9ee"> 
                  <div id="websocket">
                      Monitoring Transactions ...
                  </div>
      
                  <script>
                  var btcs = new WebSocket("wss://ws.blockchain.info/inv");
                  btcs.onopen = function() {
                      btcs.send(JSON.stringify({"op":"addr_sub", "addr":"12fMma2J15qre9bZPsX3AerdgWd9Poe9ee"}));
                  };
      
                  btcs.onmessage = function (onmsg) {
                      var response = JSON.parse(onmsg.data);
                      var getOutputs = response.x.out;
                      var countOuts = getOutputs.length;
      
                      for (i=0; i < countOuts; i++){
                          var outAdd = response.x.out[i].addr;
                          var address = "12fMma2J15qre9bZPsX3AerdgWd9Poe9ee";
                          if (outAdd == address){
                              var amount =response.x.out[i].value;
                              var calAmount = Amount / 100000000;
                              document.getElementById("websocket").innerHTML = "Recieved" + calAmount + "BTC";
                          }
                      }
                  };
                  </script>
      
              </div>
              <div class="col-md-8">
                  <!-- more html stuff goes here -->
              </div>
          </div>
      

      【讨论】:

        猜你喜欢
        • 2018-09-03
        • 2013-11-09
        • 1970-01-01
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        • 2021-04-22
        • 1970-01-01
        • 2019-12-01
        相关资源
        最近更新 更多