勉強したことのメモ

webプログラマが勉強したことのメモ。

PHPとStripeでクレジットカード決済処理

   

PHPとStripeの組み合わせでWebサービスにクレジットカード決済処理を導入したかった。以下に導入方法をメモ。

下準備

Stripeのアカウント作成

Stripe公式サイトでアカウントを作成しておく。テスト環境を用意するだけならメールアドレスのみの登録でOK。

https://stripe.com/

登録するとテスト用の「公開可能キー」「シークレットキー」が発行される。

ライブラリのインストール

サーバにSSH接続し適当なディレクトリに移動後、以下でライブラリをインストールする。

以下はGithubページにバージョンの説明等が掲載されている。尚、今回検証した環境はPHP5.6となる。

https://github.com/stripe/stripe-php

テスト用クレジットカード情報

以下ページでテスト用クレジットカード情報を確認できる。

https://stripe.com/docs/testing

カード番号は記載の通り、CVCは任意の3文字、カード有効期限は未来年月を入力する。

 

ソース

購入ページ(index.php)

決済処理ページ(charge.php)

決済完了ページとエラーページは適当にHTMLでメッセージを書けば良い。また購入ページに設置するJavaScriptのパラメータは以下ページで詳細を確認できる。

https://stripe.com/docs/legacy-checkout

 

その他

決済名

今回はテスト用クレカで検証した為確認のしようがないが、本番用クレカで決済した際に明細に表示される決済名がどうなるのか気になった。

調べてみるとカード会社によって異なり「オンライン決済」または「ST* 登録したサービス名」のどちらかで表示される模様。

即時決済しない場合

例えばだけど「入荷待ちの商品で購入手続き後、商品が入荷されてから発送」みたいなケースで即時に決済はしない方がいい場合は売り上げの確定はせずに、商品発送等を行ってからStripeのダッシュボードより確定処理を行う形になる。

 

所感

クレカ決済システムを導入したことがなく、実装にあたり「工数がかかりそう」「難しそう」等々の印象を持っていたがStripeだと非常に簡単に導入できた。

あとは月額(サブスクリプション)決済についても試しておきたいところ。

 

参考サイト

https://qiita.com/p_s_m_t/items/a69dfbc75804fe86ad9c

https://techracho.bpsinc.jp/baba/2018_05_28/56914

 - PHP

  関連記事

ランダム表示のページング

MySQLからデータを持ってくる際に、 ランダムな表示を行ってほしいと言われた。 ...

MySQLで使用するインデックスを指定する

ちゃんと指定してるのにインデックスが使用されていない場合、 オプティマイザに知ら ...

CodeIgniterでCronを実行する方法

CodeIgniterで特定の処理をCronで自動で実行したかった。以下に設定方 ...

Ajaxでデータを受信した際にリファラのチェックをしたい

Ajaxでデータを受信し、MySQLにINSERTするプログラムがあった。そこま ...

フォームからzipファイルをアップロードしサーバ上で解凍したい

formからzipファイルをアップロードし、サーバ上で解凍したかった。またアップ ...

他サーバーにある画像をPHPで取得して保存する方法

他サーバーにある画像をURLで指定して、PHPで取得して保存する方法のメモ。 フ ...

お名前.comの共用サーバー(SD)でのphp設定

画像のアップロードフォームを作っていて、そういえば最大ファイルサイズは? と思っ ...

迷惑メール対策でフォームにreCAPTCHAを導入する方法

スパムメール対策として問い合わせフォームにreCAPTCHAを導入したいという件 ...

PHPで配列かどうかを調べる

配列か否かを調べたいケースがあり、確認すると ばっちりそのままの関数発見。 is ...

PHPでxmlのpubDateを見やすい形に整形する

PHPでsimplexml_load_file関数とかを使ってデータを取得した際 ...