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 を定義する |
なし | はい |
quotaTarget |
アプリ デベロッパーに許可されるトランザクションのターゲット数。目標数に達した割合(90%、100%、150% など)に基づいて、通知の送信の有無とタイミングを構成できます。目標数に達した後も、追加の取引はブロックされません。 この値を正の整数値または 0 に設定すると、アプリ デベロッパーの通知が無効になります。 |
0 |
いいえ |
ratePlan |
料金プランの ID を定義する 料金プラン ID は表示名とは異なります。ID を含む料金プランの詳細を表示するには、 料金プランのページをご覧ください。 |
なし | はい |
suppressWarning |
デベロッパーが、すでに購入した料金プランと重複する料金プランを購入しようとした場合に、エラーを抑制するかどうかを指定するフラグ。値は次のいずれかです。
|
なし | いいえ |
waveTerminationCharge |
新しい料金プランの有効化の一環として有効な料金プランが解約されたときに解約料金が免除されるかどうかを指定するフラグ。値は次のいずれかです。
|
なし | いいえ |
たとえば、次のリクエストは、指定されたデベロッパーの 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
に設定されています。この場合、競合が発生するとエラーがスローされます。たとえば、デベロッパーが、すでに購入した料金プランと重複する料金プランを購入しようとすると、エラーがスローされます。これにより、収益化のユーザー インターフェースを提供するアプリで、エラーをインターセプトし、競合するプロダクトをデベロッパーに表示して確認できるようにします(必要に応じて)。suppressWarning
が true
に設定されている場合、収益化により、競合するプロダクトを含む 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_ADDRESS
と MINT_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 }'