ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
ウォレットとApple Payの新機能
ウォレットとApple Payの最新アップデートを紹介します。事前承認済みの支払い、資金移動、Apple Pay Laterマーチャンダイジングを活用して、アプリまたはWebで優れたApple Payのユーザー体験を作成する方法を紹介します。ウォレットの注文の追跡では、メール、メッセージ、Safari、サードパーティアプリのサポートが改善され、注文のトランザクションや領収書の詳細に情報を追加できるようになりました。また、追加のハードウェアを必要とせず、iPhoneを使用してウォレットでIDを確認し認証できる、新しい「Tap to Present ID on iPhone」についても紹介します。
リソース
- Adopting the Verifier API in your iPhone app
- Checking IDs with the Verifier API
- Generating reader tokens for the Verifier API
関連ビデオ
Tech Talks
WWDC22
-
ダウンロード
♪ ♪
「ウォレットとApple Payの新機能」 へようこそ 私はDavidです そしてJonです 今日はウォレットとApple Payの体験に 今年導入されるすべての 新機能と機能強化について説明します ウォレットとApple Payには 幅広い機能が含まれています バーコードパスや交通カード そして車のキーなどです これらはすべてエコシステムの 重要な部分ですが 今日は次の3つの領域に焦点を当てます それは 支払い 注文の追跡 本人確認です まずは支払いから始めましょう
まず Apple Pay Laterと そのマーチャンダイジングサポートを プラットフォーム内に 統合する方法について説明します 事前承認済みの支払いの いくつかの機能強化について説明し その後 Apple Payを使用した― 資金移動をサポートするための 新しいAPIについて説明します Apple Pay Laterは今年初めに 米国で導入され ユーザーは買い物を4回に分けて 支払うことができます ユーザーはウォレット内でこれらの購入を 簡単に追跡および管理できます Apple Pay Laterは 統合を必要としませんが UI内に含めるための 専用のマーチャンダイジングビューを 新しいAPIを導入しています このビューを使用すると Apple Pay Laterのサポートが示され ユーザーへの詳細情報が示されます ビューのスタイルを 表示されるコンテキストに合わせて カスタマイズできるようになります ユーザーが詳細を確認するために このビューを選択すると Apple Pay Laterの説明方法を選択できます このビューは アプリとWebの両方の デベロッパが利用できるようになります
マーチャンダイジングビューは コンテキストに応じて4つの異なる― 表示スタイルでレンダリングできます
標準スタイルでは Apple Pay Laterを使用して 購入を複数回に分割する方法を 簡単に説明します バッジスタイルはサポートを簡潔に示します チェックアウトスタイルは チェックアウトフロー内で 他の支払いオプションと並べて 配置できるようにデザインされています そして 購入総額と合わせて使用する 価格スタイルです ユーザーがこのビューを操作すると 詳細情報が表示されます マーチャントは2つの異なるアクションから 選択することができます 「Learn More」アクションでは Apple Pay Laterの概要が表示され Apple Pay Laterを 支払い方法として選択した場合に ユーザーが経験する エクスペリエンスが説明されます 「Calculator」アクションでは引き続き Apple Pay Laterの説明が 表示されますが ユーザーが従う必要がある 返済スケジュールに重点が置かれています このビューをアプリ内に 組み込む方法を見てみましょう
まず ユーザーが Apple Pay Laterを 使用する資格があるかどうかを確認します これを行うには PKPayLaterUtilities内の validate関数を使用できます トランザクションの金額と 必要なロケールを 指定する必要があります ユーザーが Apple Pay Laterを使用する― 資格があるかどうかを判断したら 資格チェックで提供されたのと 同じ詳細を使用して PKPayLaterViewを インスタンス化します ビューのスタイルとアクションを カスタマイズしたい場合は それぞれのプロパティを 変更することで実行できます また SwiftUIアプリ内で Apple Pay Laterの 受け入れを表現できる 便利なSwiftUIビューも提供します これを使用するにはPayLaterViewを インスタンス化し 以前と同じ情報を提供します 表示スタイルとアクションを カスタマイズするには 適切なビューモディファイアを使用します このようにとても簡単です Web上でマーチャンダイジングビューを サポートしたい場合は 最初にいくつかの設定手順を 実行する必要があります
ビューを表示するためのAPIは 既存のApple Pay JavaScript SDK内で 提供されますが これを含めるときに設定する必要がある― 新しい属性がいくつかあります Cross Origin Resource― 共有リクエストを サポートする必要がある場合は crossorigin属性を 設定することが重要です async属性を使用すると ページの読み込みの 進行状況とは関係なく スクリプトが確実に読み込まれ実行されます 最後に APIへのリクエストを認証するには JWTが必要です このトークンは Apple Developerポータルで 生成できます JavaScript SDKの使用は このようにいたって簡単です apple-pay-merchandising 要素を使用してビューを表します 金額 国コード 通貨コードおよび ロケールは必須のフィールドです ネイティブAPIと同様に 必要に応じて ビューの他の側面を カスタマイズすることもできます Apple Pay Laterの マーチャンダイジングビューを 組み込む場合に従うべきベスト プラクティスをいくつか紹介します アプリの場合 このビューを使用するには エンタイトルメントが必要です これは Apple Developer ポータルで入手できます Webサイトの場合は SDKを含めるときに使用するー ドメインを登録し JWTを取得することを 忘れないでください これは Apple Developer ポータルでも実行できます 可能であれば head要素内に SDKをインポートするようにしてください これにより できるだけ早く実行できるようになり ページが完全に読み込まれたときに マーチャンダイジングビューが整います ビューのサイズはニーズに合わせて カスタマイズできますが 必ずサイズ要件に従ってください 最後に Webサイトに制限的なコンテンツ セキュリティポリシーが適用されている場合 推奨されるガイドラインに従って SDKをドメイン間で 確実に読み込めるようにしてください 以上がApple Pay Laterの概要です 次は 事前承認済みのについて説明します iOS 16では 事前承認済みの支払いが導入されました ユーザーは事前に承認した支払いを ウォレットで確認・管理することができ マーチャントは合意された条件に従って ユーザーに請求することができます 定期支払いと自動補充支払いの サポートは当初から提供されていますが 今回 後払いにも対応しました 事前承認済みの3つの支払いタイプはすべて― Webだけでなくアプリでも使用できます 後払いでは 将来の特定の日に 固定金額または変動金額を請求できます 無料キャンセル締切日がある場合は これもリクエストの一部として指定できます 後払いが適している例としては ユーザーがホテルを予約する場合や 商品を予約注文する場合などがあります
事前承認済みの支払いはApple Payの マーチャントトークンを利用します
これらは個々のデバイスではなくユーザーの Apple IDに紐付けられています これは たとえば ユーザーが デバイスをアップグレードした場合でも トークンは引き続き 使用できることを意味します このため 引き続きトークンを使用して 口座に請求できるため― 後日の支払いの受け取りが より確実になります 事前承認済みの支払いを実行するとき カスタマーの支払いカードが マーチャントトークンに対応している場合 マーチャントトークンが 自動的に発行されます 支払いカードがマーチャントトークンを サポートしていない場合でも トランザクションは続行されますが 個々のデバイスに関連付けられている 従来のApple Payトークンが使用されます Apple Payマーチャントトークンの 詳細については 昨年の「What's new in Wallet and Apple Pay」をご覧ください それでは アプリ内に後払いを組み込む方法を 見てみましょう まず PKDeferredPayment summaryItemを作成します これは 料金と請求される金額の 説明の概要を示します また 支払いが行われる日付も設定します 次に PKDeferredPaymentRequest を作成します 先ほど作成した概要項目と 支払いの管理に関する その他の情報を提供します ユーザーに表示する必要がある 支払い同意がある場合 これを後払いリクエストに 設定することもできます リクエストを作成して設定したら PKPaymentRequestに添付できます リクエストに応じた 支払い概要項目については 以前と同じ金額と日付で別のPKDeferred PaymentSummaryItemを作成します ただし 今回はマーチャントの 名前を表すラベルが付いています リクエストに応じてこれを設定したので 支払いのために提示する準備が整いました
この例に見られるように Apple Payペイメントシートは 支払い同意に関する情報と いつ請求されるかについての 情報とともに後払いをユーザーに提示します 無料キャンセル日を指定する場合は 考慮すべき重要な点がいくつかあります
無料キャンセル日を指定すると その時点より前のキャンセルは ユーザーに無料で行われることを 表明することになります このため 日付と時刻の両方が 重要な情報となります キャンセルポリシーが適用される タイムゾーンを 明示する必要があります これをサポートするために別のプロパティを 提供しました 以下の例では タイムゾーンが太平洋標準時であると 指定しています カスタマーのタイムゾーンが キャンセルポリシーのタイムゾーンと 一致しない可能性があるため これは重要です たとえば 英国に拠点を置いている人が 米国のホテルを予約するとします 後払いを使用する場合は 次のベストプラクティスに従ってください
前述したように 無料キャンセルポリシーを 説明する必要がある場合は 後払いリクエストに指定する 日付 時刻 タイムゾーンを 慎重に検討してください 概要項目に後払いを必ず含め 適切なマーチャント名を設定してください これは自動的に行われないため ご注意ください 支払い同意のテキストを提供するときは 必ず短くしてください 支払い同意のテキストは 考慮すべき重要な 事実の概要としてのみ機能するものであり― 通常の請求契約や法的契約に 代わるものであってはなりません 最後にトークン通知URLを指定します これにより Apple Pay― マーチャントトークンが発行された場合 そのライフサイクルイベントの 最新情報を受け取ることができます 以上が後払いについてでした 次に Apple Payを使用した まったく新しい資金移動の方法を 見てみましょう 従来のApple Payでは ユーザーが 口座に資金を追加するために 常にペイメントシートを利用できました iOS 17の新機能「Transfer Funds with Apple Pay」についてご紹介します
これにより ユーザーは口座から ウォレット内のカードに 送金できるようになり 送金のライフサイクルが完了します これは 支払いと同じ安全でプライベートな Apple Payインフラストラクチャを 使用するため ユーザーにはすでに 馴染みのあるプロセスになります 資金移動を利用可能にするシナリオとして ユーザーが銀行口座または その他の口座から 資金を引き出きだせるようにする場合が 考えられます Transfer Funds with Apple Payを サポートするために 資金移動に必要な情報のみに焦点を当てた 新しいリクエストタイプを作りました これを使用するには ユーザーの支払いカードに 移動したい金額を定義するだけです 受取人の連絡先詳細が必要な場合は これらをリクエストすることもできます 以前に PKPaymentRequestを 使用したことがある場合は この新しいAPIは とても身近に感じられるでしょう Apple Payを使用した資金移動は 支払いと同じ インフラストラクチャで機能するため Apple Developerポータル内で マーチャントとして登録する必要があります マーチャントとして登録し Apple Payを使用するための 設定方法の詳細についてはTech Talk 「Implement Apple Pay and order management」をご覧ください Apple Payを使用した 資金移動の仕組みを説明するために 例を見てみましょう Andrewというユーザーがいて 口座からお金を引き出したいとします Apple PayでのTransfer Fundsを使えば アプリ内から送金がトリガーされます 次に アプリはリクエストを作成し 送金する金額の概要を示します 次にAndrewには送金の詳細を記載した― Apple Payシートが提示され 送金の受け取り先のカードを 選択できるようになります Andrewが送金を安全に認証すると 暗号化されたペイロードが 生成されてアプリに返され 支払いプロバイダによる 処理の準備が整います 送金が処理されると アプリはApple Payに結果を返します 送金成功すれば それで終わりです エラーが発生した場合は Andrewに通知され 問題を解決するための 修正措置を講じることができます 資金移動の仕組みの概要を理解したところで アプリ内で実装する方法を見てみましょう まず どのネットワークとカードの機能を サポートするかを決定する必要があります 次に ユーザーが Transfer Fundsに対応したカードを 持っているかどうかを確認します これは PKPaymentAuthorization Controllerを通じて行われます supportDisbursements メソッドを使用して 前に定義した ネットワークとカードの機能を確認します 対応状況の確認後 必要に応じて ユーザーインターフェイスを調整します 利用資格を確認したので 資金移動リクエストの作成を開始できます 支払請求と同様に 金額は概要項目によって定義されます この場合 2つの異なる概要項目を作成します 1つ目は PKPaymentsummaryItemです これは ユーザーの口座から 引き出される金額を表します 重要なのはアイテムに付随するラベルは あなたのビジネス名である必要があります 2番目の項目は 新しいタイプの概要項目である― PKDisbursementSummaryItemです これらのいずれかを含める必要があり 受取人の支払いカードに 手数料や料金または調整額を差し引いた 最終金額を表す必要があります 支払いには PKPaymentRequestがありますが Transfer Funds with Apple Payには PKDisbursementRequestという 新しいリクエストタイプがあります PKDisbursementRequestを構築するには 特定の詳細を指定する必要があります これには Apple Payに登録するときに 設定したマーチャントIDや取引通貨― ビジネスの地域および以前に定義した― ネットワークと機能が必要です 先に作成した概要項目も指定します 送金先の連絡先詳細が必要な場合は ここでリクエストすることもできます 受取人の支払いカードが 発行された地域を 制限することもできます リクエストが構築されたら それをユーザーに提示できます これを行うには 支払いリクエストで PKPaymentAuthorizationController のインスタンスを初期化します ここでは私たち自身を代理人として 設定・提示します ここでわかるように ユーザーには 送金先の支払いカードと そのカードに受け取る金額を選択する― オプションが表示されます ユーザーが送金の実行を安全に承認したら 送金を処理するために いくつかのデリゲートコールバックを 実装する必要があります Transfer Funds with Apple Payを 処理するために 実装する必要がある デリゲートメソッドは2つだけです 1つ目はpaymentAuthorization ControllerDidFinishです これは シートを閉じる準備ができたときに 呼び出されます それを閉じる責任は 呼び出し元のアプリにあります このメソッドを使用して 独自の アプリのUIを適宜変更することもできます 2番目は didAuthorizePayment デリゲートメソッドです Transfer Funds with Apple Payは 支払いと同じインフラストラクチャを使用し 処理に使用する同じタイプの PKPaymentオブジェクトを受け取ります ここでは トークンの処理を独自の processFundsTransferメソッドに 抽象化しました 処理の結果に応じて 成功または失敗のいずれかを返します
処理段階で エラーが発生した場合 それらを表す 便利なメソッドのセットが提供されています 取得された 連絡先情報に関連する― 問題がある場合は disbursementContactInvalidError を使用できます ユーザーの支払いカードが 資金移動を受け付けられないと 決済処理業者が判断した場合は disbursementCardUnsupportedErrorを 使用できます 一部の金融機関は 即時送金をサポートしており 受取人に資金をより迅速に送金できます これらは Transfer Funds with Apple Payでも可能です サービスによっては これらの即時送金に 手数料が含まれる場合があり それを示すこともできます 通常 ユーザーはアプリ内で 資金移動のスピードを選択できます ユーザーが資金の即時移動を 選択した場合― ユーザーに対するサポートを 要求する機能を提供します その場合、ユーザーが選択できるカードは 即時送金をサポートすることが わかっているカードに限定されます
即時送金は次のようになります
シートは以前と非常によく似ていますが 今回は送金が即時に行われるという事実と ユーザーが支払う料金を強調しています 振込金額も手数料を考慮して 調整されております 前回の転送リクエストを 即時リクエストにする方法を見てみましょう まず サポートされている機能のリストに InstantFundsOutを追加します 次に supportsDisbursements 内で ユーザーが即時送金をサポートする カードを持っているかどうかを確認できます その後 適切に送金方法のオプションと ユーザーインターフェイスを調整できます 概要項目に関しては 即時送金手数料を表すPKInstantFundsOut FeeSummaryItemがあります この項目では 即時送金に必要な 手数料を指定します 手数料を請求しない場合でも この概要項目は必須です その場合 金額をゼロに設定します この例では手数料を請求しているため それに応じて 支払い金額を更新する必要があります これは自動的には行われません PKDisbursementRequestの 作成は以前とあまり変わりません 唯一の違いは 前に定義した機能と概要項目を 確実に提供することです 即時送金を表すために 必要なのはこれだけです Transfer Funds with Apple Payを 実装する際に 留意すべきベストプラクティスを いくつか紹介します
Transfer Funds with Apple Payは iOSおよびiPadOSでのみ利用可能であり macOSまたはWebでは 使用できないことに注意してください 資金移動の処理中にエラーが発生した場合は これをユーザーに効果的に伝えるために 専用の支払いエラーの1つを使用します 最初の概要項目は ユーザーの口座から引き落とされる金額を 表すべきであることに注意が重要です 最初の概要項目のラベルは あなたの ビジネスのラベルと一致する必要があります そして最後の概要項目は ユーザーの支払いカードで受け取られる 手数料や料金または調整を差し引いた 金額を表す必要があります 支払いに関しては以上です 少し軌道を変えて 注文の追跡について話しましょう 注文の追跡は ユーザーが 参加マーチャントへの注文を追跡する 方法としてiOS 16で導入されました ユーザーからの反響は素晴らしく 私たちは注文の追跡をさらに改善するために 真摯に取り組んできました 注文をより適切に表示・伝達するために オペレーティングシステム内の統合を どのように改善したかについて説明します 次に 注文の追跡に加えられたいくつかの 機能強化について説明します そして最後に ウォレットに注文を追加する 新しい方法を導入します iOS 16.4では メッセージを介した 注文の共有のサポートが追加され 注文のインラインプレビューが提供され 受信者がウォレット内で 注文を追跡できるようになりました また ユーザーが一目で注文を追跡できる― 注文の追跡ウィジェットも導入しました ユーザーは 追加の作業を必要とせずに すでにこれらの新機能の 恩恵を受けることができます iOS 17では マップのサポートによる システム統合を継続しています ユーザーが受け取り時間と受け取り場所を 指定した注文を追跡している場合 マップは Siriの提案を通じて 積極的にそれを提案します 次にiOS 17の注文の追跡に加えられた― 機能強化の一部を見てみましょう 宅配便や食品配達のユースケースを より適切にサポートするために 使用される配送の種類を 指定できるようになりました 新しいShippingType プロパティを使用して 注文が出荷中か配達中かを宣言できます
エンタープライズアプリを含む 関連アプリケーションの サポートが強化されました 関連するアプリIDを宣言することで アプリと注文の追跡の間の 管理を改善できます さらに カスタムプロダクトページIDを サポートしてウォレットトラフィックに 最も関連性の高い App Storeプロダクトページへの ディープリンクを可能にします 最後に 支払い情報を表現する 新しい方法を導入しています 注文パッケージは それに関連付けられた 一連のトランザクションを サポートするようになり それぞれに支払い方法や金額などの 独自の詳細情報が含まれます トランザクションに領収書ファイルを 添付することもできるので カスタマーは支払いの記録を得られます 領収書ファイルはPDFまたはJPEGや PNGなどの画像のいずれかにできます 注文パッケージのサイズには 制限があることに注意してください そのため含める領収書ファイルの サイズを考慮してください トランザクションが購入なのか返金なのかを 説明できるようになりました iOS 17ではウォレットへの注文の追加が これまでになく簡単になりました 注文確認メールなどのメールに 注文パッケージを 添付できるようになりました ユーザーはその場で注文を ウォレットに追加できるようになります さらにアプリやWebサイト内に 「Track with Apple Wallet」ボタンを 追加することもできます ウォレットへの注文の追加をサポートする 新しい注文の追跡APIを見てみましょう これは2つの新フレームワークFinanceKitと FinanceKitUIに含まれています これら2つの Swift専用フレームワークにより デベロッパはウォレット内で 注文データを処理できるようになります 注文情報へのアクセスはFinanceStore の共有インスタンスを通じて実現され 注文の追跡クエリを処理するための 中心的なリソースを提供します このAPIを使用すると 注文の有無を確認したり 注文を追加または 更新したりすることができます 既存の注文を確認する方法を見てみましょう まず FinanceStoreにクエリして 完全に資格を満たす注文IDを持つ 注文が含まれているかを確認します その後 存在するか見つからないかの どちらかの回答が返ってきます その後 必要に応じてアプリで応答できます それはとても簡単です 注文を追加または更新したい場合は 2つの方法のいずれかで実行できます まず FinanceKitを使用して これを行う方法を説明します まず ウォレットに追加する署名付き 注文パッケージのデータを シリアル化する必要があります 次に これをFinanceStoreの 注文保存メソッドに提供します これを行うと 注文の内容と注文を ウォレット内で追跡するかどうかの 確認画面がユーザーに表示されます ユーザーがリクエストを 確認または拒否すると 結果は非同期で受信され 3つの形式のいずれかになります 注文をウォレットに追加したか リクエストをキャンセルしたか または 新しい注文がすでに存在します アプリがSwiftUIで作成されている場合は FinanceKitUIを使用できます これにより 専用の「Track with Apple Wallet」ボタンが表示され 注文の追加結果を処理できるようになります FinanceKitと同様に署名された 注文パッケージのシリアル化された インスタンスが最初に必要になります 次にAddOrderToWalletButtonを ビュー内に含めます ユーザーがこのボタンを選択すると 注文をウォレットに 追加する機能が提供されます その後 以前と同様に3つの結果の状態に 応答できるようになります Web上でカスタマーの注文の追跡を サポートしたいマーチャント向けに JavaScript SDKで このボタンのバージョンを提供しています これを使用するには apple-wallet-buttonを挿入し 属性を使用して設定します ボタンのタイプはtrack-orderに 設定する必要があります このボタンを使用するときは 追加する署名付き注文パッケージの 場所を指すようにonClickコールバックを 設定することが重要です 以上が今日 注文の追跡について ご紹介する内容です これらの新しいAPIをアプリやサービスに 採用いただければ幸いです さて まったく別の話になりますが 本人確認に関して共有したい いくつかの エキサイティングな最新情報があります それについてはJonに引き継ぎます ありがとうDavid あらためて皆さんこんにちは 私はエンジニアのJonです Apple Payとウォレットチームの一員です iOS 17の本人確認に追加された 新機能についてお話しできて光栄です iOS 15.4でウォレットにIDが導入され サポートされている― 米国の州のユーザーが 運転免許証または州IDをウォレットに 追加できるようになりました 昨年 私たちは Verify with Walletを導入しました このAPIを使用すると ビジネスは Appleウォレットに保存されている ユーザーのIDから情報を要求することで オンボーディングとアカウント検証の フローを合理化できます 今年のiOS 17ではiPhoneにタップして IDを提示する機能が導入されます
このAPIを使用するとアプリは iPhoneだけを使用して ウォレットやその他のモバイル運転免許証の IDをシームレスかつ安全に検証できます これはiOS 15.4でProximityReader フレームワークに追加された iPhone APIのTap to Payの上に 構築されています iPhoneのTap to Payは追加の ハードウェアや支払い端末を必要とせずに 非接触型支払いを受け入れる- 安全でプライベートな 簡単な方法を提供します では Tap to Present IDの 動作を見てみましょう 私がSpaceship Rentalsで働いており Davidが当社から宇宙船を レンタルしたいと考えているとします これを行うには 彼は21歳以上である必要があるので Tap to Present IDを使用して 年齢確認を実行します まず Spaceship Rentalsアプリが 「Tap to Present ID」を呼び出します
私のiPhoneには ビジネスの名前やロゴ および実行されているリクエストの種類― (この場合は年齢証明)が表示されます ここでDavidにiPhoneを 私の近くに持ってもらいます [iPhoneのチャイム音] [iPhoneのチャイム音] 私のiPhoneには同意書が表示され 確認することができます Spaceship Rentalsに本人確認書を 提示していることがわかり 私が21歳以上であるかどうかの確認を 要求しています この情報を提示したいと思いますので ダブルクリックして Face IDで確認します 私のiPhoneには Davidが提示した情報が表示されています 彼は証明写真と一致しており 21歳以上であることがわかりました これで彼は離陸の準備ができました
Tap to Present ID APIを使用して DavidのIDを正常に検証できました この機能は 物理的なIDを確認する場合と 比較していくつかの重要な利点がありました
まず ID情報自体の検証が行われます 改ざんされやすい物理的なIDとは異なり モバイル運転免許証は発行機関によって 暗号化署名されており iOSがその署名を検証するため 応答を信頼できます 次に ワイヤレスで安全な体験ができました DavidがiPhoneを私に手渡す必要はなく ロックを解除する― 必要さえありませんでした データはNFC とBluetoothを使用して 安全に送信されました 最後に これはIDを確認するための よりプライベートな方法です Davidは すべてが共有される 物理的なIDとは異なり 年齢を確認するために必要な情報のみを 共有する必要がありました このAPIで実行できる リクエストの種類について説明します 表示リクエストのデモを行ったところです 相手の名前や年齢を 確認したい場合に適しています 結果はシステムUIに表示され― ID情報はアプリに返されません APIはデータリクエストもサポートしています これらは 住所 生年月日― 運転権限などの より広範なドキュメント要素のセットを リクエストすることができ― 結果は処理するために アプリに返されます データリクエストを実行するには アプリに 追加のエンタイトルメントが必要です 詳細については ドキュメントを確認してください
ここで 表示リクエストから始めて これを コードで実装する方法を見てみましょう
まず MobileDocumentReaderの isSupportedクラスプロパティを使用して 現在のデバイスがこのAPIを サポートしているかどうかを確認します 存在する場合は リーダーオブジェクトを インスタンス化し そのprepareメソッドを呼び出します これにより MobileDocument ReaderSessionオブジェクトが返されます 次に 確認したい要素を表示するための 運転免許証表示リクエストを作成します ここでは 運転免許証の保有者が 21歳以上であるかどうかを確認しています 次に セッションでrequestDocumentを 呼び出しリクエストを渡します 次にリーダーUIが表示され 最初にID所有者に デバイスの提示を求め 次に要求の結果を表示します
これは表示リクエストであるため requestDocumentメソッドからは 何も返されないことに注意してください わずか数行のコードで モバイルドキュメントの読み取り機能を アプリに追加できます デフォルトでは ブランドの名前とロゴは リーダーのiPhoneにも ID所有者のデバイスにも表示されません ただし ドキュメントのリクエスト時に ブランド情報を表示したい場合は 表示することができます これは Apple Business Registerを通じて さらに数行のコードで設定できます ドキュメントのリクエスト中に ブランド情報を表示するには デバイスの準備時に リーダートークンを 渡す必要があります このトークンを サーバー上に作成する必要があります リーダートークンはJWTであり Apple Business Registerを通じて 設定したキーペアで署名されます サーバーはブランドID キーID リーダーインスタンスIDを使用して リーダートークンを作成します ブランドIDとキーIDは Apple Business Registerから取得でき― アプリのすべてのインスタンスで同じです アプリはリーダーインスタンスIDを サーバーに提供します コードに戻ると アプリはMobileDocument Readerの設定オブジェクトから リーダーインスタンスIDを取得し リーダートークンと引き換えに それをサーバーに送信します このトークンをprepareメソッドに渡して リーダーセッションを取得します 次に 前と同じようにリクエストを作成し requestDocumentを呼び出します これで あなたのブランド名とロゴが リーダーのiPhoneとID所有者の デバイスの両方に表示されます これで表示リクエストもカバーされます これまで セッションを準備する方法 ドキュメントをリクエストする方法― リーダートークンを使用してブランド情報を 表示する方法について見てきました 次にデータリクエストを 実行する方法を見てみましょう これらのリクエストはより広範囲の ドキュメント要素をサポートし APIは結果を表示するだけでなく アプリに結果を返します
このリクエストタイプを使用するには 以前と同様に まずデバイスに リーダートークンを準備する必要があります 次に 運転免許証データリクエストを作成し リクエストするドキュメント要素と情報を 保持するかどうかを指定します
requestDocumentを呼び出すと 表示リクエストと同様に リーダーUIが表示されますが 読み取りが完了すると UIは自動的に閉じられます その後 応答がアプリに返されて処理されます それがiPhoneのTap to Present IDです ProximityReaderフレームワークに追加された エキサイティングな新しいAPIです さて Davidの話に戻りましょう Jon ありがとう! さて 今日私たちは何を学んだでしょうか? Apple Pay Laterのサポートによる― 支払いの機能強化と 新しいユースケースを検討してきました 注文の追跡の新しいAPIを使用すると アプリやサービス内から 注文をウォレットに追加できるようになり iPhoneで「Tap to Present ID」を 使用して モバイル運転免許証を確認する 新しい方法が追加されました 最後に 企業の方は Apple Business Registerへの 登録をご検討ください これによりウォレットとApple Payでの ユーザーエクスペリエンスを豊かにできます Appleデベロッパフォーラムにアクセスすると 年間を通して質問したり サポートを受けることができます 最後に 皆さんのご意見を ぜひお聞かせください フィードバックアシスタントから 送信いただけます 本日のセッションは以上です お楽しみいただけたでしょうか ご視聴ありがとうございます ♪ ♪
-
-
28:51 - Performing a display request to verify age
import ProximityReader // Check the current device supports mobile document reading. guard MobileDocumentReader.isSupported else { return } let reader = MobileDocumentReader() let readerSession: MobileDocumentReaderSession = try await reader.prepare() let request = MobileDriversLicenseDisplayRequest(elements: [.ageAtLeast(21)]) try await readerSession.requestDocument(request)
-
30:55 - Displaying brand information during a document request
let reader = MobileDocumentReader() let identifier = try await reader.configuration.readerInstanceIdentifier let readerToken = try await WebService().fetchToken(for: identifier) let readerSession = try await reader.prepare(using: .init(readerToken)) let request = MobileDriversLicenseDisplayRequest(elements: [.ageAtLeast(21)]) try await readerSession.requestDocument(request)
-
31:50 - Performing a data request
let session: MobileDocumentReaderSession = /* ... */ var request = MobileDriversLicenseDataRequest() request.retainedElements = [.givenName, .familyName, .dateOfBirth, .portrait] request.nonRetainedElements = [.address, .documentExpirationDate, .drivingPrivileges] let response = try await session.requestDocument(request) // Process document elements from document response. self.processResponse(response.documentElements)
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。