首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript / Blockchain.info Websocket API地址订阅

Javascript / Blockchain.info Websocket API地址订阅
EN

Stack Overflow用户
提问于 2017-03-20 00:05:39
回答 3查看 1.1K关注 0票数 0

我是第一次接触比特币,Blockchain.info应用程序接口和javascript,然而,我正在尝试实现一个代码,跟踪特定比特币地址的实时支付通知。这里的想法是。用户扫描QR图像<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

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

代码:

代码语言:javascript
复制
        <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>
EN

回答 3

Stack Overflow用户

发布于 2017-12-28 10:30:05

我在代码中看不到与区块链api的连接,所以我猜是这样的

代码语言:javascript
复制
var btcs = new WebSocket("12fMma2J15qre9bZPsX3AerdgWd9Poe9ee");

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

票数 2
EN

Stack Overflow用户

发布于 2017-12-19 02:39:47

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

票数 1
EN

Stack Overflow用户

发布于 2019-03-08 12:36:25

代码语言:javascript
复制
    <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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42888808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档