StripeのWebhookで署名チェックを行う(Node.js)
この記事はJP_Stripesアドベントカレンダーの記事です。 StripeのWebhookとして作成したAPIを、StripeのWebhook以外から実行できない様にする実装をNode.jsで行います。 なぜ署名チェックするのか 公開されたAPIになるので、外部から自由にコールされるのはいろいろよろしくありません。 StripeのWebhookがなげてくるフォーマットを知ってい...
Stripeを中心とした収益分析、開発、運用に関する知見を共有しています。
この記事はJP_Stripesアドベントカレンダーの記事です。 StripeのWebhookとして作成したAPIを、StripeのWebhook以外から実行できない様にする実装をNode.jsで行います。 なぜ署名チェックするのか 公開されたAPIになるので、外部から自由にコールされるのはいろいろよろしくありません。 StripeのWebhookがなげてくるフォーマットを知ってい...
この記事はJP_Stripesアドベントカレンダーの記事です。 2019年のre:invent系列で発表されたサービスのひとつ、EventBridge。 これをStripeと連携させるサンプルプロジェクトがGitHubにありましたので、さっそく試してみました。 セットアップ Serverless Frameworkのセットアップ まずはデプロイに使うServerless Frameworkをインス...
これはStripeアドベントカレンダーの記事です。 Stripeの処理系統は原則サーバー側で実行されます。そうなるとAWSであれば、だいたいLambda + API Gatewayを使うことになります。 この場合に意識しておくと良いかなと思ったことをいくつかまとめました。 1: APIキーはSystems Manager or Secret Managerに入れる APIキーをコードに書いてコミッ...
技術書典の後払いでPaypalを使いたくなかったので、Payment Request APIを使った支払いを試してみました。 Chromeにクレジットカードを設定する chrome://settings/payments にアクセスすることで、ブラウザに登録された支払い情報の追加・更新・削除ができます。 ここで追加を選択すると、カード情報を入力する画面が開きます。 Stripeを使ったフォーム...
請求サイクルを変更する必要が出てきたのですが、Stripeではアクティブなsubscriptionの請求サイクルを更新することはできません。 まぁ、ユーザーからしたら当然のことですが。 ただ、開発環境だとたまにこのあたりを変更したくなる時があったりするので、plan_id指定で一括再生成するコードを書いてみました。 コード 長いです。 import * as Stripe from 'strip...
いつから可能なったのか不明ですが、Stripeでカスタマー情報を更新することで自動送信するメールの言語を変更できるようすです。 言語を変えた状態。「詳細情報の更新」から変更できる 日本語に設定すると、請求・領収メールの文面などが日本語化されます。 Node.jsで実行する customers.createでpreferred_localesを指定すればOKです。 stripe.customers...
案外整理できてなかったので、自分で振り返るのも兼ねて。 1: Finalizedすると更新できないデータが有る invoices.updateは下書き状態のものにしか実行できない項目がいくつかあります。 Draft invoices are fully editable. Once an invoice is finalized, monetary values, as well as colle...
例えば「無料プランは1ユーザー1つだけしか契約できない」とかしたいですよね。 そういう時、Stripeではsubscriptions.listのAPIを利用して特定のプランをSubscribeしているか否かを見ることができます。 コード const hasSubscribed = async (customerId, plan) => { const result = await Stri...
Billingで一番触りたくなくて、適当にすると一番もめる箇所。それが解約まわりですね。 通常のプランについて もっとも簡単な方法は、ただsubscriptions.delのAPIを叩くことです。 await stripe.subscriptions.del(subscriptionId) その場でsubscriptionが解約されます。 途中で解約されたユーザーに対して、比例配分を行いたい場合は...
Stripe Billingではクラウドサービスのような「使った分だけ請求する」従量課金が作れます。「ユーザー1人につき100円」のようなこともできます。 今回はNode.js(TypeScript)でこのあたりの諸々を実装する方法をまとめました。 プランを作る まずは従量課金のプランを作ります。 今回作るプランは、「1単位10円の月額プラン」とします。 import * as Stripe fr...