我正在尝试验证比特币引擎响应一旦在帐户余额内执行正确的金额和正确的钱包我得到交易ID,但如果我输入金额太多和假钱包我没有收到任何错误作为回报只是一个空白页面与HTML,头部和身体元素。是否有任何调试模式或我可以做什么来接收任何响应?
$message = ($bitcoin->sendfrom($mywallet,$to_wallet,$wammount));
我正在使用jsonRPCClient连接比特币引擎。
然而,当我使用RPC命令在控制台中执行此操作时
我得到的是:帐户资金不足(代码-6)
重定向代码
if ($message !== '') {
ob_start();
header("Location: mywallet.php?error=done");
die();
} else {
ob_start();
header("Location: mywallet.php?error=true");
die();
}
更新是的,我会更多ob_start();上面,事情是,一旦尝试(尝试,捕获)事件我在SUCCESS上获得空白页面(所以没有事务ID像我正在做的正常方式我回来交易ID)在FAIL我无法连接到比特币服务器。我只需要听起来非常简单,我如何验证交易是成功还是失败,成功 - >我收到了ID,FAIL - >我得到了错误。因此,我可以在提交表单后将用户转移到页面上的正确位置。 Actualy我正在做的是提取资金表格,用户插入金额和他的钱包,从比特币账户回到他的私人账户。希望这有助于理解。
更新2 我已经改变了构造并且似乎工作得非常好,基本上是寻找“无法”字样,因为事务ID没有那个字,我得到的其他例外是“无法连接到服务器......”感谢您指导我。有什么反馈吗?
try {
$message = ($bitcoin->sendfrom($mywallet,$to_wallet,$wammount));
}
catch (Exception $e) {
$e->getMessage();
}
// exit;
if (!strpos($e,'Unable') !== false){
header("Location: mywallet.php?error=done");
die();
} else {
header("Location: mywallet.php?error=true");
die();
}
答案 0 :(得分:1)
您使用的是什么比特币php库?看起来可能是this one?
如果是这种情况,则不会返回错误消息throws BitCoinClientException
所以你需要像
这样的东西 try {
$message = ($bitcoin->sendfrom($mywallet,$to_wallet,$wammount));
}
catch (Exception $e) {
echo $e->getMessage();
}
<强>更新强> ob_start似乎是多余的,因为你没有在标题位置之前输出任何内容。除非您在达到此点之前输出了某些内容,否则您无法发送标题。因此,您需要在任何输出之前将ob_start向上移动到脚本的顶部。
此外,您没有向wallet.php脚本发送消息。或者你在那时完成了它?
RE:更新2 我可能添加的一件事是发生了一些其他异常消息的可能性,我们还没想到它不包含“Unable”。我会做更多的事情:
$errorOccured = false;
try {
$message = ($bitcoin->sendfrom($mywallet,$to_wallet,$wammount));
}
catch (Exception $e) {
$errrorMessage = $e->getMessage();
$errorOccured = true;
}
if (!$errorOccured) {
...
}
else {
header("Location: mywallet.php?error=true&errormsg=" . $errorMessage);
...
}
这需要修改mywallet.php以接受$errorMessage
作为额外的GET参数,以便您可以将其发送回用户。可能会另外使用另一个参数来成功发送包含事务ID的$message
。