API を使用して料金プランを購入する

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動します。
情報

このセクションでは、API を使用して、公開された料金プランを購入する方法と、必要に応じて購入した料金プランの有効期限を終了またはキャンセルする方法について説明します。

API を使用して公開料金プランを購入する

料金プランが公開されると、デベロッパーまたは会社は /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans に POST リクエストを発行して、料金プランを購入(または「承認」)できます。ここで、{org_name} は組織の名前、{developer_or_company_id} はデベロッパーまたは会社の ID です。

料金プランの購入時に設定料金を免除するには、waivefees クエリ パラメータを true に設定します。このフラグは、デベロッパーの収益化への移行で説明されているように、デベロッパーを収益化に移行する場合に便利です。

次の表に、リクエスト本文で指定できる構成プロパティ、デフォルト値、必須かどうかを示します。

名前 説明 デフォルト 必須かどうか
startDate

料金プランの開始日。例: 2017-03-24

なし
endDate

料金プランの終了日。例: 2017-09-24

料金プランは、指定された日付の終了時刻まで有効になります。たとえば、2017 年 12 月 1 日にレートプランの有効期限が切れるようにするには、endDate の値を 2017-11-30 に設定します。この場合、レートプランは 2017 年 11 月 30 日の終了時に期限切れになり、2017 年 12 月 1 日のすべてのリクエストはブロックされます。

なし いいえ
developer

料金プランを購入するデベロッパーまたは企業の ID を定義する id プロパティ。

なし
quotaTarget

アプリ デベロッパーに許可されるトランザクションの目標数。目標数の達成率(90%、100%、150% など)に基づいて、通知を送信するかどうか、送信するタイミングを構成できます。目標数に達した後も、追加のトランザクションはブロックされません。

この値を正の整数値または 0 に設定して、アプリ デベロッパーの通知を無効にします。

0 いいえ
ratePlan

料金プランの ID を定義する id プロパティ。

料金プラン ID は表示名とは異なります。ID などの料金プランの詳細を表示するには、 料金プラン ページを確認するをご覧ください。

なし
suppressWarning

デベロッパーが、購入済みの別のレートプランと重複するレートプランを購入しようとした場合に、エラーを抑制するかどうかを指定するフラグ。値は次のいずれかになります。

  • true - 収益化により、デベロッパーが競合する API プロダクトを含む API パッケージに対して購入したすべての料金プランが終了します。その後、デベロッパー向けに新しい API パッケージを購入します。
  • false - 料金プランが重複している場合は、エラーがスローされます。
なし いいえ
waveTerminationCharge

新しい料金プランの有効化の一環として有効な料金プランが終了した場合に、解約手数料が免除されるかどうかを指定するフラグ。値は次のいずれかになります。

  • true - 新しい料金プランの有効化の一環として有効な料金プランが終了した場合、解約手数料を免除します。
  • false - 新しい料金プランの有効化の一環として有効な料金プランが終了した場合、解約手数料を免除しません。
なし いいえ

たとえば、次のリクエストでは、指定されたデベロッパーの location_&_messaging 料金プランを購入します。

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "startDate":"2017-08-30",
   "ratePlan":{
     "id":"location_&_messaging"
   },
   "suppressWarning":false
  }'

この例では、suppressWarning プロパティは false に設定されています。この場合、競合が発生するとエラーがスローされます。たとえば、デベロッパーが購入済みの別の料金プランと重複する料金プランを購入しようとすると、エラーがスローされます。これにより、収益化のユーザー インターフェースを提供するアプリがエラーをインターセプトし、競合するアイテムをデベロッパーに表示して確認を求めることができます(適切な場合)。suppressWarningtrue に設定されている場合、収益化により、デベロッパーが競合するプロダクトを含む API パッケージに対して購入したすべての料金プランが終了します。その後、デベロッパー向けに新しい API パッケージを購入します。

次のリクエストは、調整可能な通知レートプランを購入し、トランザクションの目標数を 4,000 に設定します。

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "ratePlan":{
     "id":"adjustable-notification-plan"
   },
   "startDate": "2017-03-24",
   "quotaTarget": 4000,
   "suppressWarning":false
  }'

上記のいずれかの例で、次のエラー メッセージが返された場合:

Developer legal name not specified. 

次に、収益化属性 MINT_DEVELOPER_ADDRESSMINT_DEVELOPER_LEGAL_NAME を設定し、API 呼び出しを繰り返す必要があります。

API を使用してデベロッパーが購入した料金プランの有効期限が切れる

デベロッパーが購入した料金プランを期限切れにする(またはキャンセルする)には、購入した料金プランの詳細を更新し、/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id} リソースに対する PUT リクエストで、リクエスト本文の endDate プロパティを指定します。

料金プランは、指定された終了日の終了時刻まで有効になります。たとえば、2017 年 12 月 1 日にレートプランの有効期限が切れるようにするには、endDate の値を 2017-11-30 に設定します。この場合、レートプランは 2017 年 11 月 30 日の終了時に期限切れになり、2017 年 12 月 1 日のすべてのリクエストがブロックされます。

公開済みの料金プランを購入すると、レスポンスで {developer_rateplan_id} が返されます。

次に例を示します。

{
  "created": "2017-03-31 18:59:54",
  "developer": {
    ...
  },
  "id": "b1c600b8-f871-496d-8173-12b9950d6ab1",
  "quotaTarget": 3000,
  "ratePlan": {
    ...
  },
  "startDate": "2017-03-31 00:00:00",
  "updated": "2017-03-31 18:59:54",
  "waiveTerminationCharge": false
}

または、/organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans に GET リクエストを発行して、デベロッパー レートプランの {developer-rateplan-id} を取得することもできます。ここで、{developer_id} はデベロッパーのメールアドレスです。詳細については、デベロッパーが購入したすべてのレートプランを表示するをご覧ください。

次のリクエストは、終了日を 2017 年 12 月 1 日に更新します。つまり、レートプランは 2017 年 11 月 30 日の終了時に期限切れになり、2017 年 12 月 1 日のすべてのリクエストはブロックされます。

curl "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/developers/dev@mycompany.com/developer-rateplans/b1c600b8-f871-496d-8173-12b9950d6ab1"
  -X PUT \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "id" : "b1c600b8-f871-496d-8173-12b9950d6ab1",
   "developer":{
     "id":"dev@mycompany.com"
   },
   "ratePlan":{
     "id":"p1_adjustable-notification-plan"
   },
   "startDate": "2017-04-15 00:00:00",
   "endDate": "2017-11-30",
   "quotaTarget": 3000,
   "suppressWarning":false
  }'