ウェブシステムやウェブサービスを開発していると、決済代行サービスを利用することは珍しくないです。 今回はソフトバンクペイメントサービスという決済代行サービスの処理をいい感じにラップしてくれるgemを紹介します。

sbpayment

sbpaymentというGemがあります。 このライブラリを使うと、比較的に楽にAPIを呼び出すことが出来ます。

クレジット関連のAPIを、ライブラリを使ってみた時の感想を書いていこうと思います。

ここがよい

  • APIのI/FがXMLだが、XMLアレルギーな人は触らなくて済む
  • 共通のパラメータを事前に設定出来る
  • ハッシュコードを指定しなくても良い

ここがよくない

  • ライブラリ自体のドキュメントが少ない

APIのI/FがXMLだが、XMLアレルギーな人は触らなくて済む

APIのI/FがXMLなんですが、それを意識せずに利用することも出来ます。 レスポンスも同様です。 自前でパースする必要もなければ、それを意識した実装にある程度はしなくても良いのは大変メリットです。

共通のパラメータを事前に設定出来る

ドキュメントを見れば察しはつくと思いますが、merchant_idやservice_idなどは、基本的に1つのサービスにつき一意に決まります。 そして、これらの値はどのAPIにも必要なパラメータとなります。 となると、毎回指定するのは非常に面倒です。(それを設定してオブジェクトを返すメソッドを定義すれば済みますが)

このライブラリは、事前にそういった共通パラメータなどを設定することが出来ます。 各APIを呼び出す時に付加してリクエストしてくれます。 これも必要なことにのみ集中して開発出来るのでメリットです。

ハッシュコードを指定しなくても良い

APIのリクエストには、特定の規則に従って、ハッシュコードを付加しなければならないです。 このライブラリは、リクエスト実行時に付加してくれます。 自分達で計算する必要は無くなりました。

ライブラリ自体のドキュメントが少ない

サンプルのコードがいくつかある程度で、ドキュメントが充実しているとは言えません。 しかし、ソフトバンクペイメントサービスのAPI仕様書と、ライブラリのテストコードを見比べれば、ある程度は予想がつきます。 ドキュメントがもう少し揃っていれば、便利かな?と思います。

最後に

このライブラリが万能とは思いませんが、個人的には中々好みのライブラリでした。 テストコードも割りかし見やすいので、それもまた良かったです。 Rubyで実装する時は、使ってみても良いのではないでしょうか。