クリプト

NEMウォレットの着金情報を確認する

mizuno's icon'
  • mizuno
  • 2018/05/31 07:50

昨日の記事「ZAIF APIから仮想通貨の価格を自動取得する方法」では、仮想通貨の為替レートを取得しました。

今日は、NEMウォレットの情報を取得する方法を解説します。(昨日の記事が未読のかたは、まず昨日の記事を読んでいただくことをお勧めします)

Content image

NEMウォレットの情報を取得する

NEMウォレットのアドレスを指定すると、そのアドレスの情報が取得できます。

2018年5月時点では、情報を取得するだけなら認証処理は不要です。(自分のウォレットにお金がどれだけあるか、どのウォレットと取引しているか、は誰でも知ることができます。)

情報が取得できるURL

NEMでは、所定のURLにアクセスすると、ウォレットの情報を取得できます。

http://alice3.nem.ninja:7890/account/transfers/incoming?address=(ウォレットID)

にアクセスすると、以下のようなデータを取得できます。

{"data":[{"meta":{"innerHash":{},"id":2020121,"hash":{"data":"37d4a590d2dc2a93259a24905dd34ca93caac5d6b25d288763b1d3deeaad4f69"},"height":1634788},"transaction":{"timeStamp":98970644,"amount":1000000,"signature":"85d971bdb14c9d2453ea0e284d5777a5030db4af11741f5348d4787efb2dfd2e10a6124317746c5ccc52ec25e9879c7a14cb178b8a737ebee8c80035d3a4d70f","fee":100000,"recipient":"NBZIB7E7Z7WJT67PQMHGBOK6L7OQERNMDQDBIOHR","type":257,"deadline":98992244,"message":{"payload":"7468616e6b796f75","type":1},"version":1744830465,"signer":"967be7f3c8e2badae6e2d0985def14966a2a95db18e787486e147738c737eb73"}}]}

上の例ではトランザクション一個ですが、トランザクションは複数取得できます。

データ形式は、jsonと呼ばれる形式です。

NEMのAPIドキュメントはこちらです。今回は、Incoming transactions(入金トランザクション)です。


処理の流れ

処理の流れは、下記のようになります。プログラミング言語はphpで、ウェブサイト構築ではconcrete5を使う想定です。

0.入金確認したいウォレット・金額・メッセージを調べておく

1.nemのAPIページにアクセスする

2.戻ってくるトランザクションデータをphpの配列に変換する

3.トランザクションデータに、条件にあてはまる金額・メッセージがあるかを確認する

concrete5の例を載せますので、参考にしてください。(コードはオープンソースライセンス GPL ver.2 or later とします。無料でご自由にお使いいただけます。)

コードの例(concrete5)

// 入金されるウォレット
$address = '';
// 入金される金額
$amount = '';
// nemウォレットの情報を取得
$apiurl = 'http://alice3.nem.ninja:7890/account/transfers/incoming';
$url = $apiurl . '?address=' . $address;
//前回と同じなので詳細は省略
$app = \Concrete\Core\Support\Facade\Facade::getFacadeApplication();
$httpClient = $app->make(\Concrete\Core\Http\Client\Client::class);
$httpClient->setUri($url);
$response = $httpClient->send();
$responseBody = $response->getBody();
$data = json_decode($responseBody, true);
// 支払いのチェック
$paid = false;
foreach($data['data'] as $transaction) {
  $amount_transaction = $transaction['transaction']['amount'];
  // 金額をチェックし、OKなら $paid に true
  if ( $amount * 1000000 == $amount_transaction) {
    $paid = true;
  }
}

こうすることで、入金されているか確認することができました。

なお、実際のプロダクト(NEM決済ネットショップ)では、この処理を定期的に実行することにより、購入者が支払ったら、なるべく速く入金確認処理するようにしています。


公開日:2018/05/31
獲得ALIS:6.01
mizuno's icon'
  • mizuno
  • @mizuno
月70万PVウェブメディア「計算フォーム」 https://calculator.jp/ でウェブ集客支援。書籍「WordPressユーザーのためのPHP入門」他一冊。TWITTER: @ounziw

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
44.10 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
161.20 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

Like token Tip token
32.32 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

Like token Tip token
54.01 ALIS
Eye catch
クリプト

UNISWAPでALISをETHに交換してみた

Like token Tip token
40.40 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS