簡體   English   中英

Javascript / Blockchain.info Websocket API地址訂閱

[英]Javascript / Blockchain.info Websocket API Address Subscription

我是bitcoin,Blockchain.info API和javascript的新手,但是,我正在嘗試實現一個代碼,該代碼可跟蹤特定比特幣地址上的Live Payments通知。 這里的想法是...在用戶掃描QR圖像<img src="http://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=12fMma2J15qre9bZPsX3AerdgWd9Poe9ee">並付款到BTC地址12fMma2J15qre9bZPsX3AerdgWd9Poe9ee ,編號為#websocket的Div會立即顯示實時(不刷新網頁),已轉移到該地址的比特幣數量,從而將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>

我在代碼的任何地方都看不到與區塊鏈api的連接,所以我猜這

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

應該使用api的地址而不是目標比特幣錢包地址。

可能您需要在地址位置啟動新套接字時放入wss://ws.blockchain.info/inv

    <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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM