サービスの申し込み
サービス購入者がサービスの申し込みが完了した際に発行されるWebHookについて説明します。
概要
サービス申し込みが完了すると契約開始とユーザーの追加、課金サイクル更新の3つのWebHookが発行されます。
送信されるWebHookの内容はWebHookバージョンにより異なります。
WebHookバージョンはサービスマネージャーで指定することができます。
契約開始のWebHookは、以下の2種類になります。
SubscriptionCreate(Version2)
SquareProvisioning(Version1)
ユーザー追加のWebHookは、以下の2種類になります。
UserProvisioning(Version2)
IDProvisioning(Version1)
課金サイクル更新のWebHookは、バージョン2のみとなります。
payments/change_billing_period(Version2)
契約開始のWebHookには、契約された料金プランの情報と契約によって生成されたスクエアのIDが含まれます。
ユーザー追加のWebHookには、契約者の情報が含まれます。
課金サイクルのWebHookには、契約された料金プランが適用される期間が含まれます。
*料金プランがトライアルプランの場合は、トライアル期間が通知対象となります。
以下の順番でWebHookは発行されます。
SubscriptionCreate(Version2), SquareProvisioning(Version1)
UserProvisioning(Version2), IDProvisioning(Version1)
payments/change_billing_period(Version2)
リクエストボディ
以下のJSONフォーマットでCloudGearからCloudGearアプリケーションにHTTPリクエストが送信されます。
各フィールドのデータ長は今後のリリースで変更される可能性があります。
余裕を持った設計を推奨いたします。
event = "subscription", type = "create"
{
"id": "91018c24-4182-4e20-8509-501471b6304f", // UUID
"event": "subscription",
"type": "create",
"created_at": 1576200980964, // 作成日時
"version": 2, // WebHookのバージョン
"data": {
"plans": [
{
"id": "d6bbb65c-8c53-4378-b60b-a1da3bfbb93e", // プランID
"action": "ADD" // プランへの操作タイプ
}
],
"trialing": true, // トライアルの有無
"cause": "New subscription has been created.", // 操作理由
"service_id": 1, // サービスID
"square_id": "square_id", // 実行対象のスクエアID
"subscription_id": "sub_GLkZY8VfkfCMrm", // 契約ID
"userinfo": { // 契約者のユーザー情報
"sub": "unirita@unirita.co.jp",
"name": "ユニリタ123456112",
"email": "unirita@unirita.co.jp",
"given_name": "太郎",
"family_name": "ユニリタ",
"preferred_username": "unirita@unirita.co.jp",
"domain_id": "cloudgear.co.jp",
"image_url": {
"100": "https://cloudgear-public-test.s3-ap-northeast-1.amazonaws.com/profile-image/100/8021deb7-b3d6-4bb1-b2da-c31335c1671c",
"300": "https://cloudgear-public-test.s3-ap-northeast-1.amazonaws.com/profile-image/300/8021deb7-b3d6-4bb1-b2da-c31335c1671c",
"500": "https://cloudgear-public-test.s3-ap-northeast-1.amazonaws.com/profile-image/500/8021deb7-b3d6-4bb1-b2da-c31335c1671c"
},
"user_attrs": [],
"service_roles": [],
"subscription_roles": [{
"type": "ADD",
"role_id": "owner"
}]
}
}
}
squareprovisioning(ADD)
{
"event":"squareprovisioning",
"version": 1,
"data":[{
"plans":[{
"id":"UUID", // プランID
"action":"ADD" // プランへの操作タイプ
}],
"serviceId":1, // サービスID
"squareId":"UUID", // スクエアID
"action":"ADD", // スクエアへの操作タイプ
"cause":"execute SPROV.", // 操作理由
"userinfo":{ // スクエアオーナーのユーザー情報
"sub":"cloudgear@cloudgear.services",
"name":"クラウドギア",
"email":"cloudgear@cloudgear.services",
"account_type": "individual",
"company_name": null,
"given_name":"ギア",
"family_name":"クラウド",
"preferred_username":"cloudgear@cloudgear.services",
"square_id":"UUID",
"square_attrs":{
"属性名":"属性値",
...
}
}
}]
}
event = "user", type = "provisioning"
{
"id": "91018c24-4182-4e20-8509-501471b6304e" // UUID
"event": "user",
"type": "provisioning",
"crated_at": 1576200980964, // 作成日時
"version": 2
"data": {
"square_id": "square_id", // 実行対象になるスクエアID
"service_id": "service_id", // サービスID
"subscription_id": "subscription_id", // 契約ID
"users": [{
"action": "ADD", // プロビジョニングタイプ
"userinfo": {
"sub": "user1@unirita.co.jp", // UID
"name": "ユニリタ太郎", // 名前
"given_name": "太郎", // 名
"family_name": "ユニリタ", // 姓
"preferred_username": "user1@unirita.co.jp", // UID
"email": "user1@unirita.co.jp", // メールアドレス
"account_type": "individual",
"company_name": null,
"domain_id": "cloudgear.services", // 所属するドメインID
"user_attrs": [{ // ユーザー属性
"id": 1,
"name": "attribute_key", // 属性名
"value": "attribute_value", // 属性値
"square_id": "1234567890" // 属性が紐づくスクエアID(スクエアに紐づいていない場合"global"と表示)
}...{}],
"service_roles": [],
"subscription_roles": [{
"type": "ADD",
"role_id": "owner"
}],
"image_url": { // プロフィール画像が設定されていない場合は空
"100":"https://cloudgear-public-prod.s3-ap-northeast-1.amazonaws.com/profile-image/100/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"300":"https://cloudgear-public-prod.s3-ap-northeast-1.amazonaws.com/profile-image/300/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"500":"https://cloudgear-public-prod.s3-ap-northeast-1.amazonaws.com/profile-image/500/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
}
}
}]
}
}