MixinNetwork SDK for Laravel 5
Laravel
>= 5.1Composer
PHP
>= 7.0
$ composer require exinone/laravel-mixin-sdk -vvv
-
Add the provider and facade in
config/app.php
, Laravel 5.5+ supports package discovery automatically, you should skip this step.'providers' => [ ... ExinOne\MixinSDK\MixinSDKServiceProvider::class, ], 'aliases' => [ ... 'MixinSDK' => ExinOne\MixinSDK\Facades\MixinSDK::class, ]
-
Publish configuration
$ php artisan vendor:publish --provider="ExinOne\MixinSDK\MixinSDKServiceProvider"
-
You can configure it with any of methods below.
-
Edit
config/mixin-sdk.php
and.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'=>[ ... ] ],
these configurations will be automatically loaded.
// then you can MixinSDK::user()->readProfile(); // or MixinSDK::use('myConfig-A')->user()->readProfile();
If you don't want your private key stored in the VCS,refer to link
-
else you can call it as follows:
// 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();
-
You can also use your own way packing them up in your project to make it easy to switch configs.
-
code | description | module | Mixin Network Docs |
---|---|---|---|
MixinSDK::pin()->updatePin($oldPin, $pin) |
Update Pin code | Pin | link |
MixinSDK::pin()->verifyPin($pin) |
Verify Pin code | Pin | link |
--- | -- | -- | |
--- | -- | -- | |
--- | -- | -- | |
MixinSDK::user()->readProfile() |
Read self profile | User | link |
MixinSDK::user()->updateProfile(string $full_name, string $avatar_base64 = '') |
Update user’s profile. | User | link |
MixinSDK::user()->updatePreferences(string $receive_message_source, string $accept_conversation_source) |
Update user’s preferences. | User | link |
MixinSDK::user()->rotateQRCode() |
Rotate user’s code_id. | User | link |
MixinSDK::user()->readFriends() |
Get user’s friends. | User | link |
--- | -- | -- | |
--- | -- | -- | |
--- | -- | -- | |
MixinSDK::wallet()->createAddress(string $asset_id, string $public_key, $pin, $label, bool $isEOS = false) |
Create an address for withdrawal | Wallet | link |
MixinSDK::wallet()->readAddresses(string $assetId) |
Read addresses by asset ID. | Wallet | link |
MixinSDK::wallet()->readAddress(string $addressId) |
Read an address by ID. | Wallet | link |
MixinSDK::wallet()->deleteAddress(string $addressId, $pin) |
Delete an address by ID. | Wallet | link |
MixinSDK::wallet()->readAssets() |
Read user’s all assets. | Wallet | link |
MixinSDK::wallet()->readAsset(string $assetId) |
Read asset by ID. | Wallet | link |
MixinSDK::wallet()->deposit(string $assetId) |
Gant an asset’s deposit address (The api same as wallet()->readAsset ) |
Wallet | link |
MixinSDK::wallet()->withdrawal(string $addressId, $amount, $pin, $memo = '', $tracd_id = null) |
Get assets out of Mixin Network | Wallet | link |
MixinSDK::wallet()->transfer(string $assetId, string $opponentId, $pin, $amount, $memo = '', $tracd_id = null) |
Transfer of assets between Mixin Network users. | Wallet | link |
MixinSDK::wallet()->verifyPayment(string $asset_id, string $opponent_id, $amount, string $trace_id) |
Verify a transfer | Wallet | link |
MixinSDK::wallet()->readTransfer(string $traceId) |
Read transfer by trace ID. | Wallet | link |
MixinSDK::wallet()->readAssetFee(string $assetId) |
Read transfer fee | Wallet | link |
MixinSDK::wallet()->readUserSnapshots($limit = null, string $offset = null, string $asset = '', string $order = 'DESC') |
Get user's all snapshots. | Wallet | link |
MixinSDK::wallet()->readUserSnapshot(string $snapshotId) |
Get user's a snapshots by ID. | Wallet | link |
--- | -- | -- | |
--- | -- | -- | |
--- | -- | -- | |
MixinSDK::network()->readUser( $userId) |
Get user’s information by ID. | Network | link |
MixinSDK::network()->readUsers(array $userIds) |
Get users information by IDs. | Network | link |
MixinSDK::network()->searchUser($item) |
Search user by ID. | Network | link |
MixinSDK::network()->readNetworkAsset(string $assetId) |
Read public asset information by ID from Mixin Network. | Network | link |
MixinSDK::network()->readNetworkSnapshots($limit = null, string $offset = null, string $asset = '', string $order = 'DESC') |
Read public snapshots of Mixin Network. | Network | link |
MixinSDK::network()->readNetworkSnapshot(string $snapshotId) |
Read public snapshots of Mixin Network by ID. | Network | link |
MixinSDK::network()->createUser($fullName) |
Create a new Mixin Network user | Network | link |
MixinSDK::network()->externalTransactions($asset, $public_key, $limit, $offset, $account_name) |
Read external transactions | Network | link |
MixinSDK::network()->createAttachments() |
Create an attachment upload address. | Network | link |
MixinSDK::network()->mixinNetworkChainsSyncStatus() |
Get Mixin Network Chains Synchronize status | Network | |
MixinSDK::network()->topAsset() |
top asset | Network | link |
MixinSDK::network()->requestAccessToken(string $code) |
use code request access token | Network | link |
MixinSDK::network()->accessTokenGetInfo(string $access_token) |
use access token get info | Network | link |
MixinSDK::network()->accessTokenGetAssets(string $access_token) |
use access token get assets info | Network | link |
MixinSDK::network()->accessTokenGetContacts(string $access_token) |
use access token get contact info | Network | link |
MixinSDK::network()->searchAssets(string $snapshotId) |
search assets | Network | link |
--- | -- | -- | |
--- | -- | -- | |
--- | -- | -- | |
MixinSDK::message()->sendText($user_id, $data, $category , $conversation_id) |
send text | Message | link |
MixinSDK::message()->sendContact($user_id, $contact_id, $category, $conversation_id) |
send user card | Message | link |
MixinSDK::message()->sendAppButtonGroup($user_id, $data, $category, $conversation_id) |
send App Button Group (max three) | Message | link |
MixinSDK::message()->sendAppCard($user_id, $data, $category, $conversation_id) |
send App Card | Message | link |
MixinSDK::message()->askMessageReceipt($message_id) |
ask Message Receipt | Message | link |
MixinSDK::message()->sendBatchMessage($user_id, $data, $category , $conversation_id) |
send batch message | Message | link |
--- | -- | -- | |
--- | -- | -- | |
--- | -- | -- | |
MixinSDK::getOauthUrl($client_id, string $scope) |
Get Oauth Url | other | link |
MixinSDK::getPayUrl($asset_id, $amount, $trace_id, $memo, $client_id = null) |
generate a pay Url | other | link |
MixinSDK::getConfig($configGroupName='') |
read config | other |
If MixinNetwork response with an error,An Exception ExinOne\MixinSDK\Exceptions\MixinNetworkRequestException
will be thrown. Developers need to capture and handle this exception.
<?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) {
...
}
class | description |
---|---|
ExinOne\MixinSDK\Exceptions\MixinNetworkRequestException |
Api request fail |
ExinOne\MixinSDK\Exceptions\NotFoundConfigException |
not found config set |
ExinOne\MixinSDK\Exceptions\LoadPrivateKeyException |
private Key error |
ExinOne\MixinSDK\Exceptions\ClassNotFoundException |
class not found |
-
You can config
iterator
in the following way. Theiterator
is used when a PIN is encrypted. Generally,iterator
should not be modified. If you want ot modify this variable, be sure to know what you are doing. More details on 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
-
Get raw Recponse content
<?php $mixinSdk->wallet()->setRaw(true)->transfer($asset_id, $opponent_id, $pin, $amount, $memo); // Return MixinNetwork raw Response content
MIT