- 更新日: 2020年07月10日
- 公開日: 2020年07月01日
【Web決済】Pay.jpを使ってみよう(Python編)
Web上で決済、というと皆様はどんな手順をイメージされますか?
今回はカード決済の手数料が安く、国内で人気の Pay.jp を Python で使ってみましたので、その内容をご紹介します。
Webで決済できるPay.jpを使ってみよう(Python編)
Pay.jp とは
Pay.jp は、 2018年に BASE の決済部門を分社化してできた会社で、Pay.jp に登録すれば Web などでカード決済を実行できるようになります。 現在は Web 以外にも、PayPay のような QRコード決済サービス「PAY ID」も展開中です。
今回は Webサービスに Pay.jp を導入、ということで利用者の多い Python を使って Pay.jp の利用感を試してみました。
Pythonで有料の Webアプリなどを考えている方、参考にしてみてください。
Pay.jp で実課金を実行しようと思うと、事前に登録(法人のみ)が必要になってきます
Pay.jpの決済フローを確認
Pay.jpのマニュアルは充実していますが、いざ決済を試してみようと思うと、どう進めればいいか分かりにくいです。その手順をご紹介します。
いろいろ調べてみると Pay.jp で決済する手順は 1つではなく、いくつかのやり方がありました。今回は Web での利用を想定して、トークンから作成する手順を選択。
尚、今回の決済は”テストモード”での実行になります。本番環境は、 Pay.jp に利用者申請したのち、キーを変えることで実課金が実行されます。
【今回ご紹介する決済のフロー】
- トークンの作成
- ユーザーの作成
- 決済
Pay.jp 公式ドキュメント
Pay.jpのトークンを作成する方法
トークンを作成する前に、まずは Pay.jp を使うために環境整備から。まずは Google Colab で実行してみました。
Pay.jp の実行環境
Pay.jp を利用するために必要なライブラリをインストールします。
pip install payjp
そしてライブラリを使う際に必要となる”シークレットキー”をセット。
これで Pay.jp を使う準備が整いました。
トークンの作成
トークンを作成する手順は下図のように決まったメソッド(payjp.Token.create()
)を使って、カード情報などをセット。上図のカード情報はデモ用のカード番号で、カードナンバー以外の CVC や 利用期限は適当でOK。
そして作成された Token には、カード情報を含めたくさんの情報が格納されていることが確認できます。
この後の決済に必要な情報としては、トークンの ID。こちらを token_id = token['id']
で管理。
トークンは”固有のもの”で、1度しか使うことができません。決済を実行するたびに新しく生成する必要があります。
Pay.jpでユーザーを作成する方法
Pay.jpでユーザーを作ろうと思うと payjp.Customer.create()
を実行すればOK.
ユーザーを作成する際は、名前やメールアドレスなど様々なパラメーターをセットすることができますが、今回の決済フローの中では "名前" をセットするとエラーがでます。またユーザー情報に、先ほどのトークンをセットすることでこの後の決済フローに進むことが可能。
次は決済の実行プロセスで、その際に ユーザーid が必要となるため user_id = user["id"]
でデータを引き渡し。
上手では id を指定していますが、なくても大丈夫。 id なしの場合は、トークンのような長い文字列が割り当てられます。
Pay.jpで決済する方法
Pay.jp で決済を実行するには payjp.Charge.create()
を実行すればOK。決済する金額と”誰に”の部分のユーザーidを指定。これで決済を実行できます。
問題なく決済が実行されれば、上図のように決済情報がズラズラーと表示。そして本当に Pay.jp で決済されたかどうかは、管理画面で確認できますね。
このように Pay.jp では、トークンを作成し、そのトークンに紐づく形で決済を進めていけばOK。以上が Pay.jp の基本的な流れになりますね。
- プログラム: Google Colab リンク
Pay.jpをDjangoで使う方法
ネットショップに限らず、今は様々なコンテンツで課金したいもの。今回は Pythonで Pay.jp を使ってきましたので、Python製フレームワークの Django に Pay.jp をセットしてみました。
デモ決済のためデータベースは使っていません。比較的簡単なコードにしていますので、Python学習中の方、是非チャレンジしてみてください。
WebでPay.jpを使う方法は主に2通り
先ほどまではトークンを作成して決済を進めていましたが、 Webで Pay.jp を使う際は、トークンを自分で作成しなくてもOK。 Pay.jp 専用の JavaScript を読み込むことでトークンを自動生成してくれます。
Pay.jp の JavaScript コードを読み込んだ場合の様子
ただし Pay.jp の JavaScript を利用した際は、上図のように決まったフォームで決済が進みます。一見さんのお客様ならカード情報を入力してもらえばOKですが、ユーザー登録してお得意様になってもらおうと思うと、いつもいつも同じカード情報を入力してもらうのは申し訳ないですよね。
こういった場合は、もう一つの決済のパターンとして「JavaScript を使わずに決済を進める」という手順になります。 JavaScript を使わずに Pay.jp で決済を行うには、先ほどご紹介した”トークン”をプログラムから作成して決済する手順が必要。
Pay.jpのJavaScriptで決済する方法(簡単)
Pay.jpのJavaScriptで決済する場合は、カード情報を入力するフォーマットを自分で作らなくて済むので簡単。
また決済処理のプログラムもトークンを作成するプロセスが不要なためシンプルに済みます。
Pay.jpのJavaScriptを使わずに決済する方法
Pay.jpのJavaScriptを使わずに決済する場合、決済処理に必要なトークンの生成をプログラム上行う必要がありますが、カード情報の入力欄などを自分でデザインできます。
またユーザー登録済みの方に対しては、カード情報をユーザー情報で管理することで ”即購入” 機能の実装も可能。少し処理が複雑にはなりますが、その分売上アップにできることは増えそうですね。
Pay.jpを使う様子
参考までに本稿と合わせてご参照ください。
Django で Pay.jp を使うプログラム(簡単版):GitHub
\AIエンジニアに必要なスキルが身に付く/
まとめ
Webで決済する方法の一つとして Pay.jp をご紹介しました。 WordPress用プラグインも姫路市出身のエンジニアの方が作成されていますので、手軽に Pay.jp を使って Web 上で課金することは可能です。
このように今は特別なスキルがなくても、基本的な Web の仕組みやホームページの仕組みを知っていれば、金銭をシームレスに扱うことができる時代です。 Web で ”課金” って特別じゃなくなってきているんですね。
「Webで課金、不労所得... 夢のようだな...」「自分もお洒落なホームページ欲しいな...」とお思いの方、その思いをCodeCamp にぶつけてみませんか?
「何から始めればいいか分からない...」 その答えは、「CodeCamp の無料体験から始めればいい!」です。
ユーザー登録や無料体験って少し勇気がいりますが、タイミングがあよければ即日無料体験できます。 公式ページよりご予約ください!
- この記事を書いた人
- オシママサラ