日本で決済をECプラットフォームで実装しようとすると、独特な日本の国内決済の特徴が壁になってしまい、なかなか難しいことになるケースが多くあります。Komojuのコンビニ決済を合わせて、この問題を簡単に解決する方法を紹介したいと思います。rails)、新しいアップリケーションを作ります。nodejs(Mac)を実行する必要もあるかもしれません。KomojuのセットアップGemfileアップリケーションができましたら、次にSpreeをGemfileに追加します。Komojuの支払方法(日本国内クレジットカード、コンビニ、銀行振込、プリペイドカードなど)を使うためにspree_komojuというgemも追加します。Deviseも必要になるのでspree_auth_deviseの最新版も、そして多言語(日本語)対応のためにspree_i18nも追加します。installを実行すればgemがインストールされます。Spreeのインストール次はspreeのassetsやmigrationsなどをインストールします。spree:install途中で以下のメッセージが出ますが、デフォルトのユーザ名とパスワード(spree@example.com、spree123)にします。[spree123]:問題がなければ、最後に以下のメッセージが返してきます。Komojuのインストールこれでインストールが終わりましたが、日本国内の支払方法を使うためspree_komojuをインストールする必要もあります。このコマンドでSpree用の支払方法に必要なファイル(画像、dbのmigrationなど)を追加します。now?」という質問が出ますが、「Y」を選ぶと必要なmigrationsも実行されます。以下のようにコンビニのロゴファイルもapp/assets/imagesに追加されます。"."他のgemのインストール最後にSpree用のauthと多言語化のgemのインストールコマンドを実行します。spree:auth:install‘spree_i18n’まずconfig/application.rbのdefault_localeというところに以下のように変更することで日本語をデフォルト言語にすることができます。:jaこれと合わせてspree_i18nの必要なmigrationsなども追加します。」をブラウザーでアクセスしたら以下のようなデフォルトストアの確認ができます。(商品の名前などはデフォルトで英語で表示されますが、インターフェスが日本語になっています。次にSpreeの必要な設定をSpreeの管理画面で行います。デフォルトのインストールですとアメリカ・ドルやユーロ、出荷方法も欧米の設定になってしまうのでそのままでは使えません。」をアクセスして、ユーザーネームとパスワードの項目に「spree@example.com」と「spree123」を入力したら管理画面が表示されます。左側の一番下のボタンは一般設定のメニューです。そこから「一般設定」をクリックして右側の通貨の設定のところに以下のように「USD」から「日本円」に変更します。することで通貨が日本円になりますが、デフォルトストアの商品は円の値段がないため、トップページに表示されないです。左側の上から2番目のメニューから「Products」をクリックして、一覧に表示される商品から一つ選んで、商品の「定価」の項目に日本円の値段を入れて「更新」をクリックすることで日本円の値段を付けることができます。アクセスして見ると日本円の商品一つが表示されています。(他の商品は日本円の値段がないため表示されないです。次に設定メニューから「ゾーン」にクリックして、「新規ゾーン」というところをクリックして、以下のように「国による区別」と「デフォルト」のところをクリックして、国から日本を選んで、名称を入力すれば日本用のゾーンが作成されます。次に一般設定から配送方法のページに新規配送方法をクリックして、ゾーンのところに上に作ったゾーンを選んで、「配送カテゴリー」をデフォルトにして、名称を付けて「作成」ボタンをクリックしたら配送方法が作成できます。」を開いてログインして、メニューから「クライアントアカウント」をクリックすると以下のページが表示されます。ここのSecretキーをSpreeの支払方法のページに入れる必要がありますので、次にSpreeの管理画面を開いて設定の「支払方法」で「支払い方法を追加」をクリックします。名称も入れて一回「作成」ボタンをクリックしたら支払方法が作成できます。APIキーが設定されていません。編集ページのAPI_KEYという項目にKomojuのクライアントアカウントページにあったSecretキーをコピペして「更新」ボタンをクリックするとコンビニ決済の設定が完了です。アクセスして商品をクックすると以下のページが表示されます。そこから「カートに追加」をクリックしてレジに進んで、住所などを入力して、配送方法を選ぶとようやく決済方法のページに辿り着きます。ここに表示されるコンビニ決済の名称は上に入力したものと一緒です。APIにリクエストします。成功すると完了ページにコンビニの情報が表示されます。Komojuの管理画面に戻って「取引」の一覧ページに開いてみるとコンビニ決済があります。オーダーIDが「R328900994-PRXKXK6Q」になっていますが、これはSpree側で設定されたもので、「R328900994」というのは注文番号、「PRXKXK6Q」というのは決済番号です。注文の完了ページに「ローソンの支払方法」というリンクがありますが、このリンクをクリックすると決済の説明ページで必要な「お客様番号」と「確認番号」が得られます。(コンビニによって番号の名前が変わったりしますのでご注意ください。)コンビニの入金これで注文と決済ができましたが、実際にお客様がコンビニで支払うとKomojuからのWebhookを受ける必要があります。前回の記事ではWebhookの作り方についての説明がありましたのでそれを参考にして、配信先のURLを「https://www.mystore.com/komoju/callback」にします。(「www.mystore.com」がSpreeで動いているストアのベースURLです。)シークレットトークンを設定する必要もあります。これを例えば「mystoretoken」に設定します。次にSpreeのapplicationに以下のファイルを追加することでKomojuのWebhookを受けることができます。"mystoretoken"これで入金の設定は完成ですが、実際にSpreeとKomojuの連動を確認するためにサーバーが必要です(ローカルではパブリックなURLがないため、KomojuのWebhookを受けられないです。)まとめまとめてみるとコンビニ決済が使えるSpreeストアをゼロから作るのに以下のステップが必要になります。SpreeとSpree用のgemsのインストールSpree管理画面からの基本設定(ゾーン、配送など)を日本に妥当な値にする。Komojuを使うことで他の支払方法(WebMoney、PayEasy、銀行振込など)も簡単に追加できます。支払方法の設定ページに追加することだけでカートに表示されます。