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 プロパティを指定します。

料金プランは、指定した終了日の 1 日の終わりまで有効です。たとえば、料金プランを 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
  }'