potatotips #34 (iOS/Android開発Tips共有会) のための投稿です
PAY.JP?
-
https://pay.jp/
- オンライン決済のためのAPIを提供
- 米StripeやWebPayみたいなもの
- Apple Payを使った決済に対応
Payment Solution Provider(PSP)

https://developer.apple.com/apple-pay/
Apple Pay with 非対面決済
- 実物の商品やサービスへの支払い
- ECサイトや出前、タクシー、映画チケット
- iOS App, Safari(Web)
BASEショップ30万店へ導入
大まかな作業手順
- developer.apple.comでマーチャントIDを登録
- PAY.JPで証明書署名要求をダウンロード
- developer.apple.comで証明書を作成
- PAY.JPへ証明書をアップロード
iOSアプリ実装
- PassKitのAPIで購入ボタンを表示
- 支払いリクエスト・アイテムを作成してペイメントシートを表示
- delegateメソッドで取得できるApple PayトークンからPAY.JPトークンを発行
- PAY.JPトークンをサーバーへ送信して決済処理を行う
ドキュメント
PAY.JP iOS SDK beta
# Cartfile
github "payjp/payjp-ios"
# Podfile
pod 'PAYJP', git: 'git@github.com:payjp/payjp-ios.git'
トークン送信フロー
let apiClient = PAYJP.APIClient(publicKey: PAYJPPublicKey)
apiClient.createToken(with: payment.token) { (result) in
switch result {
case .success(let token):
// tokenをサーバーへ送信して決済処理
// https://pay.jp/docs/charge
completion(.success)
case .failure(let error):
completion(.failure)
}
}
動作確認
- 決済部分は実機で実行
- iTunes ConnectでサンドボックスApple ID追加
- テストカードをWalletに登録
参考になる情報
- Apple Payプログラミングガイド (公式ドキュメント)
- Developers.IO内のApple Pay関連記事
- Mercari Engineering Blog - USのiOSアプリでApple Payに対応した話
Appendix
- SDKの開発の話
- https://github.com/payjp/payjp-ios
- https://github.com/payjp/apple-pay-example
- Swift3.0で開発
- Objective-C向けのメソッドを定義
- 外部依存のないResult, Himotoki をモジュール内に組込み
- MITライセンスで公開
まとめ
- PAY.JPでApple Pay対応を始めるのは簡単
- お問い合わせ不要
- SDKが公開されている
- サンドボックス環境でテスト可能
FAQ
- StripeやBraintreeのSDKと比較するとPAY.JPにするメリットある?
- 対応ブランド
- 契約プラン
- 手数料