Stripe CLIでWebhookをローカルに転送
4. Stripe CLIでWebhookをローカルに転送 具体的に手順を教えて
● WSL2(Linux)環境なので、以下の手順で進めます。
1. Stripe CLIのインストール
# GPGキーを追加
curl -s https://packages.stripe.dev/api/security/keypair/stripe-cli-gpg/public | gpg --dearmor
| sudo tee /usr/share/keyrings/stripe.gpg
# リポジトリを追加
echo "deb [signed-by=/usr/share/keyrings/stripe.gpg]
https://packages.stripe.dev/stripe-cli-debian-local stable main" | sudo tee /etc/apt/sources.list.d/stripe.list
# インストール
sudo apt update && sudo apt install stripe
2. ログイン
stripe login
ブラウザが開くので、Stripeアカウントで認証します。WSL2でブラウザが開かない場合は、表示されるURL をWindowsのブラウザにコピペしてください。
3. Webhookをローカルに転送
stripe listen --forward-to http://localhost:8000/stripe/webhook
実行すると以下のような出力が出ます:
> Ready! Your webhook signing secret is whsec_xxxxxxxxxxxxx (^C to quit)
この whsec_... を .env の STRIPE_WEBHOOK_SECRET に設定してください。
4. 確認
stripe listen を起動したまま別のターミナルで composer run dev を実行し、Checkoutを行うと、ターミナルに受信したイベントが表示されます:
2026-04-08 10:00:00 --> checkout.session.completed [evt_xxx]
2026-04-08 10:00:00 <-- [200] POST http://localhost:8000/stripe/webhook
stripe listen はCheckout検証中はずっと起動しておいてください。止めるときは Ctrl+C です。
画像まで text 判定されてしまう
.gitattributes に 画像はテキスト変換しない と明示
* text=auto eol=lf
*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php
*.png -text
*.jpg -text
*.jpeg -text
*.gif -text
*.ico -text
*.webp -text
*.svg -text
CHANGELOG.md export-ignore
README.md export-ignore
サーバの壊れた画像を戻す
git pull
git checkout -- public/*.png public/*.ico public/images/*.png
git status
plusenglish重要事項
#「日本人は英語が話せない」を終わりにする。
なぜ、9年間も英語を学んだのに話せないのか。
それは、自分の言葉で学んでいないからです。
他人の例文を覚えても、話せるようにはなりません。
英語は知識ではなく、自分の表現だからです。
+englishは、その本質に正面から向き合ったアプリです。
# なぜ、+englishでのみ英語が身につくのか
理由1.自分の言葉で覚える(翻訳機能、音声確認機能)
英語が口から出ないのは、覚えている文が「自分の文」ではないからです。
+englishでは、あなたが言いたい日本語をそのまま入力します。
AIが自然な英語に翻訳し、正しい音声で確認できます。
例文を作るのが大変?そんなことはないです。
今日あなたがLINEで送ったメッセージを見返しみてください。
LINEは、あなたが覚えるべき英語の宝庫です。
そこから選んでコピペしてください。
自分が使う言葉だから、脳が「自分ごと」になる。
自分の感情と結びつくから、定着する。
だから実際の会話で自然に出てくるのです。
英語習得で一番効くのは、「自分が言いたい文」を覚えることです。
理由2.効率よく覚える(目隠し機能、並べ替え機能、自動復習機能)
覚える内容があっても、効率よく覚えなければ苦痛となります。
+englishは、生成した英文はワンタップで目隠しできます。
見ないで言う練習を繰り返すことで、本当の記憶になります。しかし、最初から全て隠してしまうとなかなかハードルが高いです。そこで、その下にヒントを置きました。そこで使われる単語を3語ずつバラバラにならべています。最初はこちらを見て覚えてみてください。
そして、忘却曲線に基づく自動復習機能。1日後、3日後、7日後、14日後。忘れる前に思い出させる機能が搭載されています。
努力や根性に頼らない。仕組みで覚える。だから効率が違います。
理由3.継続して覚える(学習進捗機能)
英語習得は短期戦ではありません。続けられるかどうかがすべてです。ここが最大の難関なのです。
日常会話はパターンの積み重ねです。
2,000〜3,000文を覚えれば、大部分はカバーできます。
+englishは、1年間で2,000文習得という明確な目標を掲げました。
学習進捗は可視化されます。
自分がどれだけ積み上げたかが一目で分かる。
積み上げが見えるから、やめたくなくなる。
そして2,000文達成時には修了証を発行。
ゴールがある。
進捗が見える。
だから続く。
# 最後に
英語は、可愛い演出では身につきません。
英語そのものを楽しめるようになったとき、初めて本当に続きます。
そしてその楽しさは、
自分の言葉が英語で言えた瞬間に生まれます。
他の栄会はアプリは可愛いキャラクターなどでモチベーションを上げようとしています。
しかし、それは英語そのものを楽しむというものではないのでと続かない。覚えられない。力をつけられない。
+englishは違います。あなたの言葉を、あなたの力に変えます。
話せるアプリは作りました。
1年後、話せないままでいるか。
話せる自分になるか。
決めるのは、あなたです。
Gemini CLI 安定インストール手順(WSL版)
① PowerShellでWSLに入る
画面がこうなればOK
② Node.js を入れる(重要)
古い Node が入ると Gemini が動きません。
sudo apt remove -y nodejs npm
次に Node 20 以上を入れる
確認
npm -v
例
10.x.x
③ Gemini CLI をインストール
④ 動作確認
⚠️ WSLでは gemini -v が固まることがある
代わりに
例
出ればOK。
⑤ WSLで固まる問題の対策(重要)
alias を作る
source ~/.bashrc
⑥ 確認
例
⑦ 初回ログイン
ブラウザが開く
Login with Google
⑧ 終了
Laravel開発でのおすすめ環境
↓
WSL (Ubuntu)
↓
Node
↓
Gemini CLI
プロジェクト
bun
vite
npm
とは 分離する。
プロジェクトの置き場所(重要)
できればここ
例
cd ~/projects
理由
-
node_modules 壊れにくい
-
vite 高速
-
Docker 安定
よくあるトラブル
gemini 固まる
対策
permission denied
node version エラー
確認
一番大事なポイント
Gemini CLI は
プロジェクトに入れない
OSツールとして使う。
最短まとめ(これだけ覚えればOK)
sudo apt update
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g @google/gemini-cli
echo 'alias gemini="node /usr/lib/node_modules/@google/gemini-cli/dist/index.js"' >> ~/.bashrc
source ~/.bashrc
gemini
stripe設定
1. 月額課金用の「価格(Price)」を作成する
現在のプログラムで使用しているPrice
ID(price_...)が「一括払い」用の場合、サブスクリ
プション(mode =>
'subscription')ではエラーになります。
1. Stripeダッシュボードの「商品」メニューから、
新しい商品を作成(または既存の商品を選択)し
ます。
2. 「価格」の設定で、「継続」(月次など)を選択
して保存します。
3. 発行された新しい Price ID(例:
price_1QXXXXXXXXXXXX)を、app/Http/Controller
s/StripeController.php の 'price'
の部分に貼り付けてください。
2. Webhook(ウェブフック)の設定をする
支払いの成功や解約をシステムに通知するために、Str
ipe側に通知先URLを登録する必要があります。
1. ダッシュボードの「開発者」>「Webhook」を開き
ます。
2. 「エンドポイントを追加」をクリックします。
3. エンドポイントURL:
https://english.p-books.xyz/stripe/webhook
を入力します。
4. 送信するイベント:
以下の3つを必ず選択してください。
* checkout.session.completed
(最初の支払い完了時)
* invoice.payment_failed
(月額更新の支払い失敗時)
* customer.subscription.deleted (解約時)
5. 「エンドポイントを追加」ボタンを押して完了で
す。
3. APIキーの確認(必要に応じて)
もしテスト環境から本番環境へ切り替える場合は、.en
v ファイルの STRIPE_KEY と STRIPE_SECRET
が本番用のもの(pk_live_... と
sk_live_...)になっているか確認してください。
テスト環境の場合】
1 APP_URL=http://localhost
(または開発サーバーのURL)
2 STRIPE_PUBLIC=pk_test_...
3 STRIPE_SECRET=sk_test_...
4 STRIPE_PRICE_ID=price_...
(テストモードで作った月額商品のPrice ID)
【本番環境の場合】
1 APP_URL=https://english.p-books.xyz
2 STRIPE_PUBLIC=pk_live_...
3 STRIPE_SECRET=sk_live_...
4 STRIPE_PRICE_ID=price_...
(本番モードで作った月額商品のPrice ID)
どのように紐づけされるか
1. [あなたのサイト] → (Price IDを送る) → [Stripeの決済画面]
* ここで「どの商品(Price ID)を売るか」をStripeに伝えます。
2. [Stripeの決済画面] → (ユーザーがカード入力) → [Stripeの管理システム]
* Stripeの中で「決済が成功した!」という事実が発生します。
3. [Stripeの管理システム] → (Webhook URLを探す) →
[あなたのサイトのWebhook受取口]
* Stripeは、あなたが管理画面で設定した「Webhook
URL」を見て、「このサイトの決済が成功したから、ここに通知を送ってあげよう
」と自動で判断します。
