iOS向けライブラリに、Swift環境での導入方法の説明を追加しました

iOS向けトークン生成ライブラリバージョン1.1.1にアップデートしました

この更新では

  • Swift環境に、Cocoapodsを使わずに導入する場合に発生するビルドエラーを修正
  • objective-cで書かれたサンプルコードに、Swiftで書かれたサンプルコードを併記

が行なわれています。 Swiftによる開発環境への対応にあたって以下、導入方法を紹介します。

Swift環境でのwebpay-token-iosの導入

インストール方法

Cocoapodsを利用する場合と手動でファイルをコピーして組み込む方法があります。

1. Cocoapodsを利用してインストール(推奨)

Podfile

1
pod 'WebPay', '~> 1.1.1'

と記入し、pod installを実行します。

2. 手動でファイルをコピーしてインストール

[本ライブラリのレポジトリ]をクローンし、Webpayディレクトリを、本ライブラリをご利用になるXcodeプロジェクトにドラッグ&ドロップします。

Bridging Headerの追加

Swift環境でObjective-cで書かれたコードを利用する場合、Bridging Headerを作成する必要があります。 Bridging Headerに関する詳細はこちらのAppleの公式ドキュメントをご覧下さい。

  1. XcodeのメニューのFile > New > File…(⌘N)をクリックします
  2. iOS > Sourceからheader fileを選択し、Nextをクリックして次に進みます

images

  1. MODULE_NAME-Bridging-Header.hと命名し、保存します。MODULE_NAMEには好きな名前を入力します
  2. MODULE_NAME-Bridging-Header.h#import "Webpay.h"と記入します
  3. Build SettingsのObjective-c Bridging Headerに先程作成したMODULE_NAME-Bridging-Header.hのPATHを追加します

images

組み込み方法

本ライブラリは

  1. WPYPaymentViewController(ビューコントローラー)
  2. WPYTokenizer(モデル。Tokenオブジェクトの作成を担当)
  3. WPYCardFormView(ビュー。カード情報入力フォーム)

の3つの独立した部品で成り立っています。 「ビューは全部自分で作りたい」場合や「フォームは再利用したい」場合など、どこまでを内製し、どこまでをライブラリに頼るか、柔軟に選択する事ができます。

0. 初期化

初期化はどの部品を使うにも必須です。

1
2
// test_public_YOUR_PUBLIC_KEYはWebPayの公開可能鍵に置き換えて下さい
WPYTokenizer.setPublicKey("test_public_YOUR_PUBLIC_KEY")

1. WPYPaymentViewController(ViewController)

WPYPaymentViewControllerは、ビューを一切作らずに、そのまま表示することができるビューコントローラーです。カード情報入力フォームを表示し、「カードで支払う」というボタンがタップされると、トークンを作成し、最後にコールバックが呼ばれます。 UINavaigationControllerクラスのpushViewControllerで表示する事も可能です。

1
2
3
4
5
6
7
8
9
10
11
12
13
let paymentViewController = WPYPaymentViewController(priceTag: "¥350", callback: { viewController, token, error in
  if let newError = error {
    println("error:\(error.localizedDescription)")
  } else {
    // tokenをサーバーにPOSTし、決済を完了させます

    // 決済完了後
    viewController.setPayButtonComplete()
    viewController.dismissAfterDelay(2.0)
  }
})

self.navigationController?.pushViewController(paymentViewController, animated: true)

2. WPYTokenizer(Model)

WPYTokenizerはtokenの作成を担当する部品です。ビューは自作したい場合に最適です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// カードクラスのインスタンスを作成し、必要な値を設定します
let card = WPYCreditCard()
card.number = "4242424242424242"
card.expiryYear = 2015
card.expiryMonth = WPYMonth.December
card.cvc = "123"
card.name = "TARO YAMADA"

// カードのインスタンスとコールバックを渡します
WPYTokenizer.createTokenFromCard(card, completionBlock: {token, error in
  if let newError = error {
    println("\(error)")
  } else {
    println("\(token.tokenId)")
  }
})

3. WPYCardFormView(View)

WPYCardFormViewはクレジットカード情報の入力を担当するビューです。入力されたカード情報がバリデーションを通ると、delegateのメソッドが呼ばれます。

1
2
3
4
5
6
7
8
9
10
// ビューのインスタンスを作成
let card = WPYCreditCard()
let form = WPYCardFormView(frame: CGRect(x: 0, y: 0, width: 320, height: 320), card: card)
form.delegate = self
self.view.addSubview(form)

// WPYCardFormDelegateメソッド
func validFormWithCard(creditCard: WPYCreditCard!) {
  // フォームに入力されたカード情報がバリデーションを通ると呼ばれます
}

以上、Swift環境での導入は完了です。

今回の修正にあたって、GitHubにて情報を提供頂きました方に感謝を申し上げます。