REST Resource: monetization.subscriptions

แหล่งข้อมูล: การสมัครใช้บริการ

การสมัครใช้บริการเดียวสำหรับแอป

การแสดง JSON
{
  "packageName": string,
  "productId": string,
  "basePlans": [
    {
      object (BasePlan)
    }
  ],
  "listings": [
    {
      object (SubscriptionListing)
    }
  ],
  "archived": boolean,
  "taxAndComplianceSettings": {
    object (SubscriptionTaxAndComplianceSettings)
  },
  "restrictedPaymentCountries": {
    object (RestrictedPaymentCountries)
  }
}
ช่อง
packageName

string

เปลี่ยนแปลงไม่ได้ ชื่อแพ็กเกจของแอปหลัก

productId

string

เปลี่ยนแปลงไม่ได้ รหัสผลิตภัณฑ์ที่ไม่ซ้ำกันของผลิตภัณฑ์ ไม่ซ้ำกันภายในแอปหลัก รหัสผลิตภัณฑ์ต้องประกอบด้วยอักษรตัวพิมพ์เล็ก (a-z) ตัวเลข (0-9) ขีดล่าง (_) และจุด (.) โดยต้องขึ้นต้นด้วยอักษรตัวพิมพ์เล็กหรือตัวเลข และมีความยาวระหว่าง 1 ถึง 40 อักขระ (รวม)

basePlans[]

object (BasePlan)

ชุด Base Plan สำหรับการสมัครใช้บริการนี้ แสดงราคาและระยะเวลาของการสมัครใช้บริการหากไม่มีข้อเสนออื่นๆ ที่เกี่ยวข้อง

listings[]

object (SubscriptionListing)

ต้องระบุ รายการข้อมูลที่แปลแล้วสำหรับการสมัครใช้บริการนี้ ต้องมีรายการสำหรับภาษาเริ่มต้นของแอปหลักอย่างน้อย 1 รายการ

archived
(deprecated)

boolean

เอาต์พุตเท่านั้น เลิกใช้งานแล้ว: ระบบไม่รองรับการเก็บถาวรของการติดตาม

taxAndComplianceSettings

object (SubscriptionTaxAndComplianceSettings)

รายละเอียดเกี่ยวกับภาษีและการปฏิบัติตามข้อกำหนดทางกฎหมาย

restrictedPaymentCountries

object (RestrictedPaymentCountries)

ไม่บังคับ ประเทศที่จำกัดการซื้อการสมัครใช้บริการนี้ไว้เฉพาะวิธีการชำระเงินที่จดทะเบียนในประเทศเดียวกัน หากเว้นว่างไว้ ระบบจะไม่จำกัดสถานที่ชำระเงิน

BasePlan

แพ็กเกจเริ่มต้นเดียวสำหรับการสมัครใช้บริการ

การแสดง JSON
{
  "basePlanId": string,
  "state": enum (State),
  "regionalConfigs": [
    {
      object (RegionalBasePlanConfig)
    }
  ],
  "offerTags": [
    {
      object (OfferTag)
    }
  ],
  "otherRegionsConfig": {
    object (OtherRegionsBasePlanConfig)
  },

  // Union field base_plan_type can be only one of the following:
  "autoRenewingBasePlanType": {
    object (AutoRenewingBasePlanType)
  },
  "prepaidBasePlanType": {
    object (PrepaidBasePlanType)
  },
  "installmentsBasePlanType": {
    object (InstallmentsBasePlanType)
  }
  // End of list of possible types for union field base_plan_type.
}
ช่อง
basePlanId

string

ต้องระบุ เปลี่ยนแปลงไม่ได้ ตัวระบุที่ไม่ซ้ำกันของแพ็กเกจพื้นฐานนี้ ต้องไม่ซ้ำกันภายในการสมัครใช้บริการ และเป็นไปตาม RFC-1034 กล่าวคือ รหัสนี้ต้องมีได้เฉพาะตัวอักษรพิมพ์เล็ก (a-z) ตัวเลข (0-9) และขีดกลาง (-) เท่านั้น และมีอักขระไม่เกิน 63 ตัว

state

enum (State)

เอาต์พุตเท่านั้น สถานะของ Base Plan เช่น ใช้งานอยู่หรือไม่ คุณเปิดใช้งานหรือลบแพ็กเกจเริ่มต้นฉบับร่างและไม่ได้ใช้งานได้ แพ็กเกจเริ่มต้นที่ใช้งานอยู่สามารถทำให้ไม่ใช้งานได้ คุณยกเลิกแพ็กเกจเริ่มต้นที่ไม่ได้ใช้งานได้ คุณจะเปลี่ยนแปลงช่องนี้ด้วยการอัปเดตทรัพยากรไม่ได้ ให้ใช้ปลายทางเฉพาะแทน

regionalConfigs[]

object (RegionalBasePlanConfig)

ข้อมูลเฉพาะภูมิภาคสำหรับแพ็กเกจเริ่มต้นนี้

offerTags[]

object (OfferTag)

รายการแท็กที่กำหนดเองสูงสุด 20 รายการสำหรับแพ็กเกจพื้นฐานนี้ และส่งกลับไปยังแอปผ่านคลังการเรียกเก็บเงิน ข้อเสนอการสมัครใช้บริการสำหรับแพ็กเกจเริ่มต้นนี้จะได้รับแท็กข้อเสนอเหล่านี้ในคลังการเรียกเก็บเงินด้วย

otherRegionsConfig

object (OtherRegionsBasePlanConfig)

ข้อมูลราคาสำหรับสถานที่ตั้งใหม่ซึ่ง Play อาจเปิดตัวในอนาคต หากไม่ระบุ BasePlan จะไม่พร้อมใช้งานโดยอัตโนมัติในสถานที่ตั้งใหม่ใดๆ ที่ Play อาจเปิดตัวในอนาคต

ฟิลด์สหภาพ base_plan_type ประเภทของแพ็กเกจเริ่มต้นนี้ ต้องตั้งค่าเพียงรายการเดียว ประเภทแพ็กเกจเริ่มต้นจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจเริ่มต้นแล้ว base_plan_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
autoRenewingBasePlanType

object (AutoRenewingBasePlanType)

ตั้งค่าเมื่อแพ็กเกจเริ่มต้นต่ออายุใหม่โดยอัตโนมัติเป็นระยะๆ

prepaidBasePlanType

object (PrepaidBasePlanType)

ตั้งค่าเมื่อ Base Plan ไม่ต่ออายุโดยอัตโนมัติเมื่อสิ้นสุดระยะเวลาการเรียกเก็บเงิน

installmentsBasePlanType

object (InstallmentsBasePlanType)

ตั้งค่าสำหรับแพ็กเกจเริ่มต้นแบบผ่อนชำระซึ่งผู้ใช้ต้องชำระเงินตามจำนวนที่ระบุ

รัฐ

สถานะปัจจุบันของแพ็กเกจเริ่มต้น

Enum
STATE_UNSPECIFIED สถานะที่ไม่ได้ระบุ
DRAFT ขณะนี้แพ็กเกจพื้นฐานอยู่ในสถานะฉบับร่างและยังไม่ได้เปิดใช้งาน คุณสามารถลบไฟล์ดังกล่าวได้อย่างปลอดภัยในตอนนี้
ACTIVE แพ็กเกจเริ่มต้นใช้งานได้และพร้อมให้บริการแก่สมาชิกใหม่
INACTIVE แพ็กเกจเริ่มต้นไม่ได้ใช้งานและพร้อมให้บริการแก่สมาชิกปัจจุบันเท่านั้น

AutoRenewingBasePlanType

แสดงถึงแพ็กเกจเริ่มต้นที่จะต่ออายุใหม่โดยอัตโนมัติเมื่อสิ้นสุดระยะเวลาการสมัครใช้บริการ

การแสดง JSON
{
  "billingPeriodDuration": string,
  "gracePeriodDuration": string,
  "accountHoldDuration": string,
  "resubscribeState": enum (ResubscribeState),
  "prorationMode": enum (SubscriptionProrationMode),
  "legacyCompatible": boolean,
  "legacyCompatibleSubscriptionOfferId": string
}
ช่อง
billingPeriodDuration

string

ต้องระบุ เปลี่ยนแปลงไม่ได้ ระยะเวลาการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ดูรายการระยะเวลาการเรียกเก็บเงินที่ยอมรับได้ที่ศูนย์ช่วยเหลือ ระยะเวลาจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจเริ่มต้นแล้ว

gracePeriodDuration

string

ระยะเวลาผ่อนผันของแพ็กเกจการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ค่าที่ยอมรับได้ต้องอยู่ในรูปแบบวันและอยู่ระหว่าง P0D กับค่าที่น้อยกว่าระหว่าง 30 วันและระยะเวลาการเรียกเก็บเงินของแพ็กเกจพื้นฐาน

หากไม่ได้ระบุ ระบบจะใช้ค่าเริ่มต้นตามระยะเวลาการเรียกเก็บเงิน

ผลรวมของ gracePeriodDuration และ accountHoldDuration ต้องอยู่ระหว่าง P30D ถึง P60D วันโดยไม่แบ่งแยก

accountHoldDuration

string

ไม่บังคับ ระยะเวลาการระงับบัญชีของการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ค่าที่ยอมรับได้ต้องเป็นวันและอยู่ระหว่าง P0D ถึง P60D

หากไม่ได้ระบุ ค่าเริ่มต้นจะเป็น P30D

ผลรวมของ gracePeriodDuration และ accountHoldDuration ต้องอยู่ระหว่าง P30D ถึง P60D วันโดยไม่แบ่งแยก

resubscribeState

enum (ResubscribeState)

ผู้ใช้ควรสมัครใช้บริการแพ็กเกจเริ่มต้นนี้อีกครั้งในแพลตฟอร์มของ Google Play ได้หรือไม่ ค่าเริ่มต้นจะเป็น RESUBSCRIBE_STATE_ACTIVE หากไม่ได้ระบุไว้

prorationMode

enum (SubscriptionProrationMode)

โหมดการแบ่งตามสัดส่วนสำหรับแพ็กเกจเริ่มต้นจะกำหนดสิ่งที่จะเกิดขึ้นเมื่อผู้ใช้เปลี่ยนไปใช้แพ็กเกจนี้จากแพ็กเกจเริ่มต้นอื่น หากไม่ได้ระบุไว้ ระบบจะใช้ CHARGE_ON_NEXT_BILLING_DATE เป็นค่าเริ่มต้น

legacyCompatible

boolean

แพ็กเกจเริ่มต้นที่ต่ออายุใหม่เข้ากันได้กับแพ็กเกจเดิมหรือไม่

ระบบจะส่งแพ็กเกจเริ่มต้นที่เข้ากันได้แบบย้อนหลังกลับโดยวิธี querySkuDetailsAsync() ที่เลิกใช้แล้วของ Google Play Billing Library

แพ็กเกจเริ่มต้นแบบต่ออายุใหม่ 1 แพ็กเกจเท่านั้นที่สามารถทําเครื่องหมายว่าเข้ากันได้กับแพ็กเกจเดิมสําหรับการสมัครใช้บริการหนึ่งๆ

legacyCompatibleSubscriptionOfferId

string

รหัสข้อเสนอการสมัครใช้บริการที่เข้ากันได้กับเดิม

ระบบจะส่งข้อเสนอการสมัครใช้บริการที่เข้ากันได้แบบย้อนหลังโดยวิธี querySkuDetailsAsync() ที่เลิกใช้แล้วของ Google Play Billing Library

คุณทำเครื่องหมายข้อเสนอการสมัครใช้บริการได้เพียง 1 รายการว่าเข้ากันได้กับแพ็กเกจเดิมสำหรับแพ็กเกจเริ่มต้นแบบต่ออายุใหม่หนึ่งๆ

หากไม่ต้องการให้ข้อเสนอการสมัครใช้บริการเข้ากันได้กับเดิม ให้ตั้งค่าช่องนี้เป็นสตริงว่าง

ResubscribeState

สถานะการสมัครใช้บริการแพ็กเกจเริ่มต้นอีกครั้ง

Enum
RESUBSCRIBE_STATE_UNSPECIFIED สถานะที่ไม่ได้ระบุ
RESUBSCRIBE_STATE_ACTIVE การสมัครใช้บริการอีกครั้งทำงานอยู่
RESUBSCRIBE_STATE_INACTIVE สมัครใช้บริการอีกครั้งไม่ทำงาน

SubscriptionProrationMode

โหมดการแบ่งตามสัดส่วนที่ใช้สำหรับการต่ออายุแพ็กเกจเริ่มต้น

Enum
SUBSCRIPTION_PRORATION_MODE_UNSPECIFIED โหมดที่ไม่ระบุ
SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE ระบบจะเรียกเก็บเงินค่าแพ็กเกจฐานใหม่จากผู้ใช้เมื่อสิ้นสุดช่วงเวลาที่เรียกเก็บเงินงวดปัจจุบัน
SUBSCRIPTION_PRORATION_MODE_CHARGE_FULL_PRICE_IMMEDIATELY ระบบจะเรียกเก็บเงินค่าแพ็กเกจเริ่มต้นใหม่จากผู้ใช้เต็มจำนวนทันที ระบบจะใช้ระยะเวลาที่เหลืออยู่ของการสมัครใช้บริการที่มีอยู่เพื่อขยายระยะเวลาของแพ็กเกจการเรียกเก็บเงินใหม่

PrepaidBasePlanType

แสดงถึง Base Plan ที่ไม่ต่ออายุใหม่โดยอัตโนมัติเมื่อสิ้นสุด Base Plan และผู้ใช้ต้องต่ออายุด้วยตนเอง

การแสดง JSON
{
  "billingPeriodDuration": string,
  "timeExtension": enum (TimeExtension)
}
ช่อง
billingPeriodDuration

string

ต้องระบุ เปลี่ยนแปลงไม่ได้ ระยะเวลาการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ดูรายการระยะเวลาการเรียกเก็บเงินที่ยอมรับได้ที่ศูนย์ช่วยเหลือ ระยะเวลาจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจเริ่มต้นแล้ว

timeExtension

enum (TimeExtension)

ผู้ใช้ควรต่ออายุแพ็กเกจพื้นฐานแบบชําระเงินล่วงหน้านี้ในแพลตฟอร์มของ Google Play ได้หรือไม่ ค่าเริ่มต้นจะเป็น TIME_EXTENSION_ACTIVE หากไม่ได้ระบุไว้

TimeExtension

การขยายเวลาแพ็กเกจเริ่มต้น

Enum
TIME_EXTENSION_UNSPECIFIED สถานะที่ไม่ได้ระบุ
TIME_EXTENSION_ACTIVE การขยายเวลาทำงานอยู่ ผู้ใช้สามารถเติมเงินหรือขยายแพ็กเกจแบบชำระเงินล่วงหน้าได้
TIME_EXTENSION_INACTIVE การขยายเวลาไม่ทำงาน ผู้ใช้จะเติมเงินหรือขยายแพ็กเกจแบบชำระเงินล่วงหน้าไม่ได้

InstallmentsBasePlanType

แสดงแพ็กเกจเริ่มต้นแบบผ่อนชำระที่ผู้ใช้ต้องชำระเงินตามจำนวนที่ระบุ

การแสดง JSON
{
  "billingPeriodDuration": string,
  "committedPaymentsCount": integer,
  "renewalType": enum (RenewalType),
  "gracePeriodDuration": string,
  "accountHoldDuration": string,
  "resubscribeState": enum (ResubscribeState),
  "prorationMode": enum (SubscriptionProrationMode)
}
ช่อง
billingPeriodDuration

string

ต้องระบุ เปลี่ยนแปลงไม่ได้ ระยะเวลาการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ดูรายการระยะเวลาการเรียกเก็บเงินที่ยอมรับได้ที่ศูนย์ช่วยเหลือ ระยะเวลาจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจเริ่มต้นแล้ว

committedPaymentsCount

integer

ต้องระบุ เปลี่ยนแปลงไม่ได้ จำนวนการชำระเงินที่ผู้ใช้ต้องชำระ โดยคุณจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจเริ่มต้นแล้ว

