Stripe CheckoutをローカルのPythonで試す
2017/12/10
Stripe Advent Calendar 2017の参加記事です。
StripeのCheckoutフォームをテストモードで試してみるハンズオン手順です。
Pythonをローカルで動くように設定します。
目次
Stripe アカウント作成
まずStripeのアカウント作成です。
https://stripe.com/jpへアクセスします。
[アカウント登録]をクリックします。
メールアドレス、名前、パスワードを登録します。
もう出来ました。
登録したメールアドレスに確認メールが届いてますので、[Confirm email address]をしておきます。
管理者アカウントに2段階認証を有効にする
右上のアイコンをクリックして[プロフィール]をクリックします。
プロフィール画面で2段階認証 – [追加]をクリックします。
[SMSを追加]か[Google Authenticatorを追加]が選べますのでどちらかを選択して設定します。
両方設定した場合はログイン時に選択も出来ます。
ローカルPCの用意
Pythonがインストール済か確認します。
Mac/Linuxはターミナル、Windowsはコマンドプロンプトで次のコマンドを実行します。
1 2 |
python --version |
バージョンが表示されればインストール済です。
2系か3系かを覚えておいてください。
エラーになった場合はPythonをインストールします。
https://www.python.org/downloads/より3系のPythonをダウンロードしてインストールします。
※ Windowsでインストール中に「Add Python to environment variables」が選択できればしておいてください。
インストールが完了したかどうかは上のバージョン確認コマンドで確認してください。
テストコードの用意
テストコードをダウンロードします。
ダウンロードしたZIPファイルを展開して任意のフォルダに移動します。
Checkoutフォームに公開可能鍵を設定する
stripe_demo-masterフォルダ下のcheckout.htmlをテキストエディタで開きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<html> <body> <form action="http://0.0.0.0:8000/cgi-bin/stripe_test.py" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" data-amount="2000" data-name="Demo Site" data-description="2 widgets" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="ja" data-currency="jpy"> </script> </form> </body> </html> |
Stripeダッシュボードの[API]の公開可能のトークンをコピーして、checkout.htmlのdata-keyを書き換えて保存します。
Pythonのコードにシークレットキーを設定する
stripe_demo-master – cgi-bin フォルダ下のstripe_test.pyをテキストエディタで開きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
try: form = cgi.FieldStorage() logger.info(form) stripe_token = form['stripeToken'].value mail_address = form['stripeEmail'].value stripe.api_key = "sk_test_xxxxxxxxxxxxxxxxxxxxxxx" stripe.Charge.create( amount=2000, currency="jpy", description="Charge for {mail}".format(mail=mail_address), source=stripe_token ) except: logger.error(traceback.format_exc()) |
Stripeダッシュボードの[API]のシークレットキーのトークンをコピーして、stripe_test.pyのstripe.api_keyを書き換えて保存します。
Pythonの簡易CGIサーバーを起動する
stripe_demo-masterフォルダにターミナルで移動します。
次のコマンドを実行します。
(バージョンによってコマンドが違います)
Python 3系の場合
1 2 |
python -m http.server --cgi |
Python 2系の場合
1 2 |
python -m CGIHTTPServer |
1 2 |
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... |
と表示されるとOKです。
テストする
checkout.htmlをブラウザで開きます。
[Play with Card]をクリックします。
メールアドレス(存在しなくてもいいです)、
カード番号(テスト用 4242 4242 4242 4242)、
有効期限(未来の期限)、
セキュリティコード(3桁 or 4桁の番号)、
を入力して[2,000を支払う]をクリックします。
ダッシュボードを見ると、2,000円が入金されています。
ハンズオンは以上です。
本番で使用するときは[本番環境利用の申請]が必要です。
CheckoutのReferenceやAPIドキュメントを参考に色々試したりしてみましょう。
今回は簡単に試してみるためにローカルでPythonの簡易CGIサーバーを使いましたが、
環境はAWS Lambda + API Gatewayや、Herokuなどが使えるかなと思います。
言語も他の言語も使えますのでお好きな言語で開発してみてください。
Stripe Checkout Reference
https://stripe.com/docs/checkout
Stripe API Document
https://stripe.com/docs/api
※ 手順でおかしな点や改善点があればご指摘いただけますと幸いです。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
Zoom API でミーティング作成を試す
Zoom APIをPostmanで試すの環境で、ミーティングスケジュールを新規作 …
-
「API Meetup Tokyo #29 ニッポンのAPIエコノミー最前線 〜国産APIが社会を変える〜」に参加しました
API Meetup Tokyoに来ました〜 会場はおしゃれなDEJIMAさんで …
-
Twilioのサインアップをして最初の電話番号を設定する
ハンズオンなどTwilioを使ってみる場合に、最初は無料トライアルアカウントとな …
-
Twilioで電話を受ける人の仕事を少し楽に出来ないか考えてみた
Twilio Advent Calendar 2017の参加記事です。 Twil …
-
Zoom APIをPostmanで試す
ビデオコミュニケーションサービスのZoomには豊富なAPIが用意されています。 …
-
RocketChatのスレッドと返信をPythonで取得する
RocketChatのOutgoing Webhookを使って、投稿と返信をki …
-
docomo Developer supportの 雑談対話APIから自然対話APIへ移行しました
LINEやSlackのbotで重宝していた、雑談対話APIが終了する、とのことで …
-
Slackでチームを作成してbotから投稿出来るようにする
Slackで新しいチームを作成して、botが投稿出来るように設定します。 ※20 …
-
Feedly APIのタグストリームとカテゴリストリームの取得
以前からタグのストリームだけ取得していて、タグ付けをする前のカテゴリからストリー …
-
チャットボットのAPIでA3RTのTalk APIを使った
Microsoft TeamsのOutgoing Webhooksを使ってAWS …