0

我正在使用 coinbase api 制作比特币水龙头,并希望验证地址。我在网上查看是否有任何好的脚本,但找不到任何脚本,所以我决定测试一下它是否已经内置在 API 中,并且确实如此!问题是,它不仅仅是说这不是一个有效的地址,而是 php 显示一个 LONG 错误......

致命错误:在 C:\xampp\htdocs\nahtnam\lib\Coinbase\Rpc.php:84 中未捕获的异常“Coinbase_ApiException”和消息“请输入有效的电子邮件或比特币地址”堆栈跟踪:#0 C:\xampp\htdocs \nahtnam\lib\Coinbase\Coinbase.php(39): Coinbase_Rpc->request('POST', 'transactions/se...', Array) #1 C:\xampp\htdocs\nahtnam\lib\Coinbase\Coinbase .php(118): Coinbase->post('transactions/se...', Array) #2 C:\xampp\htdocs\nahtnam\faucet.php(54): Coinbase->sendMoney('17FSKMPAyXGR7EQ... ', '0.00000555', '这是一个测试') #3 {main} 在第 84 行的 C:\xampp\htdocs\nahtnam\lib\Coinbase\Rpc.php 中抛出

如果发生这种情况并且不显示错误,有什么方法可以将 $address_error 设置为“请输入有效地址”(不是电子邮件)?谢谢!

4

2 回答 2

1

使用trycatch

try {
    if(/*invalid address check returns true*/)
        throw 'Invalid address';
} catch(Exception $e) {
    echo 'Exception: ' . $e->getMessage();
}
于 2013-09-08T03:33:50.330 回答
1

扩展aliasm2k 的答案,您可能希望更像这样:

编辑:根据评论讨论稍微改变了答案

我想我有点不清楚你在评论中要求什么。

 try {
     $result = $Coinbase->sendMoney($bitcoinaddress, '0.00000555', 'this is a test');
 catch(Exception $e) {
     echo $e->getMessage(); 
     exit;   //optional but you probably want to quit here and show the user
             //the original form along with the error message to fix 
 }

这只是回应“请输入有效的电子邮件或比特币地址”。您不会获得所有其他信息,因为您正在捕获异常并仅显示消息。此处列出了可能的错误消息。

另外,如果我可以给您一个稍微偏离主题的提示:如果您想查找有关已使用的特定地址的信息,请尝试区块链区块浏览器 api

为了简单地检查地址是否有效,您需要在代码中计算它或找到一个库函数来执行此操作。没有 api 将拥有的地址主列表。地址的最后 4 个字节是前面字符的双 sha-256 校验和。顺便说一下,我给你的描述有点不准确,但是在这里查看一个工作的 php 示例

于 2013-09-08T04:04:07.070 回答