AppleおよびGoogleの外部購入要件への準拠
AppleとGoogleでの外部購入に関するコンプライアンス責任と、それらを満たすためにUnityが提供するSDKとWebhookツールについて説明します。
読み終わるまでの所要時間 4 分最終更新 8日前
外部購入では、Apple や Google のアプリケーション内課金ではなく、独自のウェブアウト (支払いプロバイダーなど) を通じてデジタルコンテンツを販売します。AppleとGoogleは、一部の地域でのみ、また外部購入プログラム(Apple)や外部提供プログラム(google play)など、独自のプログラムルールの下でのみ、これを許可しています。適格性、手数料、開示、トランザクション レポートは、プラットフォーム、地域、アプリケーションによって異なります。地域によっては、これらの購入要件がほとんど必要ない場合もあります。
独自のコンプライアンスフローのビルドをヘルプするために、Unity は SDK フックと Webhook データを提供します。このページでは、責任の分担、コンプライアンス ステップのビルド順序モデル、実行できる具体的なアクションについて説明します。
このページは、D2C(Integrate Direct-to-コンシューマー)支払いプロバイダー ワークフローの一部です。ここで説明するコンプライアンス処理を追加する前に、支払いプロバイダーと購入フローを設定します。
責任分担
Unity は技術的な支援のみを提供します。支払いプロバイダーは、支払い処理、税務、紛争に関する記録商として機能しますが、AppleやGoogleプラットフォームのレポートはハンドルしません。プラットフォーム コンプライアンスはお客様の責任であり、Unity がお客様をプラットフォーム プログラムに登録することはありません。Unityの技術的な促進
支払いプロバイダーによる購入が完了すると、Unity がユーザーに代わってチェックアウト URL を開きます。デフォルトでは、デバイスの外部ブラウザーで開きます。アプリケーション内プレゼンテーション (CheckoutPresentationMode.WebViewお客様の責任
Unity は技術的な支援のみを提供します。以下のタスクを担当します。- アプリケーションと地域が各プラットフォームの外部購入プログラムの対象となるかどうかを決定します。
- AppleのとGoogleの
ExternalPurchaseClientにより、購入の開始前に独自の適格性チェックと開示チェックを実行できます。ExternalBillingProgramClient - AppleまたはGoogleが必要とするトランザクション トークンを、各プラットフォーム独自のAPIでAcquireおよびレポートします。
Unity が注文を作成および開始する方法
通常、支払いプロバイダーの購入はPurchaseProduct(catalogListingId)catalogListingId- はオーダーを作成し、チェックアウト URL をオープンせずに返します。
GenerateURL(catalogListingId, tokens) - によってチェックアウトが開きます。同じリストについてすでに
PurchaseProduct(catalogListingId)を呼び出している場合は、その順序が再利用されます。そうでない場合は、トークンなしで注文自体を作成し、それを開きます。GenerateURL
GenerateURLPurchaseProductコンプライアンスフローに必要なものを決定する
残りのセクションは独立しています。以下の表に、アプリケーションとプラットフォームに適用する手順を示します。必要な場合は | これを行います。 | セクション |
|---|---|---|
| アプリケーション内での独自の適格性ルールの適用 | 各購入の前に実行されるコンプライアンスコールバックの登録 | コンプライアンスチェックで購入をゲートする |
| 購入が開く前にチェックアウト URL を表示または開示する | | チェックアウト URL を表示または描画する |
| AppleまたはGoogleに外部トランザクションをレポート | | トランザクショントークンのアタッチ、設定、添付、レポート |
コンプライアンスチェックによる購入のゲート
このステップは任意です。アプリケーション内で独自の適格性ルールを適用する場合にのみ追加します。 購入に進む前に、コンプライアンスコールコールバックを登録して独自の適格性ルールを適用します。PurchaseProductPurchaseCartPaymentProviderComplianceContextfalsePurchasingUnavailable-
プレイヤーがコンプライアンス チェックに合格したかどうかを示すを返す関数を定義します。
Task<bool>Task<bool> RunComplianceCheckAsync(PaymentProviderComplianceContext context){ const ブーリアン allow = true; return Task.FromResult(allow);} -
Payment Providers 購入サービスに機能を登録し、購入が開始されたときに Unity が機能を呼び出すようにします。
m_PurchasingService.PaymentProviders?.SetComplianceCheck(RunComplianceCheckAsync);
-
チェック内のプラットフォーム クライアントを使用して、各プラットフォームが準拠するために必要な API を呼び出します。
- Apple: を使用してAppleの外部購入APIにアクセスします。
ExternalPurchaseClient - Google: を使用して Google の外部課金 API にアクセスします。
ExternalBillingProgramClient
- Apple:
チェックアウト URL を表示または描画する
プラットフォームによっては、プレイヤーが先に進む前に外部購入 URL をディスプレイまたは開示する必要がある場合や、独自のウェブビューでチェックアウトを描画する場合があります。いずれの場合も、GenerateURLその後、string url = await m_PurchasingService.PaymentProviders.GenerateURL(catalogListingId);// Display or disclose the URL, then call PurchaseProduct to open the checkout.
PurchaseProduct(catalogListingId)GenerateURLトランザクショントークンのアタッチ、設定、添付とレポート
このステップは、Apple または Google が外部トランザクションのレポートを要求している場合に必要です(これはプログラムと地域によって異なります)。 Apple と Google では、各外部トランザクションをサーバ API を通じてレポートする必要があります。プラットプラットフォームから不透明な透明なトランザクショントークンを取得し、Unity の注文にアタッチ、設定、添付し、ウェブフックで受け取り、レポートを提出できます。トークンは自分で生成します。AppleトークンはExternalPurchaseClientExternalBillingProgramClientPurchaseProductGenerateURL(catalogListingId, tokens)PurchaseProductUnity はトークンを検査や検証を行わずに順序とともに保存し、Webhook の順序でトークンを表示します。Order API 反応では返されません。await m_PurchasingService.PaymentProviders.GenerateURL(catalogListingId, tokenList);m_PurchasingService.PurchaseProduct(catalogListingId);
Webhook ペイロードのトークン
注文 Webhook には、dataexternalTransactionTokens{ "eventType": "order.paid", "data": { "id": "...", "playerId": "...", "status": "paid", "externalTransactionTokens": [ { "store": "apple", "token": "opaque-apple-transaction-token", "type": "acquisition" }, { "store": "google", "token": "opaque-google-transaction-token" } ] }}
これらのトークンを使用して、各プログラムで必要に応じてAppleの外部Purchase Server APIまたはGoogleの
externalTransactions