EC-CUBEでNEM決済できないか考えてみた
仮想通貨界隈がにぎわっていたので僕も今年から参戦中です。
はじめは投資に目を向けていましたが、勉強していくうちにだんだん技術のほうに興味が移っていきました。
せっかくなので何かやれないかなーとふと思い、ECサイト(EC-CUBE)にNEMを導入する方法を考えてみます。
NEMとは?
仮想通貨の一種で、通貨の単位はXEM(ゼム)と読みます。 特徴はググればたくさん出てきますが、よくあげられるのが簡単、とっつきやすいという点です。 APIが提供されているので、指定されたフォーマットでアクセスすることでブロックチェーンのデータが取得可能です。 普段、Webエンジニアとして働いているぼくでもAPIの仕様さえ把握していれば、簡単にデータを取得することができます。
どうEC-CUBEに実装するか?
XEMを送金する際、送金先アドレスと送金額(XEM)が必須、任意でメッセージを付与することができます。 EC-CUBE実装の仕様は次のような感じで。
管理側に設定画面を追加し、送金先アドレスを登録可能にする
注文受付時に「JPY/XEM」のレートを取得し送金額を決める(注文直前にユーザに表示)
注文完了画面と注文メールに送金情報を表示する
1. 送金先アドレス
2. 送金額(XEM)
3. 自動生成されたメッセージ(受注情報を元に文字列を生成)
送金情報を記録したQRコードも表示する
注文情報と一緒にXEM送金情報をEC-CUBEに登録する
ユーザは送金情報に従って送金する
一定時間毎にプログラム実行し、APIで受信トランザクションを取得する
受信メッセージと、受注情報を元に生成した文字列が一致するか判定する
一致した場合は該当受注に対する決済と判断し更新処理を行う
送金額が注文受付時に設定した金額以上であれば入金済みの状態に更新する
これらを元に次回EC-CUBEに実装してみます。ではまた。