LoginSignup
2
7

More than 5 years have passed since last update.

安全にクレジットカード処理を行うライブラリ、Omiseについて

Last updated at Posted at 2018-08-07

この記事は社内ブログを外部向けに書き換えたものです

多くのWebサービスには有料プランの契約機能があり、そこでクライアントとクレジットカード情報のやりとりをします。ここで、安全にクレジットカードの情報をやりとりするにはどうすればいいでしょうか?

ここでは、Webサービスでクレジットカードを利用する際に使用するOmiseサービスについて説明します

Omiseサービスについて

Omiseの概要

ECサイトやウェブサービスのサーバで直接クレジットカード情報を取り扱うと、情報漏洩時のリスクが増大してしまいます。

ここではOmiseというサービスを用い、直接クレジットカード情報に触れずにカード情報を取り扱うことでこの問題を解決します。

PHP製WebサービスでOmiseを利用するには、Omise.js(クライアントサイド)とOmise-PHP(サーバーサイド)を使用します。

Omiseを用いた決済処理の流れ

Omise.jsで用意される、クレジットカード情報入力フォームに情報を入力させ、Omise.jsがこれをもとにOmiseサーバと通信し、トークンを取得します。Webサーバ側では、このトークンとOmise-PHPを利用して、OmiseサーバとREST通信を行います。これにより、安全に決済の処理を実行することができます。

small_token@2x.jpg

図1 Omiseを用いた決済のフロー

使用するライブラリについて

  • Omise.jsは、クレジットカード入力フォームや、そのフォーム送信により取得したトークンの提供などをします

  • Omiseサーバとの通信にはREST通信を用いますが、Omise-PHPを用いることによって、これを簡単に行うことができるようになります。

Omise-PHPの構造について

Omise-PHPライブラリの構成を見ると、面白い構造になっていることに気がつくと思います。ここではOmise-PHPのクラス構成について説明します。

ライブラリ内にはOmiseAccount, OmiseCharge, OmiseCustomerなど"Omise~"で始まるクラスが幾つかありますが、これらはそれぞれOmiseで操作できる物(アカウント、課金、スケジュールなど)にそのまま対応しており、基本的にはこれらのクラスの静的メソッドを呼び出してAPIを利用します。これらのオブジェクトには、以下のように検索、作成などの共通のオペレーションを使うことができます。

OmiseAccout::retrive(); //サーバー管理者のOmiseアカウント情報の取得
OmiseCharge::retrive(); //課金リストの取得
OmiseSchedule::retrieve(); //全てのスケジュールのリストを取得

Omise-PHPのAPIの例を幾つか説明します。

OmiseAccount

サーバー管理者のOmiseアカウントを表現するオブジェクトです。

OmiseAccount::retrive(); //課金リストの取得

OmiseCharge

クレジットカードへ課金をするためのAPIです。

//課金リストの取得
OmiseCharge::retrive(); 

//トークンを使い、新しい課金を作成する
OmiseCharge::create(array(
  'amount' => 100000,
  'currency' => 'thb',
  'card' => 'tokn_test_4xs9408a642a1htto8z'
)); 

//課金情報の取得
OmiseCharge::retrieve("chrg_test_4xso2s8ivdej29pqnhz"); 

//定期課金を作成
OmiseCharge::schedule(array(
    'customer'    => 'cust_test_58e7b94d2wfmfn6p2x1',
    'card'        => 'card_test_58eeofcdwl5clmhtyf0',
    'amount'      => 100000,
    'description' => 'Membership fee'
)); 

詳細は、公式リファレンスをご覧ください。

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7