BTCLN.shopオンライン開店!LN決済&匿名配送でステッカーが買える(その1:技術編)
Diamond Hands主催者のお一人Yuyaさんが「ステッカー作りたい」とtelegramで話題提供し、Kojiさんが「ライトニング払いかつ、住所を隠して品物を発注出来るスキーム誰か作ってください😂」と答え、tagaeruさんが「匿名配送+LN支払いを試してみた」を投稿されたのに刺激され、GWに入って時間ができたので、LN決済&匿名配送ができるオンラインショップを試しに作ってみました。
長くなりそうなので、1. 技術編、2.匿名配送編、3.実践編、の3回に分けて書きます。まずは、その1技術編です。
事前調査
Diamond Handsコミュニティでは、Umbrelを利用したルーティングや運用の情報交換が主ですので、初めはUmbrelのAppにあるBTCPay Serverを利用してショップを立ち上げようとしました。ただ、ずいずいさんが既に投稿されているように、そのままではダークマーケットになってしまいます。
色々と調べましたが、技術的にすぐには難しそうだったので、ひとまずUmbrelから離れて、通常のオンラインショップにLN決済を導入する方向で行こうと思います。
ドメイン名取得とレンタルサーバ運用
オンラインショップを開くには、まずはドメイン名とそれを運用するサーバが必要です。今回は私がいつも利用している、Value-Domain.comとCORESERVERにしました。
ドメイン名は短くて覚えやすいものを色々と検索して、BTCLN.shopにしました。「.shop」ドメインは初めて取得しました。年間の登録料は通常4,378円ですが、初年度のみは割引で270円 です。
レンタルサーバーは、CORESERVERのライトプラン「CORE-MINI」です。料金は2,640円/年(220円/月)です。
あわせて3,000円弱あれば、1年間ショッピングサイトを運用できます。
次項で紹介しますが、ショッピングサイト構築にはWordpressを利用しました。初めてサイト構築する方は、以下を参考にすれば1分でWordpressの立ち上げまで到達できます。
オンラインショッピングサイト(Wordpress + WooCommerce)
サーバの契約と準備が終わったら、オンラインショッピングサイトの構築です。BTCおよびLN決済ができるサイトを構築するためにこちらも色々と調べたところ、Wordpressのプラグインで動作するショッピングサイトWooCommerceに、OpenNodeの決済機能を追加するプラグインを発見しました。
Wordpressのプラグインは、ダッシュボード画面からプラグインメニューで検索をして、ボタン1つで簡単にインストールと有効化(アクティベーション)ができます。検索画面で「WooCommerce」および「Accept Bitcoin instantly via OpenNode」と検索してください。
OpenNodeのアカウントを作成
OpenNodeはカストディアル・ウォレットを提供しており、簡単にビットコイン・ライトニングネットワーク決済が可能になります。
まずは、OpenNodeのサイトにアクセスして、ユーザ登録(Sign Up)をしましょう。メールアドレスとパスワードを入力するとメールが届きます。承認してログインすると、KYCのために運転免許などの写真と一緒に写った自分の顔写真などを提出する必要があります。
無事、OpenNodeのユーザ登録が完了したら、WooCommerceと連携するためのAPI連携の作業が必要です。
OpenNodeにログインした状態で、左側メニューのDevelopersから、[integrations] - [API Keys] - [Add API Key]をクリックして、LABELには適当な店舗名、PERMISSIONSは「invoices」として、[generate]を押すと、「e123d4567-e21f-4a35-1234-5678ecf901e0」のようなキーが表示されますので、忘れずにコピーしておきます。
Wordpressのダッシュボードに戻り、左袖メニューの[WooCommerce]の[設定]から、[決済]を開き、[OpenNode]を有効化します。ボタン右側の[管理]を押すと、API Auth Tokenを入力する欄があるので、先ほどコピーしたキーをペーストします。
ここまでの作業は、英語版にはなりますが、以下のサイトで詳しく説明されています。
WooCommerceを使ったECサイト
WooCommerceを使ったオンラインショッピング(EC)サイトの構築方法は、検索すればたくさん情報があると思います。以下のサイトなどを参考にしてください。
匿名配送のための個人情報入力欄カスタマイズ
通常のオンラインショップでは、当然のことながら、氏名や住所などを入力して、配送をしてもらいます。今回の試みは、購入者と販売者が個人情報をやりとりせずに「匿名」で配送をすることが目的ですので、この入力欄は不要です。逆に入力欄があると間違って入力してしまうこともあるので、非表示にしておきたいところです。
WordpressおよびWooCommerceのプラグインには、個人情報入力欄をカスタマイズできる「Checkout Field Editor for WooCommerce」がありましたので、こちらを利用します。
プラグインをインストールしたら、設定画面から、請求先フィールドの「billing_state(都道府県)」と「billing_email(メアド)」のみを残して、他を全て無効化します。
これによって、購入者がショッピングカートを決済する画面で、「都道府県」および「メールアドレス」のみを入力するフォームになります。都道府県を入力してもらう理由は、ゆうパックの送料が全国均一ではなく、都道府県によって異なるため、送料の計算に必要だからです。
ステッカー
ショップは出来ても、売れるものがなければショップになりません。今回は自作で4種類のステッカーを作成しました。
ライトニングショップBTCLN.shopオープン!
そんなこんなで出来上がったサイトがこちらです。
その2匿名配送編に続きます。
(5/25追記)
たがえるさんが「脱Tor!完結編」を投稿されました。素晴らしい!次はこれに挑戦だな。
記事を紹介していただきありがとうございます。私もオンラインショップ作りを始めるところだったので、大変参考になります。