Transactions

Blockchain.info 發送可能交易 API v2

  • December 16, 2017

我目前正在使用 Blockchain.info 的 API 的 v2 並且我想利用“發送許多交易”並且遇到了一些問題。

我有 1 個包含多個地址的錢包,我試圖在 1 次付款中發送 2 筆交易,他們的 API 文件仍然來自 v1,並且缺少他們 api 範例中的“&from”,並且花費的時間比我想承認的要多讓這個工作。

這是來自那裡的網站:

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)

我得到的結果是:

無法打開流:HTTP 請求失敗!

致命錯誤:超過最大執行時間 120 秒

我現在的網址是錯誤的,但任何人都可以幫助告訴我具體是什麼。

到目前為止,這就是我所擁有的

// 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;
}

先感謝您。

截至 2016 年 1 月,Blockchain.info 對錢包 API 服務進行了更改,現在要求您執行本地 nodeJS 服務來處理呼叫。這將要求您對您的網路伺服器具有 root 訪問權限,因此您需要使用 VPS 而不是基本的共享網路主機。

此外,我不建議在使用 sendmany 時自己手動編碼 JSON。而是創建一個數組,然後使用 json_encode 函式。

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

您不是唯一一個對他們的 API 新版本有困難的人。如果您仍然需要一些幫助,請查看這些資源。

https://www.youtube.com/watch?v=X8jsaf4sEgs

<http://btcthreads.com/how-to-setup-blockchain-wallet-service/>

我啟動了一個用於與 nodeJS 服務通信的 PHP 庫,(仍然需要工作,缺少一些功能)<https://github.com/coinables/blockchain-wallet-APIv2-PHP-Library>

引用自:https://bitcoin.stackexchange.com/questions/43469