reinaldomendes/changelly-json-rpc

Changelly Json RPC 封装API

v0.0.1 2018-05-13 00:35 UTC

This package is auto-updated.

Last update: 2024-09-14 11:55:51 UTC


README

json-rpc-api 封装 请参考 https://api-docs.changelly.com/

Build Status Coverage Status

安装

composer require reinaldomendes/changelly-json-rpc

实例化Api封装器;

use Rbm\Changelly\JsonRpc\Factory as ApiFactory;
$apiFactory = new ApiFactory();
$factoryOptions = [];
$api = $apiFactory->factory($factoryOptions);

API密钥和密钥

默认情况下,封装器将获取环境变量 'CHANGELLY_API_KEY' 和 'CHANGELLY_API_SECRET'。您可以实现另一种方法来获取API_KEY和密钥。

export CHANGELLY_API_KEY='myapikey';
export CHANGELLY_API_SECRET='myscret';

调用任何方法

您可以在 https://api-docs.changelly.com/ 中查看方法列表

如果您看到json语法消息,您将看到包含 "id"、"method" 和 "params" 键的json

{
  "id": "test",
  "jsonrpc": "2.0",
  "method": "getCurrencies",
  "params": {
  }
}

遵循以下规则

  • json消息中的 'method' 键将是封装器调用的方法名。
  • json中的 'params' 键将是封装器调用中的 Array 类型的参数。
  • json中的 'id' 键将是封装器调用中的 string|int 类型的参数。

所有方法都可以使用1或2个参数调用。

$api->getCurrencies('string',array());

或者

$api->getCurrencies(array());

  • 注意:当您省略 'id' 参数时,封装器将使用 uniqid 生成一个。
$btcAddressHash = "1TARXpabecedehdjdhsjwhduerr";
$id = "ONE_IDENTIFIER";
$params = [  
];
$response = $api->getCurrencies($id,$params); // {'id':'ONE_IDENTIFIER',....}
//or
$response = $api->getCurrencies($params);// {'id':'Rbm_xxxxxx',....}

创建事务示例

$btcAddressHash = "1TARXpabecedehdjdhsjwhduerr";
$id = "ONE_IDENTIFIER";
$params = [
    "from" => "ltc",
    "to" => "btc",
    "address" => $btcAddressHash,
    "extraId" => null,
    "amount" => 1
];

$response = $api->createTransaction($id,$params);

工厂选项

配置

A class which implements Rbm\Changelly\JsonRpc\Contracts\Config    
  • 您可以实现一个合同并使用完整的命名空间
  • 嵌入 - Rbm\Changelly\JsonRpc\Config\Env 示例
   use Rbm\Changelly\JsonRpc\Factory as ApiFactory;
   $apiFactory = new ApiFactory();
   $apiFactory->factory([
     'config' => 'env' // Rbm\Changelly\JsonRpc\Config\Env - this is the default behavior
   ]);      

使用您自己的配置实现

   namespace MyOwnConfig{
     use Rbm\Changelly\JsonRpc\Contracts\Config as ConfigContract;
     class config implements ConfigContract{
       public function getApiKey(){
         //... do something
         return $myApiKey;
       }
       public function getApiSecret(){
         //... do something
         return $myApiSecret;
       }
     }
   }
   ////
   ////

   use Rbm\Changelly\JsonRpc\Factory as ApiFactory;
   $apiFactory = new ApiFactory();
   $apiFactory->factory([
     'config' => MyOwnConfig\Config::class
   ]);      

驱动器

一个实现 'Rbm\Changelly\JsonRpc\Contracts\Driver' 的类

  • 您可以实现一个合同并使用完整的命名空间
  • 嵌入 - Rbm\Changelly\JsonRpc\Driver\V2 示例
  use Rbm\Changelly\JsonRpc\Factory as ApiFactory;
  $apiFactory = new ApiFactory();
  $apiFactory->factory([
    'driver' => 'v2' // Rbm\Changelly\JsonRpc\Driver\V2 - this is the default behavior
  ]);      

待办事项

  • 实现HashCorp Vault配置 - Rbm\Changelly\JsonRpc\Contracts\Vault 以安全地保护API_KEY

历史

版本 0.0.1(初始构建)- 创建与ENV变量工作的API封装器

致谢

作者 - Reinaldo Barcelos Mendes (@reinaldomendes)

许可

MIT许可(MIT)

版权所有(c)2015 Chris Kibble

以下对本软件及其相关文档文件(“软件”)的副本的任何个人,免费许可,在不限制的情况下使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向软件提供的人这样做,但受以下条件的约束

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分的副本中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是否因合同、侵权或其他行为而产生,是否与软件或其使用或其他方式有关。