StripeのSubscriptionのhookについて
こんにちは、のすけです。クレジットカード決済プラットフォームStripeの新しいバージョン。と言っても数年前のアップデートですがによって、機能がいろいろ拡充されてますよね。ただ機能が多過ぎてドキュメントを読んで仕様を理解するのも一苦労。 その中で、便利なサブスクの機能なのですがかなり柔軟に料金設定ができるのですが、既存のシステムにもサブスクの管理がある場合 重複して管理しなくてはならなくなります。例えば他の決済プラットフォームも併用している場合には、仕方なく、自社システムにも サブスク管理の仕組みを作って、Stripeのサブスクといい感じに連動させる必要があるかと思います。 それで、サブスクの入会、退会はどうやって検出したらいいの?という問題にぶち当たるのですが。そこはStripe、イベントをhookする仕組みが用意されています。着信する Webhook を使用してリアルタイムで更新を取得する | Stripe のドキュメントただ、いっぱいイベントあるんですよね。。サブスクの登録、キャンセルはどのhookを使えば、、、 'customer.subscription.created'を使ってみる サブスクが登録された時、このイベントが走ります ですのでこちらをhookするのが正攻法かと思います。 ただ、自社のサブスク管理システムとの連携の際に、 契約されたサブスクがどのサブスクかを識別するためには、あらかじめ登録時に metadataに識別のためのプランidなどを仕込んで置く必要があります。 ただ、Stripeの管理画面の商品設定画面ではproduct(商品)やprice(価格)にはメタデータをあらかじめ設定できるのですが サブスク契約(sub_xxxx)は契約時に作成されるので 事前にメタデータを仕込むことができないっぽです。 なので、やり方としては 登録は例えばコーディング不要のStripe既存のcheckout sessionの仕組みを使う場合 どうすればいいのかと言うと checkout.session.create時に subscription_dataというパラメータを設定できるので、そこのmetadataに 自社のサブスクを識別する識別子を設定しています。 これで、例えば'invoice.payment_succeeded'をhookして、渡されたJSONデータをパースすると どのサブスクか判別できます。 'invoice.payment_succeeded'での検出 Stripeでの支払いの際には(トライアルの¥0決済含む)必ず発行されるイベントに invoice.payment_succeeded'があります。 こちらをhookすることでサブスクの登録と継続決済の検出ができるのでいいかなと思います。 なぜなら、billing_reasonという項目にサブスクの状態が入っているからです 登録時には"subscription_create"が、継続決済時には"subscription_cycle"が入ってくるので こちらを識別する方法があります [...]
PhpStorm(Intellij)でjavaコマンドを実行するとバージョンが違う
別のターミナルを開くしかなさそうです。ここで、Issueが出てますが、みんなイライラしています。 intellij-support.jetbrains.com環境変数(PATH)のJAVA_HOMEが「C:\Program Files\Java\jdk1.8.0_241」になっていてもPhpStormで開くと openjdk 11.0.3 2019-04-16 OpenJDK Runtime Environment (build 11.0.3+12-b304.10) OpenJDK 64-Bit Server VM (build 11.0.3+12-b304.10, mixed mode, sharing)cmd.exeで開くと [...]
Nuxt.jsでAdobeのTypekitを使う方法
ネットを探しても無かったので載せときます。 サブセットの話 日本語のフォントというのは、アルファベットに比べて文字数が多いため常用漢字だけに絞ってパッケージングし直したりしているんですが。(サブセット化) 最近ではダイナミックサブセットといって、そのページで使われている文字だけを動的にサブセットする方法が流行っており、AdobeのTypekitしかり、FontPlusしかりTypeSquareしかりです。 ただ、ちょっと問題があってHTMLで作られたサイトなら簡単なのですがVue.jsなどJSによってレンダリングされているサイトの場合は、各社がサンプルで提供している方法ではフォントが適用されません。 なぜなら、JS描画なので、初期ロードのHTMLには何も文字が描画されていなため、0文字のサブセットになってしまうようです。 ダイナミックサブセットと Web フォント提供 JSでのレンダリング後にサブセット化すれば解決 各社ではJSのAPIを用意してくれているので、フォントのロードタイミングを工夫することで解決するというわけです。結論から言うとこれでいけました。 nuxt.config.js または、各ページのheadセクションでScriptをロード。 「xxxxxxx.js」は自分のtypekitのidが入ります。 head: { script: [ { src:'https://use.typekit.net/xxxxxxx.js'} [...]
プロジェクト・アリストテレス
googleの収益の根源(生産性を高める方法)を分析したけど 結果ほぼなにも関連がなくて すごい人材がいるとかでも無くて 唯一あったのが、社員の安心感「心理的安全性」だった。 ってやつ。 googleのアリストテレス プロジェクト rework.withgoogle.com グーグルが突きとめた!社員の「生産性」を高める唯一の方法はこうだ(小林 雅一) | 現代ビジネス | 講談社(1/4) だらか、彼らはマインドフルネス(坐禅)とか、精神を安定させる方向も試しているわけだけど。あと最近あった記事だとこれ 瞑想が子どもたちの成績を向上させてストレスも軽減させることが可能と判明 - GIGAZINE で坐禅って寺なんだけど。 「禅寺」って日本にしかないのは、あまり知られていない。スティーブジョブズが坐禅してたというのも、日本の禅マスターに出会ったからで。仏教はインド発祥だけど、それが中国で熟成されて身体作法としての「禅」が生まれて。それが日本に渡った。 その後、中国ではどっかの王様がほぼ寺を壊したから、もはや日本にしか禅寺はないという。。 [...]
Let’s Work Together
Tell me more about your project
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
