最近项目中用到USDT,涉及到创建账户、自动确认充值、自动提现等操作。后端代码使用的php,第一次用php做json-rpc的调用,遇到一些问题,比如json-rpc的参数请求、账号密码认证等,整理了一下,帮助大家跳坑。
$auth = sprintf('Authorization: Basic %s', base64_encode('rpc账号:rpc密码'));
$opts = array(
'http'=>array(
'ignore_errors' => true, //忽略错误
'method'=>"POST",
'header' => "content-type:application/json-rpc\r\n".$auth."\r\n",
'timeout'=>10,
'content' =>json_encode(array('jsonrpc' => '2.0', 'method' => 'omni_send','params'=>array("发送方地址", "接收方地址", 31, "转账金额"), 'id' => 1)),
)
);
$context = stream_context_create($opts);
$res =file_get_contents('http://127.0.0.1:8886', false, $context);
if(empty($res)){
return array(410, 'error');
}
$arr = json_decode($res, true);
if(empty($arr) || empty($arr['result']) || $arr['error'] != null){
return array(411, 'error');
}
var_dump($arr);die;
如果不加ignore_errors=true,有时候会出现file_get_contents():
failed to open stream: HTTP request failed!这个警告信息。加了这个参数后,则会直接返回错误信息,比如提示某字段不能为空、缺少参数、字段类型不符合等说明,方便调试问题。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!