exinone/laravel-mixin-sdk

Laravel的MixinNetwork SDK

1.2.8 2023-11-22 07:08 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,
    ]
  2. 发布配置

    $ php artisan vendor:publish --provider="ExinOne\MixinSDK\MixinSDKServiceProvider"
  3. 您可以使用以下任何一种方法进行配置。

    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'   => str_replace("\\n", "\n", env('MIXIN_SDK_PRIVATE_KEY')),  //import your private_key
              'safe_key'      => env('MIXIN_SDK_SAFE_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。开发者需要捕获和处理此异常。

<?php
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的更多详情

    <?php
    $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. 获取原始响应内容

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

替代方案

[exinone/mixin-sdk-php]

[zamseam/mixin]

授权协议

MIT