はじめに
さくらインターネットのスタンダードプランで、WooCommerceとStripeでApplePayに対応しようとすると、そのままではうまくいかなかったので、備忘録も兼ねて書き留めておこうと思います。さくらインターネットのスタンダードプランでWordpressでサイト構築し、常時SSLプラグインを使っていると、おそらくどこでも再現すると思いますので、どなたかのお役に立てば幸いです。
問題点
基本的な流れは、Stripeの設定画面で、
- ApplePay を設定するサイトのドメインを登録
- ドメインの所有権を確認するための確認ファイルをサーバーの所定の場所にアップロード
- アップロードしたファイルをStripeが読みに来て確認
- WooCommerce側の設定をして完了
という非常に簡単な作業です。
(参考:StripeのApplePay設定画面)
しかし、さくらインターネットでは、なにもしないままだと確認ファイルを読みに行くと下のような状況になり、確認ファイルを読んでもらうことができません。
(参考:Firefoxで確認ファイルにアクセスした場合)
この状態では先に進めないので、確認ファイルに正常にアクセスできるように少しだけ工夫します。
原因と対策
原因をあれこれ考えていると、さくらインターネットのスタンダードプランで常時SSL化する時に同じようなことがあったことを思い出しました。
今では「さくらのレンタルサーバ 簡単SSL化プラグイン」なんて便利なものを作ってくれていますが、以前は手作業でした。
そのことを思い出したので、.htaccessのmod_rewrite.cが怪しいなと。
当時のことを思い出し、WordPressのルートにある.htaccessに設定を追加します。
# BEGIN Force SSL for SAKURA # 常時HTTPS化(HTTPSが無効な場合リダイレクト) <ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !on RewriteCond %{REQUEST_URI} !=/.well-known/apple-developer-merchantid-domain-association RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </ifmodule> # END Force SSL for SAKURA
7行目の「RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 」の上に「RewriteCond %{REQUEST_URI} !=/.well-known/apple-developer-merchantid-domain-association 」を追加します。これで確認ファイルを正常に読みに来てもらうことができます。
あとは、指示されている場所に「.well-known」ディレクトリを作成し、Stripeの設定画面からApplePayを設定するだけですので、すんなり進むと思います。
WooCommerce側の設定
WooCommerce側はチェックボックスをひとつ入れるだけです。
ダッシュボードから、
WooCommerce > 設定> 「決済」タブ> 「Stripe」行の右端の「管理」
と進みます。
表示された画面の下の方に、
□ Payment Request ボタンを有効にする。 (Apple Pay / Chrome Payment Request API)
Apple Payを使用すると、 Stripe および Apple の利用規約に同意したことになります。
という項目がありますので、こちらのチェックボックスをチェックを入れます。
これでApplePayが有効になりますので、iPhoneでApplePayが利用できるか確認してください。
最後に
せっかくStripeがApplePayに対応していてすぐに使える状態なのに、使えない状態で放置するのはもったいないです。
ダッシュボードに「ApplePay ドメインの確認に失敗しました。」って出続けてるのもイヤですし。
私と同じようにさくらのレンタルサーバーを利用しておられる方のお役に立ちましたら幸いです。