見出し画像

Apple Pay の Objective-C による実装

Swift の場合、サンプルが多々あるようですが、Objective-C でのトークン取得に至るまでの実装が見当たらないようなので掲載しました。
fincode by GMO で対応した際の流れを中心に解説していますが、他の決済サービスでもある程度参考になるかと思います。
ここで記載を割愛している内容については、各決済サービスの説明を参照して下さい。

fincode by GMO 実装例
https://docs.fincode.jp/payment/applepay/execution
Pay.jp 実装例
https://pay.jp/docs/apple-pay-integrate-ios


■フロー

━━━━━━━━━━━━━━━━━━━━━━━━━
●マーチャントIDの作成
●CSRの作成(証明書署名リクエスト)
●Payment Processing Certificate のダウンロード
●Payment Processing Certificate の登録
●Xcode の設定(Apple Pay の有効化)
●Xcode での実装(Objective-Cでの実装)
━━━━━━━━━━━━━━━━━━━━━━━━━
※Apple Developer Programへのメンバーシップ登録は対応済の前提です。

■マーチャントIDの作成(Merchant ID)

公式説明

マーチャントIDに有効期限は無く、複数のアプリに対して同じマーチャントIDを使用することが可能。

Apple Developer Program を開く
https://developer.apple.com/account/

[Certificates, Identifiers & Profiles]欄の[Identifiers]→ 右上リストで[Merchant IDs]を選択
→ 左上の「+ (追加)」ボタンをクリック
→[Merchant IDs]を選択 →[Continue]→ マーチャントID作成画面が開く

Description と Identifier を入力 →[Continue]

※Identifierは merchant からはじまる値である必要があり、merchant.com.example のようなリバースドメイン形式なので注意。

設定した内容を確認 →[Register]で完了。

■CSR(証明書署名リクエスト)の作成

Macでキーチェーンアクセスを開き「認証局に証明書を要求」から作成。
CertificateSigningRequest.certSigningRequest を作成します。
fincode では鍵のサイズとアルゴリズムがデフォルトと異なるので注意。

<例 - fincode対応>
━━━━━━━━━━━━━━━━━━━━━━━━━
ユーザーのメールアドレス  sample@gmail.com(必須 任意)
通称            sample
CAのメールアドレス     sample@gmail.com(必須 任意)
メールでCAに送信      OFF
ディスクに保存       ON
鍵ペア情報を指定      ON
鍵のサイズ         256
アルゴリズム        ECC
━━━━━━━━━━━━━━━━━━━━━━━━━
※決済サービスに応じてオプションの設定を合わせて下さい。

■Payment Processing Certificate(支払い処理証明書)のダウンロード


[Apple Developer Program]→[Certificates, Identifiers & Profiles]欄の[Identifiers]→ 作成したマーチャントIDを選択

マーチャントID詳細画面

→[Apple Pay Payment Processing Certificate]欄の →[Create Certificate]より
前項でで作成したCSRファイルをアップロード →[Continue]→[Download]→ Payment Processing Certificate(apple_pay.cerなど)をダウンロード。

■Payment Processing Certificate(支払い処理証明書)の登録


Mac にダウンロードした Payment Processing Certificate をダブルクリックしてキーチェーンに登録し
キーチェーンアクセスから .p12 ファイル形式で書き出します。
fincode など各種決済サービスで、書き出した .p12 ファイルを管理画面から登録します。
※Payment Processing Certificate は25カ月毎に更新が必要です。

■Xcode の設定(Apple Pay の有効化)


[Xcode]→[Signing & Capabilities]→ 左上の[+]ボタンクリック →[Apple Pay]をダブルクリックして一覧に追加
→ 取得した Merchant ID(merchant.com.woodvalley)がリストされているのでチェックONして有効化。

※ここが未設定だと以下のようなエラーが出る。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Thread 1: "Application tried to present a nil modal view controller on target <ViewController: 0x104e0f820>....
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■Xcode での実装(Objective-Cでの実装)

Apple 公式
https://developer.apple.com/documentation/passkit/apple_pay/offering_apple_pay_in_your_app
ドキュメントがありますが、右上の Language リストで Objective-C に切り替えても Swift のままです。

Objective-C でのトークン取得に至るまでの実装が見当たらないようなので、ここでは Objective-C の実装のみ紹介しています。

ここから先は

3,350字

¥ 500

この記事が気に入ったらサポートをしてみませんか?