井上恭輔(@kyoro353)の私的かつ技的な日記です。米国サンフランシスコで暮らすエンジニアです。この広告は、90日以上更新していないブログに表示しています。2013の18日目の記事です。ActiveMerchantをWebPayで使ってみる。TBDWebPayLiteを改良してみたこんにちは!WebPayアドベントカレンダー3日目で「WebPayLiteを使ってiOSから簡単にクレジットカード決済する」という記事を書いたところ、シークレットキーを使ってクライアントサイドで決済させる実装が良くなかったのか、なんか記事が干されてしまった感に地味に落ち込んでいる、きょろです。;⌓;)とはいえ、落ち込んでいても仕方ないので、今回は私の作った「WebPayLite」というObjective-C向けの軽量WebPayクライアント・ライブラリを改良し、クライアントサイドでのトークン化に特化させる実装に変更しましたので紹介しようと思います。WebPayLiteの使い方WebPayやWebPayLiteの紹介は前回と変更がありませんので、WebPayLiteを使ってiOSから簡単にクレジットカード決済するをご参考下さい。それでは、WebPayLiteを使ってカード情報をクライアントアプリサイドでトークン化する方法を紹介します。WebPayLiteにはサンプルのiPhoneアプリのプロジェクトが付随していますので、そちらを参考にしながら読み進めて下さい。ファイルをプロジェクトに追加します。WebPayLiteをGithubから入手して、「WebPayLite.h」と「WebPayLite.m」をあなたのプロジェクトに追加します。ViewController.hに、インポート宣言とデリゲート宣言、クラス変数の定義を追加します。トークン化機能を実装するViewControllerのヘッダファイルに、WebPayLiteのインポート宣言、コールバックのデリゲートを受け取るためのデリゲート宣言、WebPayLiteのインスタンスを格納するクラス変数の定義を追加してください。*wpl;}3.初期化処理ViewController.mの実装ファイル側に、初期化処理を追加します。場合、viewDidLoadedとかに追加すれば問題ないと思います。内容はインスタンスの作成、デリゲートの登録、WebPayの公開可能鍵の登録です。公開可能鍵のハードコーディングが気になる場合は、キーチェーンなどを利用して適切に保護してください。鍵を設定するプロパティは、secretKeyからapiKeyに変更になっているのでご注意ください。@"YOUR_PUBLIC_KEY";4.トークン化ここまですれば後はトークン作成メソッドを呼ぶだけです。createTokenメソッドでトークンの作成ができます。基本的にはWebPayのAPI呼び出し時のパラメータをそのままNSDictionaryで与えればいいだけの薄いラッパなので、WebPayのAPIドキュメントを見ながら自由に呼び出してください。必要に応じてWebPayLiteDelegateの各種コールバックをViewControllerに実装してください。引数として渡されるjsonはNSStringですので、NSJSONSerializationなどを使って必要なキーを読み取って下さい。戻り値なども基本的にはWebPayのAPIドキュメントの通りです。ここでは、WebPayLiteDelegateCompletedを受け取って、作成したトークンを取得してみます。トークンをサーバに送信し、サーバーから秘密鍵で課金する。ここまでくれば後は簡単です。WebPayLiteで作成したトークンをあなたのサーバに送信し、秘密鍵を使って顧客の作成や課金などを行って下さい。WebPayにはRubyやPHP、Pythonなどの各種言語バインディングがありますので、サーバーサイドの課金の実装はとても簡単です。詳しくは他のWebPayアドベントカレンダーをご参考ください。みんなで楽しくトークン決済!こんな感じで、皆さん、できるだけトークン決済を行うように心がけましょう。トークン決済はお客さんの決済情報を守るだけでなく、アプリを作るあなた自身の不安を取り除き、楽しく決済機能を実装できるようになります。WebPayLiteはGithubで、MITライセンスにて公開中です。ご自由にお使い下さい&プルリクエスト歓迎です。»プロフィールid:kyoro353ウェブエンジニア、井上恭輔(kyoro353)の私的かつ技的なブログです。株式会社ミクシィを寿退職しましたWebPayLiteを使ってiOSから簡単に決済用トークンを作成する月別アーカイブはてなブログをはじめよう!kyoro353さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。