Stripe 決済 Demo1

Stripe 決済 Demo1

皆さんこんにちは!今晩は!!ロト君です。今回は先日行われた『JP_Stripes in 宮崎』で登壇した際の『Demo1』について公開していきたいと思います。

Stripe ロゴ

尚、Stripeについては以前、公開した記事を参考にして下さると、助かります。
関連記事は下記のリンクです。

Stripe決済について

1.Demo1について

Demo1はとてもシンプルに作っています。購入するボタンが一つだけのモノです。

Demo1の購入画面

1-1.order.html

実際のコードを見て行きましょう。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>購入画面</title>
    <!-- 購入ボタンのCSS -->
    <style type="text/css">
    .stripe-button-el {
        width: 350px;
        max-width: 100%;
    }
    .stripe-button-el span {
        font-size: 18px;
        padding-top: 15px;
        min-height: 60px!important;
    }
    </style>
</head>

<body>
    <form action="charge.php" method="POST">
        <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="公開APIキーの情報"
        data-amount="100"
        data-name="この商品の料金は100円です"
        data-locale="auto"
        data-allow-remember-me="false"
        data-label="購入する"
        data-currency="jpy">
        </script>
    </form>
</body>
</html>

と、ソースコードも非常に簡単です。

今回、決済のフォームで使っているのはStripe標準のcheckout.jsを活用しています。これを使えばData属性に設定するだけで、情報のやり取りが出来ます。非常に便利です。

自分独自のフォームを作る際には、Stripeの『Elements』と言う機能を使います。

詳細は、公式サイトで調べて見て下さい。

Stripe公式ドキュメント Elements

1-2.stripe-php-master

Stripeのシステムを実際に動かす為には『stripe-php-master』が必要になって来ます。上記のファイルはStripeのGitHubに上がっているのでそれをDLします。

ダウンロードサイトは下記のモノです。

Stripe GitHub stripe-php-master

ダウンロード出来ましたら。自分のフォルダ直下などに保存します。

1-3.charge.php

続いては、実際の決済をする処理をcharge.php中に記載していきます。

実際のコードはこんな感じです。

<?php
// ダウンロードしたStripeのPHPライブラリのinit.phpを読み込む
require_once('stripe-php-master/init.php');

// APIのシークレットキー
\Stripe\Stripe::setApiKey('秘密のAPIキー情報');

$chargeId = null;

try {
    // (1) オーソリ(与信枠の確保)
    $token = $_POST['stripeToken'];
    $charge = \Stripe\Charge::create(array(
        'amount' => 100,
        'currency' => 'jpy',
        'description' => 'test',
        'source' => $token,
        'capture' => false,
    ));
    $chargeId = $charge['id'];

    // (2) 注文データベースの更新などStripeとは関係ない処理
    // :
    // :
    // :

    // (3) 売上の確定
    $charge->capture();

    // 購入完了画面にリダイレクト
    header("Location: complete.html");
    exit;
} catch(Exception $e) {
    if ($chargeId !== null) {
        // 例外が発生すればオーソリを取り消す
        \Stripe\Refund::create(array(
            'charge' => $chargeId,
        ));
    }

    // エラー画面にリダイレクト
    header("Location: error.html");
    exit;
}
?>

決済も非常にシンプルです。

最初に、stripe-php-masterのinit.phpを読み込む事を忘れずに行って下さいね!

try中には実際の決済処理をStripeの構文に基づいて記載します。

1-4.complete.html

最後に商品購入完了画面の作成です。これも単純にシンプルに作ります。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>購入完了画面</title>
</head>
<body>
    <p>購入が完了しました。</p>
</body>
</html>

上記の感じです。非常にシンプルです。

2.まとめ

私はStripeを始めたのが発表直前でしたが、僅か3時間程度で出来ましたので、決済システムを作る際にはこれから役立つものだと考えています。

誰でも簡単にコードを書くだけでクレジット決済が可能となりますので、ECサイトを自前で作りたい方は試してみる価値があるかもしれません!

では、今回はここまでで!(>ω<)ノシ

パソコンカテゴリの最新記事