iPhoneアプリのApple Payを実装・評価する事前準備
Apple開発者アカウントが取得できると、Apple Payの支払い機能とレシート機能を評価できるようになります。Xcodeを設定してアプリにApple Payを実装するには、3つのステップを完了します。
- マーチャント識別子を作成します。
- 支払い処理証明書を作成します。
- XcodeでApple Payを有効にします。
マーチャント識別子を作成します。
Certificates, Identifiers & ProfilesよりMerchant Identifiersを作成するため、以下画像にあるMerchant IDsを選択して、Apple Payを動作できるようにします

説明文と、Xcodeでの開発しているアプリのIdentifierを登録します。

支払い処理証明書を作成します。
Apple Payのペイメントプロセッシング証明書を作成する際は、キーペアの情報を指定する必要があります。ECCおよび256ビットのキーペアを選択してください。OpenSSLなどのコマンドラインツールでECCのキーペアを作成する際は、ecparameterに「prime256v1」を指定してください。中国本土のApple Payのペイメントプロセッシング証明書では、キーペアを指定する必要はありません。

XcodeでApple Payを有効にします。
XcodeにApple Payが表示されない時の対応方法
Xcodeのcapabilityに、Apple Payが表示されない場合は、ユーザのアカウントがApple Developmentに登録されてすぐのため、まだ登録前のアカウントになっている場合があります。そこで、新しく署名を登録することで、capabilityに、Apple Payが表示されるようになりました。
The capability associated with “APPLE_PAY” could not be determined. Please file a bug report at https://feedbackassistant.apple.com and include the Update Signing report from the Report navigator.
Apple Pay支払い後のレシート(unified_receipt)の実装で配達状況をトラッキングする方法のテストまとめ
サブスクリプションを評価するためのまとめ
自動更新サブスクリプションを提供する
App Store Connectは、App Storeでサブスクリプションビジネスを運営するのに役立つツールを提供しています。App Store Connectでサブスクリプションを設定する方法は、ユーザーがサービスを購読する方法、請求頻度、およびオファリング間のアップグレードとダウングレード方法を決定します。アプリでサブスクリプションの提供を開始するには、サブスクリプショングループを作成し、そのグループに1つ以上のサブスクリプション製品を追加し、それらの製品にレベルを割り当てる必要があります。サブスクリプションのセットアップは次のように構成されています。
- サブスクリプショングループ: さまざまなレベルと期間のサブスクリプション製品のセット。ユーザーは、グループごとに一度に1つのサブスクリプション製品を購読できます。
- サブスクリプション: ユーザーが一定期間動的コンテンツを購入できる製品。自動更新サブスクリプションは、ユーザーがキャンセルしない限り、自動的に更新されます。サブスクリプションの期間と価格はApp Store Connectで設定されています。
- サブスクリプションレベル: サブスクリプショングループが利用できるアップグレード、ダウングレード、およびクロスグレードパスを決定するサブスクリプショングループ内のサブスクリプションのランキングシステム。レベルにより、同じサービスのさまざまなアクセス(基本、プレミアム)を提供することができます。
- サブスクリプション期間: サブスクリプションが更新され、加入者が請求されるまでの期間。可能な期間は、1週間、1ヶ月、2ヶ月、3ヶ月、6ヶ月、1年です。
単一サブスクリプション製品のセットアップ
アプリでサブスクリプション製品を1つだけ提供する場合、サブスクリプションはデフォルトでサブスクリプショングループ内の単一のレベルになります。
複数のサブスクリプションと期間の製品設定
サブスクリプションを、最も多く提供しているもの(レベル1)から最も提供していないものまで、順番に並べ替えてください。同じレベルで、同じコンテンツが、異なる期間、その他の同様の変数を持つサブスクリプションを積み重ねることができます。各レベルは複数のサブスクリプション製品を持つことができ、複数の期間と価格から選択できます。これにより、有料サービスの日数に影響を与えることなく、サブスクリプショングループ内でアップグレード、ダウングレード、クロスグレードすることができます。
サブスクリプションの収益率
加入者のサービスの最初の年の間に、適用される税金を差し引いた各請求サイクルでサブスクリプション価格の70%を受け取ります。加入者が同じサブスクリプショングループに1年間の有料サービスを蓄積した後、純収益はサブスクリプション価格の85%から適用される税金を差し引いた金額に増加します。サブスクリプションオファー内で費やされた時間も合計にカウントされます。App Storeスモールビジネスプログラムのメンバーは、初日から85%を受け取ります。
自動更新サブスクリプションの有効期限が切れると、有料サービスの日数が蓄積しなくなります。誰かが再購読した場合、またはサブスクリプションが60日以内に回復した場合、有料サービスの日は回復日から継続されます。逆に、サブスクリプションが60日後に回復した場合、レートは70%に戻り、日数が再開されます。
請求の問題でサブスクリプションの有効期限が切れると、Appleはサブスクリプションを更新して支払いを徴収しようとします。アプリの請求猶予期間を有効にした場合、Appleが請求猶予期間(サブスクリプション期間に応じて6日または16日)内にサブスクリプションを回復することができれば、有料サービスの日数や収益に中断はありません。請求猶予期間の詳細については、こちらをご覧ください。
サブスクリプションのパフォーマンス、購読者アクティビティ、収益に関する情報は、セールスレポートとトレンドレポートで確認できます。もっと詳しく知る。
必要な役割:アカウントホルダー、管理者、アプリマネージャー、開発者、またはマーケティング。ロール権限を表示します。
サブスクリプショングループを作成する
アプリ内でサブスクリプションを提供するには、まずApp Store Connectでサブスクリプショングループを作成する必要があります。サブスクリプション製品を作成すると、これらの製品をサブスクリプショングループに追加できます。サブスクリプションを作成する前に、ビジネスモデルに適したサブスクリプション設定を理解していることを確認してください。サブスクリプションの提供について学んでください。
- サイドバーの[機能]の下の[サブスクリプション]をクリックします。
- 追加ボタン(+)をクリックします。
- 参照名を入力します。
- 作成をクリックします
追加のサブスクリプショングループを作成する
さまざまなサブスクリプションレベルのサブスクリプショングループを提供する場合は、複数のサブスクリプショングループを作成する必要があります。
以下の画面を表示するためには、App Store Connectにアプリケーションを仮登録する必要があります。(リリースの前準備として、開発中のAppを登録することで、以下のメニューが表示されます。)

