exinonefix/laravel-mixin-sdk-fix

MixinNetwork SDK for Laravel

1.2.0 2019-01-22 09:46 UTC

README

MixinNetwork SDK for Laravel 5

要求

  1. Laravel >= 5.1
  2. Composer
  3. PHP >= 7.0

安装

$ composer require exinone/laravel-mixin-sdk -vvv

配置

  1. config/app.php 中添加提供者和外观,Laravel 5.5+ 支持自动包发现,您应跳过此步骤。
'providers' => [
    ...
    ExinOne\MixinSDK\MixinSDKServiceProvider::class,
],
'aliases' => [
    ...
    'MixinSDK' => ExinOne\MixinSDK\Facades\MixinSDK::class,
]
  1. 发布配置
$ php artisan vendor:publish --provider="ExinOne\MixinSDK\MixinSDKServiceProvider"
  1. 您可以使用以下任何一种方法进行配置。
    1. 编辑 config/mixin-sdk.php.env

      // account information
      'keys'    => [
      // default use is config
          'default' => [
              'mixin_id'      => env('MIXIN_SDK_MIXIN_ID'),
              'client_id'     => env('MIXIN_SDK_CLIENT_ID'),
              'client_secret' => env('MIXIN_SDK_CLIENT_SECRET'),
              'pin'           => env('MIXIN_SDK_PIN'),
              'pin_token'     => env('MIXIN_SDK_PIN_TOKEN'),
              'session_id'    => env('MIXIN_SDK_SESSION_ID'),
              'private_key'   => '',  //import your private_key
          ],
          'myConfig-A'=>[
              ...
          ]
      ],

      这些配置将被自动加载。

      // then you can
      MixinSDK::user()->readProfile();
      // or
      MixinSDK::use('myConfig-A')->user()->readProfile();

      如果您不想将私钥存储在 VCS 中,请参阅 链接

    2. 否则,您可以按照以下方式调用它

      // use setConfig method to save config
      MixinSDK::setConfig('myConfig-A',$config0);
      MixinSDK::setConfig('myConfig-B',$config1);
      // then you can
      MixinSDK::use('myConfig-A')->user()->readProfile();
      
      //-------
      // Or more simple way, using the 'use' method , chained with other methods
      MixinSDK::use('myConfig-A',$config)->user()->readProfile();
      // then you can
      MixinSDK::use('myConfig-A')->user()->readProfile();
    3. 您还可以使用自己的方式将它们打包到项目中,以便更容易切换配置。

使用

运行

异常

如果 MixinNetwork 返回错误,将抛出异常 ExinOne\MixinSDK\Exceptions\MixinNetworkRequestException。开发人员需要捕获和处理此异常。

try {
    // If the transfer fails here, an error will be thrown.
    MixinSDK::wallet()->transfer($asset_id, $opponent_id, $pin, $amount, $memo);
} catch (MixinNetworkRequestException $e) {
    // Here errCode and errMessage are the same as MixinNetwork, refer to the following link.
    $errCode    = $e->getCode();
    $errMessage = $e->getMessage();
    ...
} catch (\Throwable $e) {
    ...
}

MixinNetwork 错误代码

其他异常

警告

  1. 您可以通过以下方式配置 iterator。当 PIN 被加密时使用 iterator。通常,不应修改 iterator。如果您想修改此变量,请确保您知道自己在做什么。有关 iterator 的更多信息,请参阅 链接

    $iterator = [time()];
    // if use it by MixinSDK::pin()->updatePin($oldPin,$pin),
    // $iterator need have two element (count($iterator) == 2)
    
    MixinSDK::wallet()->setIterator($iterator)->transfer($asset_id, $opponent_id, $pin, $amount, $memo);
    // By default, microtime(true) * 100000 is used as iterator
  2. 获取原始响应内容

    $mixinSdk->wallet()->setRaw(true)->transfer($asset_id, $opponent_id, $pin, $amount, $memo);
    // Return MixinNetwork raw Response content

替代方案

[exinone/mixin-sdk-php]

[zamseam/mixin]

许可证

MIT