No se puede consultar el saldo con la API de blockchain.info

Intenté el siguiente código y di credenciales válidas, pero no pudimos obtener la respuesta de la verificación de saldo. ¿Cuál sería la solución?

<?php

$guid="xxxxxxxxx";
$main_password="xxxxxxxxx";

$json_url = "https://blockchain.info/merchant/$guid/balance?password=$main_password";

$json_data = file_get_contents($json_url);

$json_feed = json_decode($json_data);

$balance = $json_feed->balance;

echo $balance;
Sería útil si nos mostraras la respuesta que da blockchain
No recibirá respuesta porque está usando una versión obsoleta de su servicio de billetera. Vea mi respuesta publicada a continuación.

Respuestas (1)

Está utilizando la antigua API de billetera de cadena de bloques, versión 1, que quedó obsoleta a principios de este año. Ninguna de las llamadas que está intentando funcionará.

La nueva API, versión 2, requiere que ejecute un servicio nodeJS local para manejar las llamadas. Esto requerirá que tenga acceso de raíz a su servidor web, por lo que deberá usar un VPS en lugar de un servidor web compartido básico.

Deberá solicitar una clave API aquí https://blockchain.info/api/api_create_code

Instale nodeJS
Instale NPM
Instale blockchain-wallet npm install -g blockchain-wallet-service
Debería instalarse en usr/local/bin
Ejecute el servicio node blockchain-wallet-service start --port 3030
Ahora se está ejecutando, pero aún necesita completar el protocolo de enlace con el servidor de blockchain. Podemos hacer eso con una solicitud cURL en un archivo PHP.

algún_archivo.php

//replace with your GUID, password and API key
 $url = "http://127.0.0.1:3030/merchant/YOUR-GUID/login?password=YOUR-PASSWORD&api_code=YOUR-API-CODE";
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_URL, $url);
 $ccc = curl_exec($ch);
 $json = json_decode($ccc, true);
 var_dump($json);

Guarde lo anterior y ejecútelo en su servidor. El archivo debería seguir girando y cargándose ya que blockchain no reconoce la dirección IP. Espere a que se agote el tiempo de espera de unos 60 segundos y luego revise su correo electrónico. Blockchain debería haberle enviado un intento de acceso a la API que muestra qué IP intentó conectarse. Siga el enlace y autorice el intento, también la dirección IP del correo electrónico e inclúyalo en la lista blanca en la configuración de su cuenta de billetera.

Ahora intente ejecutar el archivo de nuevo. Si hizo todo correctamente, debería ver una respuesta que enumera su GUID seguido de Éxito VERDADERO

Ahora estás conectado y puedes comenzar a enviar solicitudes con tu billetera.

Consulte la documentación de su API para ver llamadas de ejemplo una vez que esté configurado. https://blockchain.info/api/blockchain_wallet_api