--- title: Omise APIについて tags: Rails JavaScript author: keikundayo slide: false --- 決済サービス[Omise](https://www.omise.co/ja/docs)のAPIであるOmise APIについて、幾つか要点を上げて述べていく。 #フォームの作成 こんな感じで作る。 ```html
Name
Number
Date
/
Security Code
``` #クレジットカードのトークンの作成 ######一連の流れ 1. 顧客が加盟店のサイトにアクセスをして、クレジットカードの情報を入力 (加盟店のサイトにはOmise.jsが組み込まれている) 2. Omise.jsが、顧客の直接入力したクレジットカード情報を、使い捨てのトークンに変換する。 3. 使い捨てのトークンが、Omiseのサーバーに送られる。 4. Omiseがトークンを復号化し、顧客のカード情報を取得。 ######メリット - 加盟店が顧客のクレジットカードに触らず(管理せず)に済む。 - トークンは使い捨て(そのセッションでしか使用しない一回きりのもの)であるため、 仮にOmiseに送信時に漏洩したとしても、顧客のカード情報は流出しない。 #課金  Charge API を使用する 前項でOmiseに登録されたトークンは顧客情報と紐付いており、 一番初めの課金はトークンによって行われる (それ以降はトークンは使用できなくなり、顧客IDによって課金を行う。) 顧客IDのみであれば顧客のデフォルトのクレジットカードに課金がされる。 顧客IDとそれに紐づく特定のカードIDの双方を使用すると、特定のカードIDによって顧客に課金ができる。 クレジットカードと顧客情報の紐付けは、Customer というAPIによって行う。 課金に失敗した場合には、エラーコードが返却される。 一番初めの課金の例 ``` curl https://api.omise.co/charges \ -X POST \ -u skey_test_4xsjvwfnvb2g0l81sjz: \ -d "amount=100000" \ -d "currency=thb" \ -d “card=[ここにトークンIDを入力する]” ``` 顧客IDのみの課金の例 ``` curl https://api.omise.co/charges \ -X POST \ -u skey_test_4xsjvwfnvb2g0l81sjz: \ -d "amount=100000" \ -d "currency=thb" \ -d “customer=[ここに顧客IDを入力する]” ``` 顧客IDと、特定のカードIDの組み合わせの例 ``` curl https://api.omise.co/charges \ -X POST \ -u skey_test_4xsjvwfnvb2g0l81sjz: \ -d "amount=100000" \ -d "currency=thb" \ -d “customer=[ここに顧客IDを入力する]" -d “card=[ここにトークンIDを入力する]” ``` 以上、Omise APIのフォームの作成方法と課金の流れについて記述を行った。 上記からわかるように、自社のサイトにJavaScript(Omise.js)を組み込むだけで使えるのと、curlコマンドを用いて操作ができるため、非常に技術者に優しい、使いやすいものとなっている。