Edited at
LaravelDay 9

Laravel5.7 + Stripe Checkoutで安全な実装のサンプル作った


はじめに

以前社内で利用する目的で、缶コーヒー販売の決済システムをRailsで構築したので、それっぽいシステムをLaravelでより安全に実装してみました!

Image from Gyazo


そもそもStripeとは

2018年も終盤を迎える中、もはや決済システムのデファクトになりつつあるのがStripeです。ちょこっとした決済システムを構築するには必須の技術になるかと思います。その利点はなんといっても審査の必要がなくすぐにシステムの構築を始められるというところです。

詳しくは公式サイトへ!

StripeでECサイトのような1回きりの支払いシステムをStripeで実装する方法は2つあります。



  1. Stripe Checkoutを使う方法



  2. Stripe Elementsを使う方法

UI/UXは気にせず、お手軽に便利に実装したい場合はCheckout, UIに柔軟に組み込みたい場合はElements

という感じの認識でひとまずは大丈夫だと思います。

今回はStripe Checkoutを利用してみました


安全な決済処理の図

laravel-stripe-sample.png


安全な実装のポイント


  1. クレジットカードの情報はユーザとStripe間でやりとりさせる

  2. Stripeへ支払う決済金額の計算ロジックは必ずUnitテストをかく

  3. GitLabCIなどを利用してデプロイ時には必ずテストを通す


事前準備


  1. Stripeに登録

  2. テスト用のAPIキーを取得

  3. サンプルの.envにAPIキーを設定


詳しい実装方法はサンプルをどうぞ!

https://github.com/NakanishiTetsuhiro/laravel-stripe-sample

社内の無人お菓子販売とかの集金業務が億劫になってる方などいましたら、是非このサンプルを参考にシステムを構築してみてください!


さいごに

Advent Calendar初参加でしたが記事はいかがでしたでしょうか?

毎日Laravelを使っている人のいろいろな考え方に触れられてとても楽しいですね!

引き続きクリスマスまで楽しんでいきたいと思います。それではー!