renewalType

enum (RenewalType)

ต้องระบุ เปลี่ยนแปลงไม่ได้ ประเภทการต่ออายุแพ็กเกจเริ่มต้นแบบผ่อนชำระ กำหนดลักษณะการทำงานเมื่อสิ้นสุดระยะเวลาผูกมัดเริ่มต้น ประเภทการต่ออายุจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจเริ่มต้นแล้ว

gracePeriodDuration

string

ระยะเวลาผ่อนผันของแพ็กเกจการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ค่าที่ยอมรับได้ต้องอยู่ในรูปแบบวันและอยู่ระหว่าง P0D กับค่าที่น้อยกว่าระหว่าง 30 วันและระยะเวลาการเรียกเก็บเงินของแพ็กเกจพื้นฐาน

หากไม่ได้ระบุ ระบบจะใช้ค่าเริ่มต้นตามระยะเวลาการเรียกเก็บเงิน

ผลรวมของ gracePeriodDuration และ accountHoldDuration ต้องอยู่ระหว่าง P30D ถึง P60D วันโดยไม่แบ่งแยก

accountHoldDuration

string

ไม่บังคับ ระยะเวลาการระงับบัญชีของการสมัครใช้บริการที่ระบุในรูปแบบ ISO 8601 ค่าที่ยอมรับได้ต้องเป็นวันและอยู่ระหว่าง P0D ถึง P60D

หากไม่ได้ระบุ ค่าเริ่มต้นจะเป็น P30D

ผลรวมของ gracePeriodDuration และ accountHoldDuration ต้องอยู่ระหว่าง P30D ถึง P60D วันโดยไม่แบ่งแยก

resubscribeState

enum (ResubscribeState)

ผู้ใช้ควรสมัครใช้บริการแพ็กเกจเริ่มต้นนี้อีกครั้งในแพลตฟอร์มของ Google Play ได้หรือไม่ ค่าเริ่มต้นจะเป็น RESUBSCRIBE_STATE_ACTIVE หากไม่ได้ระบุไว้

prorationMode

enum (SubscriptionProrationMode)

โหมดการแบ่งตามสัดส่วนสำหรับแพ็กเกจเริ่มต้นจะกำหนดสิ่งที่จะเกิดขึ้นเมื่อผู้ใช้เปลี่ยนไปใช้แพ็กเกจนี้จากแพ็กเกจเริ่มต้นอื่น หากไม่ได้ระบุไว้ ระบบจะใช้ CHARGE_ON_NEXT_BILLING_DATE เป็นค่าเริ่มต้น

RenewalType

ประเภทการต่ออายุแพ็กเกจเริ่มต้นแบบผ่อนชำระ กำหนดลักษณะการทำงานเมื่อสิ้นสุดระยะเวลาผูกมัดเริ่มต้น ประเภทการต่ออายุจะเปลี่ยนแปลงไม่ได้หลังจากสร้างแพ็กเกจพื้นฐานแล้ว

Enum
RENEWAL_TYPE_UNSPECIFIED สถานะที่ไม่ได้ระบุ
RENEWAL_TYPE_RENEWS_WITHOUT_COMMITMENT ต่ออายุเป็นระยะๆ ตามระยะเวลาที่เรียกเก็บเงินโดยไม่มีภาระผูกพัน
RENEWAL_TYPE_RENEWS_WITH_COMMITMENT ต่ออายุโดยมีการผูกมัดที่มีระยะเวลาเดียวกับการผูกมัดครั้งแรก

RegionalBasePlanConfig

การกําหนดค่าสําหรับแพ็กเกจเริ่มต้นเฉพาะภูมิภาค

การแสดง JSON
{
  "regionCode": string,
  "newSubscriberAvailability": boolean,
  "price": {
    object (Money)
  }
}
ช่อง
regionCode

string

ต้องระบุ รหัสภูมิภาคที่ใช้กับการกำหนดค่านี้ตามที่ระบุโดย ISO 3166-2 เช่น "US"

newSubscriberAvailability

boolean

