Teachable で、Stripe決済でトラブルの事例と解決方法
Teachable では「日本語屋号」に注意
ここでは、Teachable.com を利用されている方で、Stripe決済でのトラブル事例を取り上げ、原因と解決策を紹介します。実際にサポートした事例から解説するので、同様のトラブルがあった方は、参考になると思います。
toiee Lab スタート時は、オンラインコースを提供するために「Teachable.com」を利用していました(今は、WordPressで自作しています。例えば、耳デミーなど)
過去に少しだけ使ったことがあるのですが、印象としては「多言語対応には、あまり力を入れていない」です。特に、アジア圏については、テストされていない印象です。
Teachableから届くニュースレーターの「〇〇さま」の部分が、常に文字化けしています。
トラブル内容
今回、ある方から「Teachableで急に決済ができなくなった。定期購読など、全て失敗するようになった」と相談がありました。
依頼主さまは、「Stripeなら日本語サポートがある」ため、Stripeに質問を行っていました。
私たちも、Stripeのサポートに何度か問い合わせをしたことがあるのですが、非常に優れたサポート、親切なサポートをしてくれます。エラーのログを読み解き、可能かなぎり理由を説明してくれます。
Stripeのサポートによれば、Teachableから送られてくるデータに不備があるとのことでした。具体的なエラーのメッセージ、StripeのAPIの仕様についても、詳しく説明して、指摘してくださいました。
ところが、依頼主さまは、Stripeの回答の意味を読み解けず(開発者以外には、難しいと思われます)、私どもに相談されました。
今回、Stripeサポートのメッセージでは、以下のように指摘されていました。
「御社のアカウント「xxxxxxx.teachable 」を確認させていただきましたところ、9月17日以降のエラーのログ全てが「parameter_invalid_empty」のエラーコードを表示しており、「statemet_descriptor」の値が正しく渡されていないために決済が失敗したのではないかと存じます。
「parameter_invalid_empty」とは、決済時に必要な値が渡されず、必須のパラメータをご確認いただく必要があるものに関するエラーメッセージです。
「statement_descriptor」とは明細書表記を意味します。
御社の成功した決済と失敗した決済のstatement_descriptorを確認させていただきましたところ、成功した決済の場合は、statement_descriptorに「??????????」が渡されており
失敗した決済の場合は、statement_descriptor には「■■■■■■■■■■■」が渡されております。
恐れ入りますが、御社の開発者の方とご相談の上、APIのstatement_descriptorには、半角英字の5文字以上22文字以下でご指定いただきますようよろしくお願いします。」
原因と解決策
原因は上記のメッセージにあるように
- statement_descriptorには、半角英字の5文字以上22文字以下で・・・
です。つまり、決済のためのテキストが長すぎることが原因です。一般的にUTF-8では、3バイトを使用するたまめ、英数半角換算すれば「日本語は7文字以下」にする必要があります。
Teachableでは、決済の明細に表示される屋号が「スクール名」となります。したがって、スクール名が「7文字以上」にすると、エラーが起こる可能性があります。
解決策は、スクール名を半角英数で「5 – 22文字以内」、日本語なら「2文字から7文字以内」にすることが必要です。
特殊なことですが、海外サービスを使う場合は「日本語の扱い」に注意をしてもらうと、トラブルを解決しやすくなると思います。