筆者について
21歳、大学4年です。
大学は文系ですが、プログラミング歴はだいたい1年半くらいです。
- 雀魂で麻雀始めたけど、ルール全く分からん
- 国内サッカー好き(柏レイソルサポ・アウェイも行くよ)
- 海外サッカー好き(プレミア・セリエAは毎節最低2試合は視聴)
- ゴルフの打ちっぱなしにハマり中(パター買わなきゃ)
- 禁煙13日目
- 週4ジム通い
- エナドリ中毒(頑張ってやめる)
- 週1サウナ
- 漫画・アニメ好き(最近は刃牙買いたい)
- ギター始めたい
- ジョージがモチベーター(いつもありがとう)
stripe決済成功後
本記事では、正確にはStripe Checkoutを用いています。以下ドキュメントです。
https://docs.stripe.com/payments/checkout/how-checkout-works?locale=ja-JP
Stripe Checkoutについてドキュメントには以下のように書かれています。
Stripe Checkout は事前構築済みの決済フォームであり、ビジネスはこれを使用してオンラインで決済を受け付けることができます。Checkout の構築済み機能を活用することで、開発期間の短縮が可能です。
これはかなり便利です。
UI・バックエンド構築の手間を省けます。決済機能とは大変複雑かつ重要度も高いため、エンジニアにとってはなるべく触れたくありません。
Airbnbの創業メンバー唯一のエンジニア、ネイサン・ブレチャージクが創業初期に構築した決済機能はエンジニア界隈で伝説となっています。
とまあ、Stripeは大変便利でメジャーです。
今回は以下のソースコードを取り上げています。
$checkout_session = $stripe->checkout->sessions->create([
'payment_method_types' => ['card', 'konbini'],
'payment_method_options' => [
'konbini' => [
'expires_after_days' => 7,
],
],
'line_items' => [
[
'price_data' => [
'currency' => 'jpy',
'product_data' => ['name' => $item->name],
'unit_amount' => $item->price,
],
'quantity' => 1,
],
],
'mode' => 'payment',
'success_url' => "http://localhost/purchase/{$item_id}/success?user_id={$user_id}&amount={$amount}&sending_postcode={$sending_postcode}&sending_address={$sending_address}&sending_building={$sending_building}",
]);
Stripe Checkoutのセッションオブジェクトを生成する中で、色々なプロパティがありますが、全ての解説をするのは面倒なので省きます。
今回注目したいのはsuccess_urlプロパティです。
これは決済が成功した場合にリダイレクトするURLを指定しています。
いかにも脳筋パラメータなのでここは反省したいのですが、リダイレクト後も処理を追加したいため、値を渡すために、パラメータに値を含んでいます。
ここでネックになるのが住所と建物名のパラメータです。
ASCIIコードに日本語はないため、住所と建物名はエンコードする必要あります。
僕は雑魚学生エンジニアなので最初は戸惑いましたが、まあフツーに当たり前のことですよね。
APIのドキュメントを見ながら開発を進めること自体あまり経験していなかったので、かなり楽しかったです。
きつい時こそやらなきゃいけないことやろうぜ