Gift history
Please access after login.


Wait a moment...

QuizNEMの進捗状況をお知らせします。

1116
0
2018-12-19 09:45:07
0.00 mXYM
(0)

nem Advent Calendar2018の19日目の記事です。弊社で開発中の新サービスQuizNEMの進捗状況をお知らせします。

開発済みのもの

  • クイズを登録・採点結果を表示する機能 (ここは既に弊社制作のホームページで実績あり)
  • クイズ回答者にNEMを配布する機能
  • 配布するNEMの額・人数を設定する機能

未開発のもの

  • 指定のNEMアドレスに入金したら、配布を自動実行する機能 (現在は、手動で、「配信する」ボタンを押したら配信する方式)
  • 配信失敗をキャッチして、自動で再送信する機能

今後の予定

来年1月に、ベータ版として、希望者に登録して利用できるようにしたいと思います。

 

技術的な話

nemを扱うためのライブラリとして、https://github.com/tomotomo9696/NEMTools_PHPを採用しました。キーペアを作成するところで利用しています。

スーパーノードとの通信には、NEMTools_PHPではなく、concrete5同梱のzend-httpを使用しています。以下のように書くと、スーパーノードにトランザクション送信できます。

// $sendjsonに、nemトランザクション用のデータが作成されている。ここはNEMTools_PHPほぼそのままなので、NEMTools_PHPサンプルを参照してください

// concrete5で、http clientを使うための準備
$app = Facade::getFacadeApplication();
$httpClient = $app->make(HttpClient::class);

// http clientを使う。zend-httpのラッパー
$httpClient->setUri($this->apiurl . 'transaction/announce');//apiurlはスーパーノードのURL
$httpClient->setMethod('POST');
$httpClient->setEncType('application/json');
$httpClient->setRawBody( json_encode($sendjson) );

// リクエスト実行
try {
    $response = $httpClient->send();
} catch (Exception $x) {
    Log::addEntry(t('Requestfailed: %s', $x->getMessage()));
}
if (!$response->isSuccess()) {
    Log::addEntry(t('Request failed with return code %s', sprintf('%s (%s)', $response->getStatusCode(), $response->getReasonPhrase())));
} else {
    // 正常系の処理
    $responseBody = $response->getBody();
    $data = @json_decode($responseBody, true);
    $transaction_hash = $data["transactionHash"]["data"];

    // concrete5のエクスプレス機能で、データベースにトランザクションハッシュを保存する
    $nem_recipient->setTransactionHash($transaction_hash);
}

 

  • データベース周りの処理(テーブルの作成や関連付け)はconcrete5のエクスプレス機能を使う
  • NEMトランザクションはAPIがしっかりしている

ということで、かなり楽に開発ができると思います。

実際にNEMを配ってみました

サンプルに登録された方のなかから、本日、朝9時ごろにランダムに5名の方に0.1xem送金させていただきました。

 

 

concrete5 express

関連記事

【QuizNEM開発その1】concrete5でのデータベース設計

【QuizNEM開発その2】データベースオブジェクトへのデータ書き込み

【QUIZNEM開発その3】クイズ部分の設計

 

Writer
ウェブ制作会社運営。技術を活用した集客が得意です。 自社ウェブメディアは月70万PV。 プログラミング技術(PHP, JavaScript)。専門学校で非常勤講師しています。執筆書籍 WordPressユーザーのためのPHP入門 はじめから、ていねいに。[第3版]

Comment
Login required to post comment
Loading...
https://symbol-sakura-16.next-web-technology.com:3001,https://symbol.harvest-monitor.com:3001,https://hideyoshi-node.net:3001,https://harvest-01.symbol.farm:3001,https://criptian-xym-node.net:3001,https://35665.xym.stir-hosyu.com:3001,https://yuna.keshet.finance:3001,https://cryptocat-xym-node.com:3001,https://misaki-xym.com:3001,https://ik1-305-12844.vs.sakura.ne.jp:3001,https://17107.xym.stir-hosyu.com:3001,https://23639.xym.stir-hosyu.com:3001,https://sym-main-01.opening-line.jp:3001,https://sym-main-02.opening-line.jp:3001,https://sym-main-03.opening-line.jp:3001,https://sym-main-04.opening-line.jp:3001,https://sym-main-05.opening-line.jp:3001,https://sym-main-06.opening-line.jp:3001,https://sym-main-07.opening-line.jp:3001,https://sym-main-08.opening-line.jp:3001,https://sym-main-09.opening-line.jp:3001,https://sym-main-10.opening-line.jp:3001,https://symbol-node-01.kokichi.tokyo:3001,https://50038.xym.stir-hosyu.com:3001,https://27423.xym.stir-hosyu.com:3001,https://angel.vistiel-arch.jp:3001,https://xym.stakeme.tokyo:3001,https://00-symbol-node.yagiyoshi.com:3001,
6BED913FA20223F8,051FAEC15105C808,73019335A785A3AE,5289A9B0DBB7EB25,6B245EAF1302E444,2C4A4893229DD0A9,63509D495CAD7B80,481D74291A71FD1F,009388A38C91A8B2,4E94920841641B77,027C6AD49DE2C9F9,