PHP使用JSON-RPC调用Omni协议RPC接口

最近项目中用到USDT,涉及到创建账户、自动确认充值、自动提现等操作。后端代码使用的php,第一次用php做json-rpc的调用,遇到一些问题,比如json-rpc的参数请求、账号密码认证等,整理了一下,帮助大家跳坑。

最近项目中用到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!这个警告信息。加了这个参数后,则会直接返回错误信息,比如提示某字段不能为空、缺少参数、字段类型不符合等说明,方便调试问题。

  • 发表于 2019-06-10 16:44
  • 阅读 ( 1641 )
  • 分类:区块链

0 条评论

请先 登录 后评论
不写代码的码农
张立荣

系统架构师

10 篇文章

作家榜 »

  1. 正义小雷锋 17120 文章
  2. 15497 文章
  3. 徐专员 8545 文章
  4. 潜龙法援 4887 文章
  5. qwwwww 4198 文章
  6. 十号风球 3045 文章
  7. 正义常在 2807 文章
  8. 金融法律咨询师 2293 文章