注:ユーザーは一度にグループ内で1つのサブスクリプションしか購入できないため、ユーザーが誤って複数のサブスクリプションを購入するのを防ぐため、ほとんどのアプリで1つのグループを作成することがベストプラクティスです。複数のグループでサブスクリプションを購入するユーザーは、サブスクリプションごとに別々に請求されます。

- サイドバーの[機能]の下の[サブスクリプション]をクリックします。
- 追加ボタン(+)をクリックします。
- チェックボックスを選択して[次へ]をクリックして、警告を読んで承認します。
- 新しいグループの参照名を入力します。
- [作成]をクリックします。
注: 2 番目のサブスクリプション グループを作成するときにのみ警告が表示されます。
サブスクリプション製品を追加する
- サイドバーの[機能]の下の[サブスクリプション]をクリックします。
- サブスクリプショングループ名をクリックします。
- [作成]をクリックします。注: 既存のサブスクリプションがすでにあるグループにサブスクリプションを追加する場合は、追加ボタン (+) をクリックします。
- サブスクリプションの参照名と製品IDを入力し、[作成]をクリックします。サブスクリプション製品を作成すると、その情報ページに移動し、詳細が追加されます。
- [サブスクリプション期間] で、期間を選択し、[保存] をクリックします。
- サブスクリプション価格の下で、価格を設定します。
- レビュー情報の下に、アプリレビューチームがアプリ内購入を確認するのに役立つ追加情報を提供します。
- オプションで、ファミリー共有を有効にし、サブスクリプションの税金カテゴリを編集し、ローカリゼーションを追加します。
- [保存]をクリックします。注:サブスクリプションを複数のアプリからアクセスできるようにしたい場合は、各アプリに同等のサブスクリプション製品を作成します。複数のアプリでサブスクリプションを提供する方法を学びます。
- サブスクリプションレベルを割り当てるサブスクリプション製品を作成したら、サブスクリプショングループ情報を追加し、サブスクリプションレベルを設定できます。これにより、グループ内で利用可能なアップグレード、ダウングレード、およびクロスグレードが決定されます。複数のレベルを割り当てる必要はありません。単一のサブスクリプション製品を提供するか、複数のサブスクリプション製品を提供するかを選択し、それらをすべてグループ内の同じレベルに割り当てることができます。サブスクリプショングループの設定について学び、ビジネスモデルに適したレベルの設定を理解していることを確認してください。
- マイアプリから、あなたのアプリを選択してください。
- サイドバーの [機能] で [サブスクリプション] をクリックします。
- 編集したいサブスクリプショングループをクリックします。
- サブスクリプションレベルを設定するには、[レベルの編集]をクリックします。
- 開いたウィンドウで、サブスクリプション名の左側にある並べ替えコントロールをクリックし、新しい位置にドラッグしてサブスクリプションのレベルを変更します。
- [保存]をクリックします。
自動更新サブスクリプションとサブスクリプショングループの言語を追加し、ローカライズされたメタデータを入力できます。サポートされている言語のリストについては、App Storeのローカリゼーションをご覧ください。サブスクリプショングループのローカリゼーションとサブスクリプションのローカリゼーションは、アプリ内購入の送信とは独立してレビューされます。ローカライズできるプロパティについては、必須、ローカライズ可能、編集可能なプロパティを参照してください。詳細な例については、App Store情報のローカライズをご覧ください。
重要: アプリのステータスが編集可能な場合にのみ、言語を管理できます。
サブスクリプショングループのローカリゼーションを追加する
ローカリゼーションごとに異なるサブスクリプショングループの表示名とアプリ名の表示オプションを使用できます。ユーザーは、デバイスでサブスクリプションを管理するときにこれらの名前が表示されます。
- マイアプリから、あなたのアプリを選択してください。
- サイドバーの [機能] で、[サブスクリプション] をクリックします。
- サブスクリプショングループ名をクリックします。
- App Storeのローカリゼーションの横にある追加ボタン(+)をクリックします。
- プロンプトに従ってローカリゼーションを選択し、ローカライズされたサブスクリプショングループの表示名と説明を入力します。
- [追加]をクリックします。
サブスクリプションのローカリゼーションを追加する
サブスクリプションのローカライズされた表示名と説明は、ユーザーのデバイスの言語設定に従ってApp Storeに表示されます。
- マイアプリから、あなたのアプリを選択してください。
- サイドバーの [機能] で、[サブスクリプション] をクリックします。
- サブスクリプショングループ名をクリックします。
- サブスクリプションを選択します。
- App Storeのローカリゼーションの横にある追加ボタン(+)をクリックします。
- プロンプトに従ってローカリゼーションを選択し、ローカライズされたサブスクリプショングループの表示名と説明を入力します。
- [追加]をクリックします。
Implement Apple Pay and order tracking
こんにちは。私の名前はケイティです。Apple Payと注文追跡の実装に関するこのセッションへようこそ。今日の議題を見てみましょう。まず、Apple Payを使い始めるために必要な基本を説明します。次に、支払いリクエストを作成し、支払いシートの変更に対応する方法を紹介します。ユーザーが注文を追跡できるように、支払いフローの最後に注文の詳細を追加することもできます。注文の詳細により、Walletは注文したパッケージを取得できます。構築方法を紹介します。最後に、注文を更新する方法を紹介します。では、始めましょう。Apple Payは、簡単で安全でプライベートな支払い方法です。ウェブサイトやアプリの開発者であれば、Apple Payを使ってコンバージョンとユーザーエクスペリエンスを向上させることができます。始めるために作成する2つの必須項目があります。1つ目は、支払いを受け入れることができるマーチャントとしてあなたを一意に識別する識別子です。1つを作成するには、Apple Developerポータルの識別子セクションに進んでください。従来のフォーマットは、「マーチャント」という言葉で始まる逆DNSです。スパイシーな新しいマーチャント識別子を使用して、支払い処理証明書を作成します。非常に簡潔に言えば、Apple Payは登録されたマーチャント識別子と公開証明書で各ペイロードを暗号化します。このペイロードは、あなたの側で復号化して処理することができます。その後、支払いが成功したか失敗したかを返すことができます。支払いの処理の詳細については、支払いサービスプロバイダーに相談してください。アプリとウェブサイト間でApple Payを設定するには、さまざまな手順があります。アプリで使用するためにApple Payを設定するには、Xcodeの[署名と機能]タブに移動し、Apple Pay機能の下にマーチャント識別子を追加するだけです。ウェブサイトを構築していて、そこでApple Payを設定したい場合は、いくつかの追加の手順が必要です。Apple Payトランザクションを処理するドメインを登録する必要があります。これは、Apple Developerポータルの識別子セクションで行うことができます。そこにいる間に、以前に作成したマーチャント識別子にリンクされたApple PayマーチャントID証明書を作成できます。この証明書は、Apple Payサーバーにセッションを認証するために使用されます。アプリやウェブを統合する場合でも、電子商取引プラットフォームや決済サービスプロバイダーと連携している場合は、これらの手順の一部を簡素化する可能性があるため、特定の指示を確認してください。では、Apple Payを実際に実装する方法を見てみましょう。Apple Pay関連のコンテンツを表示する前に、ユーザーが現在の設定で支払いを行うことができるかどうかを確認する必要があります。機能は、3Dセキュアカードやクレジットカードやデビットカードなど、シートが現在受け入れることができる支払いの種類を示します。後で、支払い要求を設定するときに受け入れる機能を指定します。現在利用できない場合、ユーザーはさらにカードを追加できることを覚えておいてください。ユーザーが支払いができることがわかったので、Apple Payボタンを表示する時が来ました。ユーザーが実行する必要があるアクションに合わせて、最適なアクション呼び出しとボタンタイプを選択してください。Apple Payボタンを目立つように、折り目の上、そして最初の支払いオプションとして表示します。Apple Payボタンは完全にローカライズされており、ユーザーの設定にも適応できます。UIKitでアプリにApple Payボタンを表示するには、まずPKPaymentButtonを作成し、ボタンの種類とスタイルを指定します。タイプは、支払いの種類を説明しています。例えば、Apple Payで寄付するか、Apple Payで続行します。スタイルは、明るいか暗いかなど、ボタンの外観を制御します。ボタンの自動スタイルを使用して、ユーザーの設定に基づいて動的に変更します。ウェブでは、JavaScriptのApple Payボタンを使用してください。1つを追加するには、まず、コンテンツ配信ネットワークのWebページにボタンスクリプトをロードします。JavaScript Apple Payボタンでは、タイプ、スタイル、ローカリゼーションを指定することもできます。CSSを使用して、ボタンの寸法をさらにカスタマイズすることもできます。支払いシートが何を期待するかを知るために、支払い要求を作成する必要があります。アプリでは、PKPaymentRequestを作成することでそれを行うことができます。ニーズに応じてリクエストで設定できるフィールドはたくさんありますが、必須項目には、以前に作成したマーチャント識別子、受け入れることができる支払いの種類、支払いの国と通貨コードが含まれます。支払いを受け入れるネットワークを指定します。これは、Apple Payとコバッチカードの優先ネットワークを選択するように、好みの順に行う必要があります。最後に、要約項目はこの取引の一部として含まれています。要約項目を詳しく見てみましょう。これを行うには、あなたがオンラインペット用品ショップを運営し、顧客にApple Payで注文をチェックアウトする機能を提供したいと想像できます。これらの要約項目は、顧客が選択した項目の総費用から割引を差し引いた金額で構成されています。彼らは顧客にコストを分解するのに役立つはずです。最後の要約項目は常に合計であり、この合計のラベルは支払いを受け取る会社でなければなりません。ここの配列には少なくとも1つの項目が設定されている必要があります。これで、支払いシートを表示する準備が整いました。まず、PKPayment AuthorizationViewControllerを作成し、先ほど設定したリクエストを送信します。あなたは、返されたviewControllerの提示を担当しています。さて、私たちが設定しているこのデリゲートを見てみましょう。PKPaymentAuthorization ViewControllerDelegateは、ユーザーが新しい電子メールアドレスを選択したときやトランザクションを承認するときなど、シートが変更をあなたに伝える方法です。適切な変更に対応する必要があります。ただし、支払いシートを却下する責任は常にあり、これを処理するためにpaymentAuthorizationViewControll erDidFinishを実装する必要があります。問題を解決するのに役立つ有用な説明を添えて、常にできるだけ早くユーザーにエラーを返すようにしてください。たとえば、ユーザーの新しい配送先住所に問題がある場合は、PKPaymentRequest ShippingContactUpdateの一部としてエラーを返す必要があります。didAuthorizePaymentは、ユーザーが詳細に満足し、Face ID、Touch ID、またはパスコードを使用して取引を進めるときに呼び出されます。自分で送信されたPKPaymentを処理するか、支払い処理業者に渡す必要があります。適切な結果でハンドラーを呼び出す必要があります。iOS 16では、SwiftUIでApple Payボタンを簡単に作成する機能を導入しました。Apple Payで支払うボタンを作成するときに支払い要求を渡すだけで、ユーザーがボタンを操作すると支払いシートが自動的に表示されます。ボタンのタイプ、およびオプションでスタイルも設定できます。支払い承認の変更は、前のスライドで見た代理人に似ています。ユーザーの更新に対応する方法を見てみましょう。ユーザーが支払いを承認したばかりで、支払い承認フェーズの変更により、アプリにこのアプリが通知され、支払い情報をサーバーに送信し、支払いを処理するように求められます。サーバーの結果が成功を示しているかどうかを確認し、サーバーから返されたエラーを処理し、適切なエラーで結果ハンドラを呼び出すようにします。サーバーの結果が成功を示している場合は、適切な承認結果で支払いを完了します。返送する結果には、支払いを処理しようとしたときに起こったことが含まれている必要があります。たとえば、住所が無効な場合などです。ほとんどの場合、支払いは成功または失敗します。支払いが失敗した場合は、重要度順に1つ以上のエラーを返すこともできます。それはユーザーに表示され、再度取引を試みることができます。この承認結果には、オプションで注文の詳細を含めることができ、まもなく検討します。それでは、ウェブ上でこれを行う方法を見てみましょう。W3C支払い要求APIは、ウェブ上で支払いを処理できるオープンスタンダードです。PaymentRequestオブジェクトを作成し、Apple Payが利用可能であることを指定できる方法、合計や配送方法などのトランザクションに関する情報を含む詳細、およびユーザーに提供したい情報を指定するオプションを入力することができます。サーバーでマーチャント検証を完了する必要があるため、新しいマーチャントセッションを作成し、完全な機能に渡します。ネイティブと同様に、ユーザーが支払いシートで行うインタラクションに応答することができ、ユーザーが認証したときに支払い応答を処理する必要があります。皆さんがApple Payと統合したので、私たちは実際に注文を作り始めることができます。iOS 16では、注文追跡を導入しました。顧客は、ウォレットアプリ内から注文の詳細と追跡情報を確認できるようになりました。彼らは、いつ注文を受け取ることができるか、注文が配達されたかどうか、問題があったかどうか、または通知を受け取ったかどうかを即座に知ることができます。ペットショップのビジネスをApple Payとうまく統合したので、注文追跡を追加することもできます。やり方を見てみましょう。注文を始めるのは、Apple Payの設定に似ていることに気付くでしょう。開発者ポータルの識別子セクションに戻り、注文タイプ識別子を作成します。これにより、組織は注文情報を提供するエンティティとして識別されます。マーチャント識別子と同様に、今回は「順序」という単語の前に、同様の逆DNSスタイルの命名スキームを使用することをお勧めします。次に、開発者ポータルの証明書セクションから注文タイプID証明書を作成します。証明書を使用して、注文パッケージを作成し、注文を更新し、通知を送信します。それを設定したので、Apple Payの購入フロー内からWalletに注文を追加できます。これを行うには、以前から認識すべき簡単な支払い処理フローを振り返ってみましょう。私たちはあなたのサーバーが処理のために支払い情報を送信していることをすでに知っています。支払いが正常に処理された場合、サーバーは注文を作成する必要があります。返送した結果の注文追跡をサポートするには、作成した注文に関する詳細も含める必要があります。これらの注文の詳細により、デバイスはサーバーから非同期に注文を要求できます。その後、サーバーは注文パッケージをデバイスに回し、ウォレットに表示されます。とりあえず、PKPaymentの承認結果の一部として返品する必要がある注文の詳細を詳しく見てみましょう。注文の詳細は4つのフィールドで構成されています。注文タイプ識別子は、単に以前に作成したものです。注文を識別する方法を生成する必要がありますが、注文タイプ識別子の範囲内で一意である必要があります。ウェブサービスのURLを含めてください。最後に、サーバーは安全な認証トークンを生成する必要があります。これは、ユーザーのデバイスとサーバーの間で共有された秘密です。デバイスは、注文パッケージをリクエストするときに、このトークンを使用して自分自身を認証します。この例は当初、先ほど見た通常の支払い承認フローと非常によく似ています。注文の詳細を追加しましょう。まず、serverResultから取得し、PKPaymentOrderDetailsオブジェクトを作成し、注文タイプID、注文ID、WebサービスURL、および認証トークンを設定します。これをPKPaymentの承認結果に割り当てます。ウェブ上では、W3C支払いリクエストAPIを使用して注文の詳細を追加するのも簡単です。以前と同様に、サーバーの結果から注文の詳細を抽出します。これらの注文の詳細と、支払いを完了したデータを返します。注文の詳細がデバイスに返送された後、それらの詳細はユーザーの各デバイス間で同期されます。各デバイスは、サーバーから注文パッケージを要求し、注文の詳細を提供します。注文の詳細と一緒に送信したトークンと照合して、認証トークンを確認します。認証トークンが一致すれば、注文パッケージをデバイスに返送します。これで、注文はそのデバイスのウォレットに表示する準備が整いました。デバイスが要求するとすぐに利用可能になるように、できるだけ早く注文を修復する必要があります。サーバーが注文を返さなかった場合、デバイスは指数関数的なバックオフで複数の再試行を試みます。私たちは今、この注文パッケージが何度も参照されているのを見てきましたが、それは正確に何で構成されていますか?注文は注文パッケージとして配布されます。注文をユーザーに表示し、それがあなたからであることを証明するために必要なすべてが含まれています。注文パッケージには、注文、ロゴなどの画像、注文の各アイテムのインライン画像を説明するJSON辞書が含まれています。画像の作成に関するガイダンスについては、ヒューマンインターフェースガイドラインと紹介ソースを参照してください。また、文字列ファイルなどのローカライズされたリソースも含めます。合計注文サイズに目を光らせ、関連するもののみを含めてください。このコンテンツはすべて、「マニフェスト」と呼ばれる別のJSON辞書に記載されています。あなたはそれを目次のように考えることができます。注文パッケージ内のすべてのファイルへの参照が含まれています。エントリのキーは相対ファイルパスであり、値はファイルのSHA256チェックサムであり、解析で使用されるものとは異なるチェックサムです。今、私たちがする必要があるのは、その真正性を証明するためにパッケージに署名することです。署名は、注文パッケージが信頼できるソースであるあなたから発信されたことを確認します。これは、パースと同じ、マニフェストの切り離された暗号メッセージ署名です。注文タイプID証明書とApple Worldwide Developer Relations Intermediate証明書に関連付けられた秘密鍵でマニフェストに署名し、証明書の更新されたバージョンを使用することを確認してください。注文の作成を完了するには、パッケージを圧縮し、ファイル拡張子を注文に変更するだけです。さあ、注文を更新する時が来ました。注文情報は時間の経過とともに変化することがよくあります。たとえば、顧客が以前に作成したペットグッズの注文が進行中です。自動更新をサポートすることで、この更新を迅速かつ安全に顧客に配信できます。あなたの顧客は今、ウォレットにペット用品の注文を持っており、注文は更新のサポートを示しているので、デバイスはあなたのウェブサービスに登録されます。後で、顧客の注文が配達されるようになったので、サーバーは登録情報を使用して登録されたすべてのデバイスに通知します。お客様のデバイスがプッシュ通知を受信すると、サーバーから注文を求められます。その後、サーバーは更新された注文パッケージをデバイスに返します。基本的な注文フローの仕組みがわかったので、注文の更新をサポートするために必要な正確な手順を分解しましょう。まず、注文の更新をサポートしていることを示します。注文が更新をサポートしていることをWalletに伝えるのはとても簡単です。注文パッケージに2つの情報を含めるだけです。order.
Apple Payと注文管理を実装する
jsonに、ご希望のwebServiceURLを追加します。これは、注文の詳細で提供したものと同じです。また、注文の更新を要求するときに、ウォレットがその真正性を証明するために使用するauthenticationTokenフィールドを追加します。デバイスが登録から自分自身を追加または削除するように要求するときは、管理する必要があります。サーバーは、登録情報の追加または削除を処理できる必要があります。注文の更新に登録したデバイスを見つけることができる必要があります。これにより、注文を更新するときにサーバーがこれらのデバイスに通知できるようになります。サーバーは、どの更新された注文がそのデバイスに関連するかをサーバーが把握できるように、デバイスが登録した注文を見つけることができる必要があります。この情報を構造化するにはさまざまな方法があります。1つの方法は、デバイス用と注文用の2つのエンティティと、登録用の多対多の関係を持つリレーショナルデータベースを使用することです。注文が更新されると、サーバーは登録されたデバイスに通知する必要があります。したがって、サーバーは保存された登録情報に基づいて関連するデバイスを入手し、プッシュトークンを使用して各デバイスにプッシュ通知を送信する必要があります。注文タイプIDはプッシュトピックとして倍増し、ペイロードは空である必要があります。注文タイプID証明書を使用して、APNsと通信できます。通知について注意すべきもう1つのことは、注文パッケージに列挙プロパティの変更通知を設定して、注文通知の配信方法をカスタマイズできることです。利用可能なオプションは有効になっており、常に注文更新通知を送信し、デフォルト値です。ウォレットに通知を複製したくない場合は、ユーザーが注文パッケージにリストされているアプリがインストールされている場合、通知を送信しないdisableIfAppInstalledを設定します。登録されたデバイスは、それぞれサーバーが提供する新しい注文パッケージを要求します。デバイスがプッシュ通知を受信すると、プッシュ通知が空であるため、どの注文が変更されたかはまだわかりません。サーバーと一緒に、デバイスは最後にリクエストしてからどの注文が変更されたかを把握します。サーバーに保存された登録情報を使用して、関連する注文を検索し、IDを返します。更新時間を追跡し、応答に変更タグを含めて、将来のリクエストによって返される注文IDの数を制限します。たとえば、タイムスタンプを使用できます。値はデバイスに対して不透明です。デバイスは、次回変更を要求するときに変更タグを提供します。最後に、デバイスは、サーバーが示した注文ごとに最新のパッケージを要求します。今日は多くのことを取り上げました。可能な限り最高の顧客体験を提供するために、これらの慣行に従ってください。Apple Payを実装するときは、製品またはカートのページにApple Payボタンを表示して、エクスプレスチェックアウトを提供します。ユーザーは、支払いシートで配送オプションと住所を直接選択し、何も入力せずにチェックアウトできます。注文追跡を実装するときは、顧客の好みに関する知識を使用して、関連するローカリゼーションのみを提供します。さらに、注文パッケージのサイズを小さく保つために、含める資産の数に注意してください。注文を更新するときは、更新を登録したデバイスに速やかに通知してください。ウォレット内の注文は、注文の実際の状態と一致する必要があります。注文追跡とApple Payボタンの表示については、ヒューマンインターフェースガイドラインも必ず確認してください。今日は、建物を通じてApple Payの実装を開始し、注文を更新することを取り上げました。この講演は、Apple Payと注文追跡の実装を紹介することを目的としていますが、セッションノートにリンクされているドキュメントをチェックして詳細を掘り下げる必要があります。さらに、最新のWWDCビデオもチェックできます。今日はお時間をいただきありがとうございました。そして、残りの一日を楽しんでください。
コメント