2012年8月20日月曜日

iPhoneでクレジットカードを読み取る

card.io - Credit card scanning for mobile appsは、iPhoneのカメラでクレジットカードを撮影してカード番号などを読み取るライブラリを提供しています。画像処理系の機能実装は、画像処理とiOSのカメラ周りのSDKの知識が必要で開発コストが高くなる部類になりますが、一般に公開されているSDKを使えば、その困難をさくっと乗り越えられます。 

Card.ioの紹介は no title にあります。この会社は、カード番号を読み取るSDKの提供のみをしています。したがって決済は自分で実装することになります。またSDKの利用料金は、ユーザが1回使ったらいくら、の完全従量制課金です。 同様のSDKを提供している会社には、他に、 Card Capture (まだサービスインしてないようですが)、があります。 アプリへの組み込み Card.ioのSDKの入手は、メールアドレスを登録するだけです。厄介なNDA契約は必要ありませんでした。提供されたライブラリをリンクして、アプリのソースからSDKのViewControllerを呼び出すだけです。ViewControllerの呼び出しには、Card.ioから取得したアプリケーショントークンを指定します。これにより課金をしているのでしょう。カメラを利用するため、またライブラリは実機のものだけが提供されていますので、動作確認は実機でおこなうことになります。 私は、ビルド時にシンボルがないとエラーが出ました。これは、Card.ioのSDKのViewControllerを呼び出すソースの拡張子を、”.m"から".mm"に変更しなければならない、という手順を入れてなかったためでした。C++のライブラリの混在をする場合は、拡張子は".mm”でなければならないためです。

 読取と認識の使い勝手 使い方は直感的にすぐわかります。画面に表示された緑の枠にクレジットカードを収めると、アプリが自動的に画像を取得して処理を開始します。処理が終了すると読み取った番号を表示して、ユーザがOKをすれば、読み取られた番号がアプリ側に通知されます。番号の認識処理の時間はiPhone4で1秒弱程度でした。処理中はアニメーション効果を入れて、ユーザが待ち時間にいらつかない工夫されています。 認識にはクレジットカードをちょうど緑の枠に収めることが必要でした。そのためにSDKは、まず四隅に緑の枠を表示しておいて、クレジットカードの辺がいい位置に来ると、その辺に対応する緑の辺を表示する、表示の工夫をしていました。クレジットカードの辺を見ているようで、辺を握りこぶしで掴むと、うまく動作しません。指で隅をつかむと、すんなり認識しました。 SDKの利用価格 Card.ioの利用料金は、アプリを使ってユーザがクレジットカードを読み取ったら、1回0.1ドル、を課金します。(まだベータなので価格は変更されるかもしれませんが。) 利用料金はCard.ioのウェブサイトから確認できます。アカウントを取得した時点で30ドル分のチャージが無料でついているので、アプリのデバッグ程度ならチャージの必要はないでしょう。 iOSアプリ向けライブラリの課金モデルのお手本 Card.ioは、そのSDK自体の出来に加えて、その課金の方法がとても参考になると思います。
 iOSアプリ開発は、AppStoreのランキングを競い鎬を削る熾烈なものです。その開発とはまた別に、誰もが開発できるわけではない技術力や開発コストが必要な機能のライブラリを提供するビジネスがあります。通常ならば、NDAを締結して初期費用を支払うなどの契約を行いますが、Card.ioは初期費用を取りません。代わりにアプリがその機能を利用した回数に対して、課金をします。 この形はとてもうまいと思います。まず、10分程度で簡単に組み込める簡便さ、そしてメールアドレス登録だけで(当然アカウント登録時にEULAなどの確認はありますが)面倒な書類のやりとりなしに利用可能になる簡便さで、使ってもらうユーザを確実に捕捉できます。課金は利用回数に応じたものですから、Card.ioは継続した収益が得られます。また、もしもユーザが利用料金を支払わなかっったら、Card.io側は(おそらく)機能を停止するなどで、課金の制御ができるでしょう。 初期費用での売り切りでは、SDK開発は辛いと思っていたので、この方法は、参考になります。

  card.io