我正在使用coinbase api制作比特币水龙头,并希望验证地址。我在网上查看是否有任何好的脚本,并且找不到任何好的脚本,所以我决定测试并查看它是否已经在API中构建,它就是!问题是,而不只是说这不是一个有效的地址,它显示一个LONG错误...
致命错误:未捕获的异常'Coinbase_ApiException',并在C:\ xampp \ htdocs \ nahtnam \ lib \ Coinbase \ Rpc.php中显示消息'请输入有效的电子邮件或比特币地址':84堆栈跟踪:#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','这是一个测试')#34 {main}在第84行的C:\ xampp \ htdocs \ nahtnam \ lib \ Coinbase \ Rpc.php中抛出
我是否可以将$ address_error设置为“请输入有效地址”(不是电子邮件),如果发生这种情况并且也不显示错误?谢谢!
答案 0 :(得分:1)
使用try
和catch
。
try {
if(/*invalid address check returns true*/)
throw 'Invalid address';
} catch(Exception $e) {
echo 'Exception: ' . $e->getMessage();
}
答案 1 :(得分:1)
扩展aliasm2k's answer,你可能想要更像这样:
编辑:根据评论讨论略微更改了答案
我认为我对你在评论中要求的内容有点不清楚。
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
}
这只是回应“请输入有效的电子邮件或比特币地址”。您不会获得所有其他信息,因为您正在捕获异常并只显示消息。 可能的错误消息are listed here。
另外,如果我可以给你一个稍微偏离主题的提示: 如果要查找有关已使用的特定地址的信息,请尝试blockchain block explorer api。
要简单地检查地址是否有效,您需要在代码中计算或者找到库函数来执行此操作。 api没有地址的主列表。地址的最后4个字节是前面字符的双sha-256校验和。顺便说一句,这是我给你的一种不精确的描述,但请检查here for a working php example