人生なんて暇つぶし

Webエンジニアの雑記ブログ。技術の話題はDApps開発、NEMアプリ開発がメイン。

移転しました。

約3秒後に自動的にリダイレクトします。

EC-CUBEでNEM決済できないか考えてみた

仮想通貨界隈がにぎわっていたので僕も今年から参戦中です。
はじめは投資に目を向けていましたが、勉強していくうちにだんだん技術のほうに興味が移っていきました。
せっかくなので何かやれないかなーとふと思い、ECサイト(EC-CUBE)にNEMを導入する方法を考えてみます。

NEMとは?

仮想通貨の一種で、通貨の単位はXEM(ゼム)と読みます。 特徴はググればたくさん出てきますが、よくあげられるのが簡単、とっつきやすいという点です。 APIが提供されているので、指定されたフォーマットでアクセスすることでブロックチェーンのデータが取得可能です。 普段、Webエンジニアとして働いているぼくでもAPIの仕様さえ把握していれば、簡単にデータを取得することができます。

どうEC-CUBEに実装するか?

NanoWallet送金画面
NanoWallet送金画面

XEMを送金する際、送金先アドレスと送金額(XEM)が必須、任意でメッセージを付与することができます。 EC-CUBE実装の仕様は次のような感じで。

  • 管理側に設定画面を追加し、送金先アドレスを登録可能にする

  • 注文受付時に「JPY/XEM」のレートを取得し送金額を決める(注文直前にユーザに表示)

  • 注文完了画面と注文メールに送金情報を表示する

  1. 送金先アドレス
  2. 送金額(XEM)
  3. 自動生成されたメッセージ(受注情報を元に文字列を生成)

  • 送金情報を記録したQRコードも表示する

  • 注文情報と一緒にXEM送金情報をEC-CUBEに登録する

  • ユーザは送金情報に従って送金する

  • 一定時間毎にプログラム実行し、APIで受信トランザクションを取得する

  • 受信メッセージと、受注情報を元に生成した文字列が一致するか判定する

  • 一致した場合は該当受注に対する決済と判断し更新処理を行う

  • 送金額が注文受付時に設定した金額以上であれば入金済みの状態に更新する

これらを元に次回EC-CUBEに実装してみます。ではまた。

twitter.com