exinonefix / laravel-mixin-sdk-fix
MixinNetwork SDK for Laravel
1.2.0
2019-01-22 09:46 UTC
Requires
- php: ^7.1.3
- ext-json: *
- ext-openssl: *
- ext-zlib: *
- exinone/mixin-sdk-php: *
- illuminate/support: ^5.1
Requires (Dev)
- phpunit/phpunit: ^7.0
- symfony/var-dumper: ^4.2
README
MixinNetwork SDK for Laravel 5
要求
Laravel
>= 5.1Composer
PHP
>= 7.0
安装
$ composer require exinone/laravel-mixin-sdk -vvv
配置
- 在
config/app.php
中添加提供者和外观,Laravel 5.5+ 支持自动包发现,您应跳过此步骤。
'providers' => [ ... ExinOne\MixinSDK\MixinSDKServiceProvider::class, ], 'aliases' => [ ... 'MixinSDK' => ExinOne\MixinSDK\Facades\MixinSDK::class, ]
- 发布配置
$ php artisan vendor:publish --provider="ExinOne\MixinSDK\MixinSDKServiceProvider"
- 您可以使用以下任何一种方法进行配置。
-
编辑
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 中,请参阅 链接
-
否则,您可以按照以下方式调用它
// 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();
-
您还可以使用自己的方式将它们打包到项目中,以便更容易切换配置。
-
使用
运行
异常
如果 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) { ... }
其他异常
警告
-
您可以通过以下方式配置
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
-
获取原始响应内容
$mixinSdk->wallet()->setRaw(true)->transfer($asset_id, $opponent_id, $pin, $amount, $memo); // Return MixinNetwork raw Response content
替代方案
许可证
MIT