Blockchain.info envía transacciones de mayo API v2

Actualmente estoy usando v2 de la API de Blockchain.info y quiero utilizar "Enviar muchas transacciones" y tengo algunos problemas.

Tengo 1 billetera con muchas direcciones, estoy tratando de enviar 2 transacciones dentro de 1 pago, su documentación de API aún es de v1 y falta el '& de' de su ejemplo de API, y he pasado más tiempo del que me gustaría admitir para que esto funcione.

esto es de allí sitio web:

http://localhost:3000/merchant/$guid/sendmany?password=$main_password&second_password=$second_password&recipients=$recipients&fee=$fee

$main_password Your Main Blockchain wallet password
$second_password Your second Blockchain Wallet password if double encryption  is enabled.
$recipients Is a JSON Object using Bitcoin Addresses as keys and the amounts to send as values (See below).
$from Send from a specific Bitcoin Address (Optional)
$fee Transaction fee value in satoshi (Must be greater than default fee) (Optional)
$note A public note to include with the transaction -- can only be attached to transactions where all outputs are greater than 0.005 BTC.(Optional)

El resultado que obtengo es:

error al abrir la transmisión: ¡la solicitud HTTP falló!

Error fatal: se excedió el tiempo máximo de ejecución de 120 segundos

Ahora que la URL es incorrecta, pero ¿alguien puede ayudarme a decirme qué es específicamente?

Hasta ahora esto es lo que tengo

// Sending addresses 
$Address1 = 'Address1';
$Address2 = 'Address2';

//Amount coming from
$From = 'Address3';

//Amounts being sent in satoshi
$Amount1 = 100000;  // 0.001 of a btc
$Amount2 = 100000;  

$recipients = urlencode(' {
    "'.$Address1.'": '.$Amount1.',  
    "'.$Address2.'": '.$Amount2.'
}');

$Guid = 'MY_GUID';      
$Password = 'MY_PASSWORD';                              

$url = 'http://localhost:3000/merchant/'.$Guid.'/sendmany?password='.$Password.'&from='.$From.'&recipients='.$recipients.''; 
// I've also tried to remove $data and put '&api_code=MY_API_CODE' after
// $recipients as this also works for other api calls for v2

$data = array('api_code' => 'MY_API_CODE');

$result = sendAmounts($url, $data);

function sendAmounts($url, $data) { 
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',  // Also tried GET
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

return $result;
}

Gracias de antemano.

¿Ya configuró su servicio local de nodejs?
@m1xolyd1an: sí, configuré nodejs, puedo obtener saldos, enviar un pago único, etc. solo enviar muchas transacciones me está dando problemas

Respuestas (1)

A partir de enero de 2016, Blockchain.info realizó cambios en el servicio API de billetera que ahora 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.

Además, no recomiendo codificar a mano el JSON usted mismo cuando use sendmany. En su lugar, cree una matriz y luego use la función json_encode.

$array = array(
    "1someAddress" => 20000,
    "1someAddress2" => 150000,
    "1someAddress3" => 314159
); 
$addresses = json_encode($array);

No eres el único que tiene dificultades con la nueva versión de su API. Si aún necesita ayuda, consulte estos recursos.

https://www.youtube.com/watch?v=X8jsaf4sEgs
http://btcthreads.com/how-to-setup-blockchain-wallet-service/

Comencé una biblioteca PHP para comunicarme con el servicio nodeJS (aún necesita trabajo, faltan algunas funciones) https://github.com/coinables/blockchain-wallet-APIv2-PHP-Library