¿Cómo uso la API de recepción de pagos de Blockchain.info con el nodo JS / Express?

Blockchain tiene una excelente documentación para PHP, ¡pero nada realmente para el nodo!

¿Alguien aquí tiene algún proyecto, donde usaron la API de recepción de pagos de blockchain.info, en sus aplicaciones de nodo, para recibir dinero/verificar confirmaciones?

Aprendo mucho mejor al ver/recrear el código de ejemplo, ¡así que cualquiera que tengas me ayudaría muchísimo!

Respuestas (2)

Estoy trabajando en algo como esto ahora. Todavía no tengo una implementación completa construida, así que tengan paciencia conmigo por cualquier error o problema que pueda surgir. Sin embargo, esto podría ayudarlo a ponerse de pie...

Comencé instalándolo bitcoindy configurándolo como un cliente a través del cual Node.js puede interactuar con Blockchain. Hice esto configurándome bitcoin.confcon mi información de Blockchain y comenzando bitcoinden una pantalla. Eche un vistazo a esta página para obtener información sobre cómo conectar bitcoind con su cuenta Blockchain: https://blockchain.info/api/json_rpc_api

También necesitará un middleware para que Nodejs interactúe con Blockchain a través de bitcoind. Aquí está el enlace de Blockchain: https://github.com/jb55/node-bitcoin se puede instalar simplemente con:

npm install bitcoin

El archivo Léame de este Git proporciona información y fragmentos de código que puede usar para conectar Nodejs con Blockchain. El nodo se conecta a su servidor bitcoin local:

var bitcoin = require('bitcoin'); var client = new bitcoin.Client('localhost', 8332, 'username', 'password');

Node obtiene el saldo de todas sus direcciones, con al menos 6 confirmaciones:

client.getBalance('*', 6, function(err, balance) { if (err) return console.log(err); console.log('Balance:', balance); });

Aquí hay una lista de todas las posibles solicitudes de API de Blockchain: en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list

Puede usar estas funciones para crear y destruir direcciones de billetera, verificar sus saldos y enviar fondos desde su script si así lo desea.

Hablando brevemente sobre la seguridad, se recomienda el doble cifrado y se puede habilitar en la página "Detalles de la cuenta" de Blockchain My Wallet. Esto significa que cada dirección tiene su propia contraseña de acceso, además de la contraseña maestra de la billetera. Las operaciones simples, como obtener un saldo, no requieren que se envíen ambas contraseñas, pero el envío de fondos requeriría que Node envíe las contraseñas maestra y de billetera. Si está utilizando un servidor con una IP estática, también puede usar la configuración de 'Bloqueo de IP' en Blockchain para restringir el acceso a personas externas. Gotcha: la autorización de dos factores debe estar deshabilitada en su billetera Blockchain para permitir el acceso desde su script.

¡Ey! ¡Gracias, esto fue realmente útil! Aunque una pregunta! Si quisiera implementar mi aplicación en heroku, ¿cómo funcionaría? Según tengo entendido, esto solo haría todo localmente, ¿verdad? ¿Necesito comprar un servidor para ejecutar btcoind por separado en línea y luego conectarme o?

También encontré este paquete de nodos que funciona muy bien para manejar una billetera Blockchain a la vez.

https://www.npmjs.org/package/blockchain-wallet

npm install blockchain-wallet

var BlockchainWallet = require('blockchain-wallet'),
blockchainWallet = new BlockchainWallet("YourGuid", "YourPassword"),
// Certain API methods require a second password if the wallet is second password protected, while others don't at all.
transactionBlockchainWallet = new BlockchainWallet("YourGuid", "YourPassword", "YourSecondPassword");

blockchainWallet.list(function(err, data) {
  if(err) {
   throw err;
  }
  console.log(data);
});