はじめに
おしゃべり猫型ロボット「ミーア」を開発中。
6月1日リリースに向けて、本体購入の決済をHPに設定中。
WordPress(WooCommerce)+Stripeの組み合わせで、Stripeの本番決済をテストしたところ、思わぬ落とし穴に遭遇したので共有。
クレジット入力画面が表示されない!?
WooCommerce + Stripeの連携設定は、下記記事に分かりやすく書かれているので割愛。記事を参考に設定を進めていき、無事テストモードでの検証が終わったので、そのまま本番環境の設定を進めていった。
https://tcd-theme.com/2022/06/woocommerce-stripe.html
ちなみにテストモードだと、下記のように、Stripeがあらかじめ用意しているテストカード番号を入力することで決済テストできる。
本番決済をテストしようと思い、とりあえず、配送無料、購入金額1円の最小単位にして、自分のクレジットカードで決済できるか試みたところ、、
「あれ!?クレジット画面入力欄が表示されていない?」
枠は表示されているが、実際のクレジット番号やCVCなどの記入欄が表示されていない。
これは、枠をクリックして、次の画面に遷移したら入力フィールドが表示されるのかな?と思ったがそうではなさそう。
Stripeの本番利用の権限がまだ降りていないのか、本番環境移行の設定(秘密鍵・公開鍵・webhookの設定など)が間違っていたのかなど確認したが特に問題はなかった。
最低購入金額として50円が必要
ということで、console.logを見たところ、StripeへのAPI通信の部分で400エラーが大量に吐かれていた。
エラーのリンクをクリックしたところ、下記メッセージが。
{
"error": {
"code": "amount_too_small",
"doc_url": "https://stripe.com/docs/error-codes/amount-too-small",
"message": "Amount must be at least ¥50 jpy",
"param": "deferred_intent.payment_method_types",
"request_log_url": "https://dashboard.stripe.com/logs/req_z7SjHMagmZfhA9?t=1716859713",
"type": "invalid_request_error"
}
}
円の場合、最低金額は50円必要なの?
最低金額に関しては、Stripeのドキュメントを見たが、50円と明記しているところは調べた限りなさそう。該当しそうな説明は下記リンクの「請求しきい値」の欄。
とりあえず、販売価格を50円に変更して、再度トライしたところ
無事表示された!
そのまま決済も無事完了!
Stripeの管理画面にも売上計上された。
メールも届いている。
結論
にしても、エラーのUI分かりづらすぎるな。というかそもそも画面上にエラー吐いていない。
50円以下の商品を売る人はそうそういないだろうから、というのもあるかもしれないが。
何はともあれ、無事本番決済もテストできたので、6/1のリリースに向けて進められそうである。