如何在节点JS / Express中使用Blockchain.info的接收付款API?

时间:2014-03-12 07:03:44

标签: node.js api express payment bitcoin

他们有很好的PHP文档,但没有真正的节点!

这里有没有人有任何项目,他们在他们的节点应用程序中使用blockchain.info接收付款API来接收资金/检查确认?

通过查看/重新创建示例代码,我学到了很多东西,所以你拥有的任何东西都可以帮助我!#/ p>

- 感谢您的时间

1 个答案:

答案 0 :(得分:0)

要创建地址,您可以使用以下内容:

app.js:

api = require('blockchain')
app.post('/api/blockchain/createAddress', api.blockchainCreateAddress);

blockchain.js:

exports.blockchainCreateAddress = function(req, res) {

    var btc_address = '<you-destination-btc-address>';
    var api_url = 'https://blockchain.info/api/receive';
    var callback_url = '<your-callback-url>';

    var url = api_url + '?method=create&address=' + btc_address + '&callback=' + encodeURIComponent(callback_url);

    if (btc_address)
    {
        https.get(url, function(resp) {

            console.log("Calling Blockchain API at " + url)

            var body = '';

            resp.on('data', function(chunk) {
                body += chunk;
            });

            resp.on('end', function() {
                try
                {
                    console.log('Blockchain returns: ' + body);

                    res.json(JSON.parse(body));
                }
                catch(e)
                {
                    msg.error = e;
                }           

            });
        }).on('error', function(e) {
            msg.error = e;
        });
    }
};

这是第一部分,区块链会回复你一些数据,你应该存储返回的input_address并向其发送付款(向公众公开)。

将付款发送到input_address后,您应该创建一个新模块来处理区块链回调。

创建类似的内容并继续关注https://blockchain.info/api/api_receive上的文档(实现回调)

app.js

[...]
app.get('<your-callback-path>/:value/:input_address/:confirmations/:transaction_hash/:input_transaction_hash/:destination_address', api.blockchainCallback);
[...]

blockchain.js:

exports.blockchainCallback = function(req, res) {
   // Go on and save/store the payment
   // remember to send *ok* result string when you are done
   res.send("*ok*");
});

希望这可以帮到你。