🐡

Stripe Error Handling 【 Node.js 】

2023/01/31に公開

全部は試せていないが、
大体のエラーハンドリングは何となく見つけたので
その辺を書きます。

そもそもエラーハンドリング出来ないメソッド

これはちょっとビビったけど、Stringでエラー内容が返ってくるから
ギリギリ問題なかったけど、無いものがあるだなんて・・・

カスタマー作成時
stripe.customers.create({ ... });

こいつを try catch 文のエラー処理で確認してみると、
まさかのStringが返ってきた。
本当はMapで区切られたオブジェクトが返ってきて欲しかったけど、謎。

ちなみに、requiredのパラメータが無かったのでエラーのしようもないけど
全く関係ないパラメータを入れたら『そんなパラメータは無い』って返ってきた。

ゴリゴリのハンドリング

PaymentMethod作成時
stripe.paymentMethods.create({ ... });
PaymentMethodをCustomerに登録時
stripe.paymentMethods.attach({ ... });

こいつらはゴリゴリにオブジェクトで返ってきたので、
try catch のエラーからどのデータを使ってエラー文を投げるか見極める必要がある。

エラー文
const errorMessage = error.raw.message;

上記で取得できた。

その辺は下記のリファレンスを確認するべし
https://stripe.com/docs/api/errors

おまけ

PaymentMethodを作成時に取得するオブジェクト内には、
last4(カードの下4桁) , brand , exp_month , exp_yearが返ってくるから最高。
last4とbrandは、わざわざ自分で作成してたけど、この辺を自分で作成する必要が無いのが嬉しいところ。

Discussion