定期購入と 1 回だけの購入を管理する

定期購入または 1 回だけの購入について、管理操作が必要になる場合があります 日常業務の一環として提供していますたとえば、カスタマー サービスが 全額払い戻しまたは一部払い戻しを行う場合があります。また、払い戻しの取り消しや 利用資格を失う場合があります。Google Play Console から注文を管理できます。また、以下の場合は、 独自のシステムから管理する場合は、 Google Play Developer API:

定期購入を解約する

お客様は Google Play ストアから、いつでも Google Play の定期購入を解約できます。 ユーザーが定期購入を解約できるオプションも提供する必要があります。 (該当する場合は、アプリとウェブサイトで)

ユーザーが自発的に解約できるようにする最も簡単な方法は、 Google Play ストアにアクセスして、 購読を管理できるようになります

場合によっては、バックエンドからキャンセルをトリガーする必要があります。 purchases.subscriptions.cancel メソッドを使用すると、定期購読の購入をキャンセルできます。 たとえば、この方法でレガシー サービスを停止できます。 定期購入を解約しても払い戻しは行われず、ユーザーは 現在の請求対象期間が終了するまで引き続きご利用いただけます。Google Cloud の ユーザーが定期購入を再開できなくなります。 登録はできますが、ユーザーが できます。

このアクションを行うと、SUBSCRIPTION_CANCELED リアルタイム デベロッパーがトリガーされます 通知を受け取ります。これらの解約については、 解約

課金を延期する

subscriptions.defer を使用する 定期購入の利用資格期間を延長できます。延期期間中は コンテンツの定期購入は継続されるが、追加料金は請求されない あります。サブスクリプションの課金を延期すると、ステータス情報は次のようになります。 それに応じて更新され、expiryTime フィールドの 購入ステータス情報:

  • アクティブな定期購入の場合、請求が延期されると次の期間が延長されます。 更新日。
  • プリペイド プランの場合、課金の延期により有効期限が延長されます。

課金を延期する方法の例をいくつか示します。

  • スペシャル オファーとして、1 週間の無料期間など、ユーザーに無料アクセス権を付与する フィードバック アンケートに回答する既存のチャンネル登録者
  • カスタマーケア アクションとして、 長期間の停止により、サービスを利用できなくなる可能性がある。

課金の延期は、API 呼び出しごとに最短で 1 日、最長で 1 年間です。 利用資格の終了をさらに延期するには、API を再度呼び出します。 新しい有効期限が来るまで待つ必要はありません。

このアクションを行うと、SUBSCRIPTION_DEFERRED リアルタイム デベロッパーがトリガーされます 通知を受け取ります。これらのイベントの処理方法については、サブスクリプションについてサブスクライバーの課金を延期するをご覧ください。

例:

  1. FitnessGoals ストリーミング サービスは、 2 月の定期的な運動を奨励しましょう。

  2. 定期購入者に 1 か月のサービスを追加で提供することにした。 1 か月間に FitnessGoals が 10 回以上 2020 年 2 月。

  3. チャレンジの結果を記録し、3 月 1 日には に属するすべての有効な定期購入に対する subscriptions.defer API 2 月にチャレンジに達成したユーザーの数です。

  4. これらのユーザーは、通常の運動を丸 1 か月延長できます 無料で公開され、ユーザーは FitnessGoals が 健康を維持できます!

払い戻しと取り消しを行う

払い戻しの申請や取り消しが必要となるケースは数多くあります 定期購入や 1 回だけの購入など。

オーダー ID で注文を完全に払い戻しする

orders.refund API を使用すると、購入から 3 年以内であれば、どのような注文でも全額払い戻しできます。 orders.refund メソッドは、有効かどうかを示す取り消しパラメータを受け取ります。 アクセスも取り消される必要があります。

定期購入の払い戻しの呼び出しで取り消しを行うと、 定期購入が直ちに終了し、SUBSCRIPTION_REVOKED がトリガーされる リアルタイム デベロッパー通知。定期購入のライフサイクル管理を読む ガイドの取り消しのセクション これらのイベントの処理方法を確認してください

例:

  1. 新しいワールドカップの開幕を祝して、e スポーツアプリ Football-Not-Soccer、すべてのユーザーに無料のバーチャル ユニフォームをプレゼント 最初の 24 時間以内に新しいチームキットを購入したユーザーです。

  2. 「Football-Not-Soccer」は、orders.refund を使用します。 ジャージの購入を払い戻しするための取り消しパラメータを渡さずに、API を介して 受賞作品です

で確認できます。

購入トークンを使用して定期購入の取り消しと払い戻しを行う

特定のユースケースでは、ユーザーのサブスクリプションに対するアクセス権の取り消しが必要になることがあります 払い戻しを行います。Play 請求サービスでは、請求処理の取り消しが可能である 払い戻しと日割り計算による払い戻し(subscriptionsv2.revoke) APIこのエンドポイントでは、revocationContext を指定できます。 払い戻しの計算方法を決定します。

この操作により、SUBSCRIPTION_REVOKED リアルタイム デベロッパーがトリガーされます 通知アプリでは以下の説明に沿って、これらの解約を処理する必要があります。 取り消し

例:

  • 購入トークン 1a2b3c4d5e6f7g8h9i0j で購入
  • パッケージ名が com.your.app のアプリ
  • 日割り計算での払い戻しの意図

HTTP POST リクエスト:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

リクエスト本文:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

全額払い戻し

サブスクリプションを終了して、サブスクリプションの全額を 全額払い戻しを請求できます。こちらの purchases.subscriptionsv2.revoke 払い戻しの種類として "fullRefund": {} を設定します。

例:

  1. マリアは SuperMovies のストリーミングを 30 日間の自動更新で定期購入している 。技術的な問題が発生したためマリアは 制限します。請求の 3 日目にカスタマー サービスに連絡する サブスクリプションへのアクセス権がないと記載されています。

  2. カスタマー サービスで、マリアの定期購入の購入の詳細が purchases.subscriptionsv2.revoke の呼び出しがトリガーされます。 全額払い戻しをリクエストする。

  3. カスタマー サービスがマリアさんに、 定期購入の料金が払い戻され、現在はプランを定期購入していないという報告が寄せられました。

日割り計算での払い戻し

定期購入を終了して、残額の一部払い戻しを行う場合 日割り計算での払い戻しを行う。こちらの purchases.subscriptionsv2.revoke 払い戻しの種類として "proratedRefund": {} を設定します。

例:

  1. マリアは SuperMovies のストリーミングを 30 日間の自動更新で定期購入している 。彼女はしばらくこのサービスを喜んで利用しています。 マリアは請求期間の 15 日目にカスタマー サービスに連絡し、 移行日以降はサービスを使用できなくなります 翌日です。

  2. カスタマー サービスで、マリアの定期購入の購入の詳細が purchases.subscriptionsv2.revoke の呼び出しがトリガーされます。 日割り計算で払い戻しをリクエストする。

  3. カスタマー サービスが、母親に給与額の約 50% を渡してほしいと言っています 定期購入料金の払い戻しが行われ、サービスへのアクセスが停止された すぐに通知されます。

で確認できます。