แพ็กเกจเริ่มต้นในภูมิภาคที่ระบุพร้อมให้บริการสำหรับสมาชิกใหม่หรือไม่ ระบบจะไม่ยกเลิกการสมัครใช้บริการของสมาชิกปัจจุบันหากตั้งค่านี้เป็นเท็จ หากไม่ระบุ ระบบจะใช้ค่าเริ่มต้นเป็น "เท็จ"

price

object (Money)

ราคาของแพ็กเกจเริ่มต้นในภูมิภาคที่ระบุ ต้องตั้งค่าหากแพ็กเกจเริ่มต้นพร้อมให้บริการสำหรับสมาชิกใหม่ ต้องกำหนดเป็นสกุลเงินที่เชื่อมโยงกับภูมิภาคที่ระบุ

OtherRegionsBasePlanConfig

ข้อมูลราคาสำหรับประเทศใหม่ที่ Play อาจเปิดตัว

การแสดง JSON
{
  "usdPrice": {
    object (Money)
  },
  "eurPrice": {
    object (Money)
  },
  "newSubscriberAvailability": boolean
}
ช่อง
usdPrice

object (Money)

ต้องระบุ ราคาในสกุลเงิน USD สำหรับใช้กับประเทศใหม่ที่ Play อาจเปิดตัว

eurPrice

object (Money)

ต้องระบุ ราคาในสกุลเงินยูโรที่จะใช้สำหรับประเทศใหม่ที่ Play อาจเปิดตัว

newSubscriberAvailability

boolean

แพ็กเกจเริ่มต้นพร้อมให้บริการสำหรับสมาชิกใหม่ในสถานที่ตั้งใหม่ใดๆ ที่ Play อาจเปิดตัวหรือไม่ หากไม่ได้ระบุ ระบบจะใช้ค่าเริ่มต้นเป็น "เท็จ"

SubscriptionListing

ข้อมูลเมตาที่ผู้บริโภคมองเห็นของการสมัครใช้บริการ

การแสดง JSON
{
  "languageCode": string,
  "title": string,
  "benefits": [
    string
  ],
  "description": string
}
ช่อง
languageCode

string

ต้องระบุ ภาษาของข้อมูลนี้ตามที่ระบุโดย BCP-47 เช่น "th-TH"

title

string

ต้องระบุ ชื่อของการสมัครใช้บริการนี้ในภาษาของข้อมูลนี้ ข้อความธรรมดา

benefits[]

string

รายการสิทธิประโยชน์ที่แสดงต่อผู้ใช้ในแพลตฟอร์มต่างๆ เช่น Play Store และในขั้นตอนการคืนค่าเป็นภาษาของข้อมูลนี้ ข้อความธรรมดา รายการสิทธิประโยชน์ตามลําดับสูงสุด 4 รายการ

description

string

คําอธิบายการสมัครใช้บริการนี้ในภาษาของข้อมูลนี้ ความยาวสูงสุด - 80 อักขระ ข้อความธรรมดา

RestrictedPaymentCountries

ประเทศที่จำกัดการซื้อผลิตภัณฑ์นี้ไว้เฉพาะวิธีการชำระเงินที่จดทะเบียนในประเทศเดียวกัน หากเว้นว่างไว้ ระบบจะไม่จำกัดสถานที่ชำระเงิน

การแสดง JSON
{
  "regionCodes": [
    string
  ]
}
ช่อง
regionCodes[]

string

ต้องระบุ รหัสภูมิภาคที่จะจำกัดการชําระเงินตามที่ระบุโดย ISO 3166-2 เช่น "US"

เมธอด

archive
(deprecated)

เลิกใช้งานแล้ว: ระบบไม่รองรับการเก็บถาวรของการติดตาม

batchGet

อ่านการสมัครใช้บริการอย่างน้อย 1 รายการ

batchUpdate

อัปเดตการสมัครใช้บริการหลายรายการพร้อมกัน

create

สร้างการสมัครใช้บริการใหม่

delete

ลบการสมัครใช้บริการ

get

อ่านการสมัครใช้บริการรายการเดียว

list

แสดงรายการการสมัครใช้บริการทั้งหมดภายใต้แอปหนึ่งๆ

patch

อัปเดตการสมัครใช้บริการที่มีอยู่