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
}

または、GET リクエストを /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans に送信して、デベロッパー料金プランの {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
  }'