命中 blockcypher 时出错 api laravel

Getting error when hit blockcypher api laravel

这是我的代码:

public static function test(){
    try{
        $apiContext = ApiContext::create(
            'test', 'bcy', 'v1',
            new SimpleTokenCredential('my_token'),
            array(       'mode' => 'sandbox','log.LogEnabled' => false, 'log.FileName' => 'BlockCypher.log',   'log.LogLevel' => 'DEBUG') );
        $input = new \BlockCypher\Api\TXInput();
        $input->addAddress("input_address");

        $output = new \BlockCypher\Api\TXOutput();
        $output->addAddress("output_address ");
        $output->setValue(1000); // Satoshis

        /// Tx
        $tx = new \BlockCypher\Api\TX();
        $tx->addInput($input);
        $tx->addOutput($output);

        $request = clone $tx;

        $txClient = new TXClient($apiContext);

        try {
            $output = $txClient->create($tx);
        } catch (Exception $ex) {
            dd("Created TX", "TXSkeleton", null, $request, $ex);
            exit(1);
        }
        dd("Created TX", "TXSkeleton", $output->getTx()->getHash(), $request, $output);

        return $output;
    }

    catch (\BlockCypher\Exception\BlockCypherConnectionException $ex) {
        echo $ex->getData();
        die;
    }

}

这就是我用来创建 CreateTransaction api 但是当我将模式从 bcy 更改为 btc 时它给出检查错误 url get/post

代码来源:: click here

这里我得到的响应也被捕获了,所以这是一个错误,我创建了 api 用于生成地址并从那里创建输入地址并在 block.io 上创建帐户并创建从那里可以在这个 api 中使用的地址,除了这些我在 blockcypher 上的帐户是免费的,没有任何购买

{
  "errors":[
    {
      "error":"Unable to find a transaction to spend for address CCrB7dvBT1bqNfWxupKPH9v8yN7xukmqUF."
    },
    {
      "error":"Error building transaction: Address 33cjwDAyNeAPVUMWqh9hdRxdmwdTE4kyTx is of unknown size.."
    },
    {
      "error":"Not enough funds after fees in 0 inputs to pay for 0 outputs, missing -22200."
    },
    {
      "error":"Error validating generated transaction: Transaction missing input or output."
    }
  ],
  "tx":{
    "block_height":-1,
    "block_index":-1,
    "hash":"d21633ba23f70118185227be58a63527675641ad37967e2aa461559f577aec43",
    "addresses":[
    ],
    "total":0,
    "fees":0,
    "size":10,
    "preference":"low",
    "relayed_by":"116.193.163.150",
    "received":"2017-11-14T10:20:43.757719705Z",
    "ver":1,
    "double_spend":false,
    "vin_sz":0,
    "vout_sz":0,
    "confirmations":0,
    "inputs":[
    ],
    "outputs":[
    ]
  }
}

我正在测试目的,所以使用 test main 我是从 github

安装的

我在这里找到一种方法来做这件事是我的代码

<?php
try
    {
    $apiContext = ApiContext::create(env('BlockCypher_net') , env('BlockCypher_cn') , env('BlockCypher_v') , new SimpleTokenCredential(env('BlockCypher_key')) , array(
        'log.LogEnabled' => true,
        'log.FileName' => 'BlockCypher.log',
        'mode' => 'sandbox',
        'log.LogLevel' => 'DEBUG'
    ));
    $input = new BlockCypherApiTXInput();
    $input->addAddress($user['address']);
    $output = new BlockCypherApiTXOutput();
    $output->addAddress($data['address12']);
    $value_btc = 100000000 * ($data['btc12'] + 1 * ($data['btc12'] / 100));

    // dd($value_btc);

    $output->setValue($value_btc);
    $tx = new BlockCypherApiTX();
    $tx->addInput($input);
    $tx->addOutput($output);
    $request = clone $tx;
    $params = array(
        'includeToSignTx' => 1,
        'script_type' => 'mutlisig-n-of-m',
    );
    $txClient = new TXClient($apiContext);
    try
        {
        $txSkeleton = $txClient->create($tx, $params);
        $privateKeys = array(
            $user['private']
        );
        $txSkeleton = $txClient->sign($txSkeleton, $privateKeys);
        $txSkeleton = $txClient->send($txSkeleton);
        return array(
            'success' => 0
        );

        // dd($txSkeleton->getTx()->getHash());

        }

    catch(BlockCypherExceptionBlockCypherConnectionException $ex)
        {
        return array(
            'success' => 0,
            'msg' => $ex->getData()
        );
        }

    return $txSkeleton->getTx()->getHash();
    }

catch(BlockCypherExceptionBlockCypherConnectionException $ex)
    {
    return array(
        'success' => 0,
        'msg' => $ex->getData()
    );
    }

它对我有用,希望它能帮助您在遇到任何错误时删除评论。