Stripeでガストくじを実装してみた

Stripeでガストくじを実装してみた

どうもこんにちは塚本です!

今日はphpでStripeを実装する方法,
おまけでガストくじっぽいものを追加してみたいと思います.

また,1月25日(土)に島根県出雲市で行われる
JP_Stripes (Stripe ユーザーグループ)in 島根 Vol.2 — 今度は出雲でキャシュレス! へ塚本参加してきます!!
そこで登壇してお話をしてきますので来週のブログはその感想をお話できればと思います〜

Stripeとは

PayPalと双璧をなすオンライン決済サービスです.
初期費用や月額使用料等は無料で,決済時の手数料3.6%のみという運営者に優しいサービスです.

また,決済時に画面遷移することなくそのまま支払うことが可能でとてもスムーズです.
PayPalのようなアカウント登録は無しで決済が可能ですので,利用者側もとても使いやすいです.
Stripeの魅力は語りきれないくらいあるのでぜひ皆様も実装してみてください!

Stripeの実装(View)

Stripeの準備はコチラを参考にしてみてください.

Composerでサクッと追加できると思います.

* View

<div class="order-confirm__buttons">
    <!-- stripe  -->
    {!! csrf_field() !!}
    <script src="https://checkout.stripe.com/checkout.js"
        class="stripe-button"
        data-key="pk_test_xxxxxxxxxxxxxxxxxxxx"
        data-amount="{{ $pay_price }}" // 金額
        data-name="ショップの名前が入ります"
        data-description="商品を購入する"
        data-image="ロゴイメージを入れられます"
        data-label="塚本へ課金する"
        data-locale="auto"
        data-currency="jpy">
    </script>
    <!-- stripe  -->
</div>

これだけで上のような決済ボタンが表示され使用することができます.
簡単で良いですよね〜

ただ,このままだと決済ボタンがダサいので僕はjsで純正のボタンを無理やり消して追加をしました.

* js

<script>
    // Stripeのデフォルトボタンを消す
    document.getElementsByClassName("stripe-button-el")[0].style.display = 'none';
</script>

// 自分でスタイルを当てられる
<button type="submit" class="stripe__button">購入する</button>

Stripeの実装(Controller)

* Controller

<?php
    namespace app\controllers;
    
    use Stripe\Stripe;
    use Stripe\Charge;

    public function order()
    {
          // Secret Key
          Stripe::setApiKey('Secret Keyが入ります');

          try {
                $charge = \Stripe\Charge::create(
                array(
                    "amount" => $order->pay_price,
                    "currency" => "jpy",
                    "description" => $order->name,
                    "source" => $request['stripeToken'],
                )
            );
          } catch (\Stripe\Error\Card $e) {}
    }

わかりやすいように省略できるところは省略しています.
基本的にはこれだけでStripeを使い始めることができます.

ガストくじとは

「ガストくじ」はファミレスのガストやステーキガストの会計時に,
すかいらーくアプリ画面を提示すると抽選で5組に1組当たり大吉だとお会計が無料になるくじです.

実は,僕は家族と釣りに行った帰りのガストで大吉を出したことがあります!

大吉だとお会計が無料,小吉だとお会計が10%オフになります.

では,phpをつかってガストくじを再現しStripe決済にハメ込んでみましょう.

レアリティの設定

5組に1組が当たりなので, とりあえず当たる確率を20%に設定しました.
その中で大吉は2.0%,小吉は18.0%ということに決めました.

@php
$rand = mt_rand(0,1000);

if( $rand <= 200 ){
    if( $rand <= 20){
        $message = '大吉です!! お会計無料 ;-)';
        $pay_price = 0;
    }
    else{
        $message = '小吉です!! お会計から10%Off ;-)';
        $pay_price = 22500;
    }
}
else{
    $message = '残念!ハズレでした ;-(';
    $pay_price = 25000;
}
@endphp

とりあえずこんな感じにして,
$pay_priceを値段のとこへ,$lot_messageを表示したいとこへってやればガストくじっぽくなると思います.

皆さんのECサイトにも組み込んでみてはいかが!?