การซื้อการสมัครใช้บริการจะดำเนินการผ่านรัฐต่างๆ ได้ในหลายรัฐ วงจร ทั้งนี้ขึ้นอยู่กับหลายปัจจัย เช่น ลักษณะการต่ออายุใหม่อัตโนมัติ การชำระเงิน สถานการณ์ที่ลดลง และการดำเนินการจัดการของนักพัฒนาซอฟต์แวร์
จัดการวงจรสำหรับการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติ
เมื่อสถานะการสมัครใช้บริการของผู้ใช้มีการเปลี่ยนแปลง เซิร์ฟเวอร์แบ็กเอนด์ของคุณจะได้รับ
SubscriptionNotification
ข้อความ
ในการอัปเดตสถานะในแบ็กเอนด์ของคุณ ให้เรียกใช้
purchases.subscriptionsv2.get
API ที่มีโทเค็นการซื้อรวมอยู่ในการแจ้งเตือน ปลายทางนี้มี
สถานะการสมัครใช้บริการล่าสุดที่ได้รับโทเค็นการซื้อ และถือว่า
แหล่งข้อมูลที่เชื่อถือได้มากที่สุดสำหรับการจัดการการสมัครใช้บริการ
โทเค็นการซื้อจะใช้ได้ตั้งแต่ลงชื่อสมัครใช้การสมัครใช้บริการจนถึง 60 วันหลังจากนั้น วันหมดอายุ หลังจากวันดังกล่าว โทเค็นการซื้อจะใช้เพื่อ เรียก API สำหรับนักพัฒนาซอฟต์แวร์ Google Play
การซื้อการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติใหม่
เมื่อผู้ใช้ซื้อการสมัครใช้บริการ ข้อความ SubscriptionNotification
ที่มี
ระบบจะส่งประเภท SUBSCRIPTION_PURCHASED
ไปยังไคลเอ็นต์ RTDN ของคุณ คุณได้รับหรือไม่
การแจ้งเตือนนี้หรือการลงทะเบียน
การซื้อในแอปใหม่ผ่าน
PurchasesUpdatedListener
หรือดึงข้อมูลการซื้อด้วยตนเองใน
onResume()
ของแอป คุณควรประมวลผลการซื้อใหม่ใน
แบ็กเอนด์ โดยคุณต้องทำตามขั้นตอนต่อไปนี้:
- ค้นหาข้อมูล
purchases.subscriptionsv2.get
ปลายทางเพื่อรับการสมัครใช้บริการ แหล่งข้อมูล ที่มีสถานะของการสมัครใช้บริการล่าสุด - ตรวจสอบว่าค่าของแอตทริบิวต์
subscriptionState
คือSUBSCRIPTION_STATE_ACTIVE
- ยืนยันการซื้อ
- ให้สิทธิ์เข้าถึงเนื้อหาแก่ผู้ใช้ บัญชีผู้ใช้ที่เชื่อมโยงกับ
ก็สามารถระบุได้ด้วย
ExternalAccountIdentifiers
จากแหล่งข้อมูลการสมัครใช้บริการหากมีการตั้งค่าตัวระบุไว้ตอนซื้อ เวลาที่ใช้setObfuscatedAccountId
และsetObfuscatedProfileId
Play Billing Library ยังมีวิธีการ
รับทราบการสมัครใช้บริการด้วย
acknowledgePurchase()
และวิธีตรวจสอบสถานะการตอบรับ
isAcknowledged()
อย่างไรก็ตาม เราขอแนะนำให้คุณจัดการการประมวลผลการซื้อในแบ็กเอนด์สำหรับ
การรักษาความปลอดภัยที่ดีขึ้น
ทรัพยากรการสมัครใช้บริการสำหรับการซื้อใหม่มีลักษณะคล้ายกับรายการต่อไปนี้ ตัวอย่าง:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_PENDING", // need to acknowledge new purchases
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
การต่ออายุการสมัครรับข้อมูล
สำหรับการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติแบบไม่ผ่อนชำระ SUBSCRIPTION_RENEWED
ระบบจะส่งการแจ้งเตือนเมื่อมีการต่ออายุการสมัครใช้บริการ สำหรับการผ่อนชำระ
ระบบจะส่งการแจ้งเตือนSUBSCRIPTION_RENEWED
ในแต่ละครั้งที่มีการสมัครรับข้อมูล
เราจะเรียกเก็บค่าสมัครใช้บริการในวันที่เรียกเก็บเงิน ตรวจสอบว่าผู้ใช้ยังอยู่
ที่มีสิทธิ์ในการสมัครใช้บริการ จากนั้นอัปเดตสถานะการสมัครใช้บริการด้วย
expiryTime
ที่ระบุไว้ในการสมัครรับข้อมูล
ทรัพยากร ที่ส่งคืนจาก Google Play
API สำหรับนักพัฒนาซอฟต์แวร์ แหล่งข้อมูลการสมัครใช้บริการจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED",
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
]
}
คุณไม่จำเป็นต้องรับทราบการต่ออายุการสมัครใช้บริการ
ระยะเวลาผ่อนผัน
หากมีปัญหาเกี่ยวกับการชำระเงินสำหรับการต่ออายุการสมัครใช้บริการ Google จะแจ้งเตือน ผู้ใช้ และพยายามต่ออายุการสมัครสมาชิกเป็นระยะๆ เป็นเวลาระยะหนึ่ง การสมัครใช้บริการจะหมดอายุ ระยะเวลาการกู้คืนนี้สามารถประกอบด้วยระยะเวลาผ่อนผัน ตามด้วยช่วงการระงับบัญชี ในช่วงระยะเวลาผ่อนผัน ผู้ใช้ควร ยังคงเข้าถึงสิทธิ์ในการสมัครใช้บริการได้
queryPurchasesAsync()
จะแสดงผลการซื้อที่อยู่ในระยะเวลาผ่อนผันต่อไป หากแอปของคุณ
อาศัย queryPurchasesAsync
เพียงอย่างเดียวในการตรวจสอบว่าผู้ใช้มีสิทธิ์ได้รับ
ของคุณ แอปของคุณควรจัดการระยะเวลาผ่อนผันโดยอัตโนมัติ เนื่องจาก
การสมัครใช้บริการเหล่านี้จะแสดงว่าใช้งานอยู่ผ่านทาง Play Billing Library
การซิงค์สถานะการสมัครกับแบ็กเอนด์ช่วยให้คุณรับรู้
ของการปฏิเสธการชำระเงิน และให้บริบทมากขึ้น ในขณะที่คุณพยายามลดความไม่ตั้งใจ
เลิกใช้งาน ฟัง
SubscriptionNotification
ข้อความ
ที่มีประเภท SUBSCRIPTION_IN_GRACE_PERIOD
เพื่อรับการแจ้งเตือนเมื่อผู้ใช้ป้อน
ระยะเวลาผ่อนผัน ขณะที่ผู้ใช้อยู่ในระยะเวลาผ่อนผัน การสมัครรับข้อมูล
แหล่งข้อมูล
มี autoRenewEnabled = true
Google Play ได้ขยายขอบเขตของ
ค่า expiryTime
จนกว่าระยะเวลาผ่อนผันจะสิ้นสุดลงเนื่องจากการให้สิทธิ์
ควรสิ้นสุดจนกว่าผู้ใช้จะยกเลิก หรือระยะเวลาผ่อนผันสิ้นสุดลง
ความยาวสูงสุด ค่าของช่อง subscriptionState
ในช่วงเวลานี้คือ
SUBSCRIPTION_STATE_IN_GRACE_PERIOD
แหล่งข้อมูลการสมัครใช้บริการมีลักษณะคล้ายกับ
ตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_IN_GRACE_PERIOD",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_future,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Play แจ้งผู้ใช้ที่อยู่ในระยะเวลาผ่อนผันว่าการชำระเงินถูกปฏิเสธ และแจ้งให้แก้ไขปัญหาเกี่ยวกับวิธีการชำระเงินใน Play Store เมื่อ ผู้ใช้เข้าสู่ระยะเวลาผ่อนผัน คุณควรแนะนำให้ผู้ใช้แก้ไขปัญหา ในกรณีที่เป็นการดำเนินการที่ไม่สำเร็จ วิธีง่ายๆ ในการดำเนินการ คือการใช้ฟีเจอร์การรับส่งข้อความในแอป API หากคุณเรียกใช้ API นี้ เมื่อผู้ใช้เปิดแอปของคุณ ผู้ใช้จะเห็นข้อความ Play ในข้อความชั่วคราว แถบแสดงข้อความที่แจ้งให้ผู้ใช้ทราบว่าการชำระเงินถูกปฏิเสธ ข้อความนี้ มี Deep Link เพื่อให้ผู้ใช้แก้ไขวิธีการชำระเงินใน Google ด้วย เล่น
เมื่อผู้ใช้แก้ไขวิธีการชำระเงินแล้ว การสมัครใช้บริการจะต่ออายุตามวิธีการชำระเงิน วันที่ต่ออายุเดิมได้ และคุณสามารถจัดการการต่ออายุได้ตามที่อธิบายไว้ใน การต่ออายุ
หากผู้ใช้ไม่แก้ไขวิธีการชำระเงินในช่วงระยะเวลาผ่อนผัน การสมัครใช้บริการเข้าสู่การระงับบัญชีและจะสูญเสียสิทธิ์
การเข้าถึงและการกู้คืนระยะเวลาผ่อนผัน
รูปที่ 2 แสดงลำดับเวลาสำหรับการสมัครใช้บริการที่เข้าสู่ระยะเวลาผ่อนผัน จากนั้นจะกู้คืนเมื่อผู้ใช้แก้ไขวิธีการชำระเงิน หลังจากระยะเวลาผ่อนผัน ผู้ใช้ควรสูญเสียสิทธิประโยชน์ของการสมัครใช้บริการและถูกระงับบัญชี
![](https://developer.android.com/static/images/google/play/billing/lifecycle/grace-period.png?authuser=19&hl=th)
โปรดจดจำประเด็นต่อไปนี้
- ในช่วงระยะเวลาผ่อนผัน ผู้ใช้ควรรักษาสิทธิประโยชน์ของการสมัครใช้บริการไว้ได้
- เมื่อการสมัครใช้บริการกลับมาสมัครใช้บริการอีกครั้งในระยะเวลาผ่อนผัน วันที่ต่ออายุจะเป็น ไม่รีเซ็ต
- หากคุณเพิ่มระยะเวลาผ่อนผัน เช่น จาก 7 วันเป็น 14 วัน ผู้ใช้ที่ อยู่ในระยะเวลาผ่อนผันและเข้าถึงสิทธิประโยชน์การสมัครใช้บริการได้มากขึ้น
- หากคุณลดระยะเวลาผ่อนผัน ผู้ใช้ที่เข้าสู่ระยะเวลาผ่อนผันเดิมมากเพียงพอ ระยะเวลาที่จะเกินระยะเวลาผ่อนผันใหม่จะได้รับสิทธิประโยชน์จากการสมัครใช้บริการ ทันที ตัวอย่างเช่น หากคุณลดระยะเวลาผ่อนผันจาก 14 วันถึง 7 วัน ผู้ใช้ที่อยู่ในวันที่ 8-14 ของระยะเวลาผ่อนผันเดิมจะมี สิทธิประโยชน์การสมัครใช้บริการจะถูกเพิกถอนทันที
- การสมัครใช้บริการจะยังคงอยู่ในสถานะใช้งานอยู่และคุณจะไม่ได้รับระยะเวลาผ่อนผัน RTDN ในช่วงระยะเวลาหนึ่ง จนกว่าระยะเวลาผ่อนผันแบบไม่มีเสียงจะสิ้นสุดลง
ระยะเวลาผ่อนผันแบบเงียบ
คุณกำหนดระยะเวลาผ่อนผันได้ 0 วัน แต่ Play จะรออย่างน้อย 1 วันเพื่อ
เพื่อให้แน่ใจว่ามีเวลาเพียงพอสำหรับการลองชำระเงินซ้ำ ระยะเวลาผ่อนผันแบบเงียบนี้
สำหรับการประมวลผลการชำระเงิน ในช่วงเวลา 24 ชั่วโมงนี้
การสมัครใช้บริการจะยังคงอยู่ใน
สถานะ ACTIVE
วิธีที่ดีที่สุดที่ให้คุณติดตามการเปลี่ยนแปลงสถานะการสมัครใช้บริการคือ
ฟังและตอบสนองต่อการแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาซอฟต์แวร์ (RTDN) เรียกใช้
purchases.subscriptionsv2.get()
ในเวลา RTDN แทนที่จะเป็นเวลาหมดอายุเพื่อให้ได้ค่าประมาณที่แม่นยำมากขึ้น
ของการสมัครใช้บริการ
ขึ้นอยู่กับสถานะการสมัครใช้บริการหลังพ้นระยะเวลาผ่อนผัน 24 ชั่วโมง คุณควรได้รับการแจ้งเตือนอย่างใดอย่างหนึ่งต่อไปนี้
SUBSCRIPTION_ON_HOLD
(หากเปิดใช้)SUBSCRIPTION_CANCELED
(หากยกเลิก)SUBSCRIPTION_EXPIRED
(หากหมดอายุแล้ว)SUBSCRIPTION_RENEWED
(หากต่ออายุเรียบร้อยแล้ว)
คุณยังเรียกใช้เมธอด subscriptionV2.get()
ได้ทุกเมื่อหลังจาก
ระยะเวลาผ่อนผันแบบเงียบ 24 ชั่วโมงเพื่อดูสถานะล่าสุดของการสมัครใช้บริการ
การระงับบัญชี
หากมีปัญหาเกี่ยวกับการชำระเงินสำหรับการต่ออายุการสมัครใช้บริการ หลังจากพ้นระยะเวลาผ่อนผันแล้ว ระยะเวลาสิ้นสุดแล้ว ช่วงการระงับบัญชีจะเริ่มต้นขึ้น เมื่อ การสมัครใช้บริการเข้าสู่การระงับบัญชี คุณควรบล็อกการเข้าถึงการสมัครใช้บริการดังกล่าว
ระหว่างการระงับบัญชี คุณควรจัดการการยกเลิกต่อไป การคืนค่าหรือการซื้อการสมัครใช้บริการอีกครั้งตามความจำเป็น เนื่องจากผู้ใช้อาจทำการเปลี่ยนแปลงเหล่านี้ได้ขณะสมัครใช้บริการ ถูกระงับ
RTDN จะแจ้งให้คุณทราบเมื่อผู้ใช้เข้าสู่ช่วงการระงับบัญชีเพื่อให้คุณแจ้งได้ โดยเร็วที่สุดเพื่อแจ้งสาเหตุที่การเข้าถึงการสมัครใช้บริการถูกระงับ วิธีที่ตรงไปตรงมาคือการใช้การรับส่งข้อความในแอป API เรียกใช้ API นี้เมื่อ ผู้ใช้เปิดแอปจะแสดงข้อความให้ผู้ใช้เห็นในแถบแสดงข้อความชั่วคราว เพื่อแจ้งให้ทราบว่าการชำระเงินถูกปฏิเสธ ข้อความนี้ยังรวมถึง Deep Link เพื่อให้ผู้ใช้แก้ไขวิธีการชำระเงินใน Google Play
หากผู้ใช้เข้าถึงเนื้อหาการสมัครใช้บริการนอกแอปของคุณได้ ผู้ใช้อาจ พวกเขาเสียสิทธิ์เข้าถึงในแพลตฟอร์มต่างๆ คุณอาจต้องการ ส่งข้อความ Push หรืออีเมลถึงผู้ใช้เพื่อแจ้งให้ทราบว่า การสมัครใช้บริการไม่ทำงานอีกต่อไปเนื่องจากการชำระเงินถูกปฏิเสธ
การสมัครใช้บริการจะไม่ส่งคืนโดย
queryPurchasesAsync()
ในระหว่างการระงับบัญชี ดังนั้นหากแอปของคุณใช้วิธีการนี้ในการแสดง
การซื้อที่มีอยู่ คุณควรรองรับการระงับบัญชีโดยค่าเริ่มต้น
พร้อมนักพัฒนาซอฟต์แวร์แบบเรียลไทม์
คุณจะได้รับ
SubscriptionNotification
ข้อความ
ประเภท SUBSCRIPTION_ON_HOLD
เมื่อการสมัครใช้บริการเข้าสู่การระงับบัญชี โทร
เวลา
purchases.subscriptionsv2.get
จากเซิร์ฟเวอร์แบ็กเอนด์ที่ปลอดภัยเพื่อดึงข้อมูลการสมัครใช้บริการใหม่
ระหว่างการระงับบัญชี ให้ระงับช่อง expiryTime
ของการสมัครใช้บริการ
ทรัพยากร
ตั้งค่าเป็นการประทับเวลาที่ผ่านมา และตั้งค่าช่อง subscriptionState
เป็น
SUBSCRIPTION_STATE_ON_HOLD
:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ON_HOLD",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_past,
...
}
],
}
หากต้องการกู้คืนสิทธิ์เข้าถึง ผู้ใช้ต้องแก้ไขวิธีการชำระเงิน Play จะแจ้งให้ผู้ใช้ทราบใน บัญชีที่มีการปฏิเสธการชำระเงิน และคุณควรสนับสนุนให้แก้ไข วิธีการชำระเงินของพวกเขา
หลังจากที่ผู้ใช้แก้ไขวิธีการชำระเงินแล้ว การสมัครใช้บริการจะกลับไปมีสถานะใช้งานอยู่
จากนั้นคุณจะต้องคืนค่าการเข้าถึงเนื้อหาที่สมัครรับข้อมูล ในกรณีนี้
โทเค็นการซื้อจะเหมือนกับก่อนหน้านี้ที่ก่อนที่การระงับบัญชีจะเริ่มขึ้นเนื่องจาก
การซื้อเดียวกันกำลังกู้คืน และคุณจะได้รับ RTDN ตามประเภท
SUBSCRIPTION_RECOVERED
สำหรับการสมัครใช้บริการแบบผ่อนชำระ อาจมีการปฏิเสธการชำระเงินและการคืนเงินในกรณีที่ การพยายามชำระเงินส่วนบุคคล
หลังจากการกู้คืน Play Billing Library จะแสดงการสมัครใช้บริการอีกครั้งผ่าน
เมธอด queryPurchasesAsync()
หากคุณใช้วิธีนี้เพื่อพิจารณาว่า
ผู้ใช้มีสิทธิ์ในการสมัครใช้บริการ แอปของคุณควรจัดการโดยอัตโนมัติ
การสมัครใช้บริการที่กู้คืนจากการระงับบัญชี
ฟังภาษา
SubscriptionNotification
ข้อความ
ที่มีประเภท SUBSCRIPTION_RECOVERED
สำหรับรับการแจ้งเตือนเมื่อการสมัครใช้บริการ
กู้คืน และผู้ใช้ควรได้รับสิทธิ์เข้าถึงอีกครั้ง หากต้องการค้นหาการสมัครใช้บริการ
หลังจากได้รับการแจ้งเตือนนี้ ช่อง expiryTime
ได้รับการตั้งค่าเป็นการประทับเวลา
ในอนาคตและตั้งค่าช่อง subscriptionState
เป็น
SUBSCRIPTION_STATE_ACTIVE
อีกครั้ง:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
...
}
],
}
หากผู้ใช้ไม่แก้ไขวิธีการชำระเงินก่อนสิ้นสุดการระงับบัญชี
คุณจะได้รับ RTDN ประเภท SUBSCRIPTION_CANCELED
แทน สำหรับ
วิธีการจัดการการยกเลิก โปรดดูที่การยกเลิก เมื่อคุณ
การค้นหาการสมัครใช้บริการที่ยกเลิกด้วยวิธีนี้
ตั้งค่าช่อง expiryTime
เป็นการประทับเวลาที่ผ่านมาแล้ว
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_CANCELED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_past,
...
}
],
}
ทันทีที่คุณได้รับแจ้งเกี่ยวกับการยกเลิกระหว่างการระงับบัญชี คุณจะ
จะได้รับ RTDN ที่มีประเภท SUBSCRIPTION_EXPIRED
ด้วยเนื่องจากผู้ใช้
จากการให้สิทธิ์แบบชำระเงินและการสมัครใช้บริการเลิกใช้งานไปแล้วเมื่อมีการยกเลิก
คุณจัดการกับการหมดอายุนี้ได้ด้วยวิธีตามปกติ
ผู้ใช้สามารถรับสิทธิ์เข้าถึงอีกครั้งได้โดยซื้อแพ็กเกจการสมัครใช้บริการเดิมหรือ
แพ็กเกจอื่นๆ ที่คุณนำเสนอผ่านแอปในช่วงการระงับบัญชีตั้งแต่
กับการซื้อครั้งแรก ในกรณีดังกล่าว จะมีการออกโทเค็นการซื้อใหม่
ค่าใหม่จะแสดงผลเป็นส่วนหนึ่งของเหตุการณ์ SUBSCRIPTION_PURCHASED
ที่
จะแสดงอินสแตนซ์ใหม่นี้
สิทธิ์เข้าถึงและการกู้คืนบัญชี
รูปที่ 3 แสดงลำดับเวลาสำหรับการสมัครใช้บริการที่เข้าสู่การระงับบัญชีและ จากนั้นจะกู้คืนเมื่อผู้ใช้แก้ไขวิธีการชำระเงิน
![](https://developer.android.com/static/images/google/play/billing/lifecycle/acct-hold-1.png?authuser=19&hl=th)
รูปที่ 4 แสดงไทม์ไลน์ของการสมัครใช้บริการ ซึ่งคล้ายกับตัวอย่างก่อนหน้านี้ ที่เข้าสู่ระยะเวลาผ่อนผันก่อนเข้าสู่การระงับบัญชี กู้คืนขณะพักสายได้
![](https://developer.android.com/static/images/google/play/billing/lifecycle/acct-hold-2.png?authuser=19&hl=th)
โปรดจดจำประเด็นต่อไปนี้
- ก่อนที่การสมัครใช้บริการจะเข้าสู่การระงับบัญชี Google Play จะดําเนินการเพิ่มเติม เรียกเก็บเงินผ่านวิธีการชำระเงินนี้เป็นเวลาสูงสุด 48 ชั่วโมง ผู้ใช้คงผู้ใช้ไว้ สิทธิประโยชน์การสมัครใช้บริการในช่วงเวลานี้ หลังจากพ้นระยะเวลาการลองอีกครั้งแล้ว การสมัครใช้บริการจะเข้าสู่การระงับบัญชี และผู้ใช้ควรสูญเสีย เข้าถึงสิทธิประโยชน์การสมัครใช้บริการ
- การสมัครใช้บริการจะเข้าสู่สถานะการระงับบัญชีโดยตรงเมื่อการสมัครใช้บริการ กลับมาทำงานอีกครั้งจากสถานะหยุดชั่วคราวและมีรูปแบบการชำระเงินที่ล้มเหลว
- เมื่อการสมัครใช้บริการกู้คืนจากการระงับบัญชี ระบบจะรีเซ็ตวันที่ต่ออายุ
วันหมดอายุ
เมื่อการสมัครใช้บริการหมดอายุ ผู้ใช้ควรสูญเสียสิทธิ์เข้าถึงการสมัครใช้บริการนั้น ต
ส่งข้อความ SubscriptionNotification
รายการประเภท SUBSCRIPTION_EXPIRED
แล้ว
กรณีนั้น เมื่อคุณได้รับการแจ้งเตือนนี้ ลองสอบถามนักพัฒนาแอป Google Play
API เพื่อรับการสมัครใช้บริการล่าสุด
แหล่งข้อมูล
หลังจากที่คุณยืนยันว่า subscriptionState
คือ SUBSCRIPTION_STATE_EXPIRED
นำการให้สิทธิ์ออกและลงทะเบียนสถานะการซื้อเป็น "ไม่ถูกต้อง" ใน
แบ็กเอนด์ แหล่งข้อมูลการสมัครใช้บริการจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_EXPIRED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time_in_past,
...
}
],
}
การยกเลิก
ผู้ใช้สามารถยกเลิกการสมัครใช้บริการจากศูนย์การสมัครใช้บริการของ Play โดยสมัครใจได้
หรือยกเลิกการสมัครใช้บริการโดยอัตโนมัติในกรณีที่ผู้ใช้ไม่กลับมาสมัครใช้บริการ
อยู่ในการระงับบัญชี นักพัฒนาซอฟต์แวร์ยังสามารถทริกเกอร์
ยกเลิกด้วย
purchases.subscriptions.cancel
เมื่อยกเลิกการสมัครใช้บริการแล้ว ผู้ใช้จะยังคงเข้าถึงเนื้อหาได้จนถึงวันที่
สิ้นสุดรอบการเรียกเก็บเงินปัจจุบัน เมื่อรอบการเรียกเก็บเงินสิ้นสุดลง การเข้าถึงควร
ถูกเพิกถอน
การยกเลิกการสมัครใช้บริการแบบไม่ผ่อนชำระและต่ออายุใหม่อัตโนมัติจะทำให้
การแจ้งเตือน SUBSCRIPTION_CANCELED
รายการ วันและเวลา
คุณได้รับการแจ้งเตือนนี้ การสมัครรับข้อมูล
แหล่งข้อมูล
ที่แสดงผลจาก Google Play Developer API มีช่อง subscriptionState
ตั้งค่าเป็น SUBSCRIPTION_STATE_CANCELED
และฟิลด์ expiryTime
จะมีค่า
วันที่ที่ผู้ใช้ควรเสียสิทธิ์เข้าถึงการสมัครใช้บริการ หากวันที่ดังกล่าวตรงกับ
ผ่านไปแล้ว ผู้ใช้ควรสูญเสียสิทธิ์โดยทันที กรณีนี้เกิดขึ้นได้
ตัวอย่างเช่น หากผู้ใช้ยกเลิกการสมัครรับข้อมูลขณะที่ใช้บัญชี
การระงับ เนื่องจากมีการปฏิเสธการชำระเงิน
แหล่งข้อมูลการสมัครใช้บริการสำหรับการซื้อที่ยกเลิกแล้วมีลักษณะคล้ายกับด้านล่างนี้ ตัวอย่าง:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_CANCELED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time,
...
}
],
}
สำหรับการสมัครใช้บริการแบบผ่อนชำระ SUBSCRIPTION_CANCELLATION_SCHEDULED
ระบบจะส่งการแจ้งเตือนเมื่อมีการยกเลิกที่ผู้ใช้เป็นผู้เริ่มดำเนินการเมื่อการชำระเงินยังคงอยู่
สำหรับระยะเวลาผูกมัด การยกเลิกอยู่ระหว่างรอดำเนินการและมีผลในวันที่
สิ้นสุดระยะเวลาผูกมัดปัจจุบัน เมื่อคุณได้รับการแจ้งเตือนนี้ ฟิลด์
ทรัพยากรการสมัครใช้บริการที่ส่งคืนจาก Google Play Developer API มี
ตั้งค่าฟิลด์ subscriptionState เป็น SUBSCRIPTION_STATE_ACTIVE
เนื่องจาก
การสมัครใช้บริการแบบผ่อนชำระจะยังคงมีผลจนกว่าจะสิ้นสุดระยะเวลาผูกมัด
แต่ยังมีออบเจ็กต์การยกเลิกที่รอดำเนินการอยู่ที่ว่างเปล่า
ระบบจะส่งการแจ้งเตือน SUBSCRIPTION_CANCELED
ตามด้วย
SUBSCRIPTION_EXPIRED
เมื่อสิ้นสุดระยะเวลาผูกมัด
แหล่งข้อมูลการสมัครใช้บริการสำหรับการซื้อการสมัครใช้บริการแบบผ่อนชำระที่ การยกเลิกที่รอดำเนินการมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_plan01",
"expiryTime": expiration_time,
"autoRenewingPlan": {
"autoRenewEnabled": true,
"recurringPrice": {
"currencyCode": "USD",
"units": "1",
"nanos": 990000000
},
"installmentDetails": {
"initialCommittedPaymentsCount": 6,
"remainingCommittedPaymentsCount": 5,
"pendingCancellation": {}
...
}
}
}
],
}
คุณสามารถดูช่อง canceledStateContext
ในแหล่งข้อมูลการสมัครใช้บริการเพื่อ
ดูสาเหตุที่การสมัครใช้บริการถูกยกเลิก (เช่น การสมัครใช้บริการ
ถูกยกเลิกโดยผู้ใช้ โดยระบบ หรือโดยคุณ) หากการสมัครใช้บริการเป็น
ที่ผู้ใช้ยกเลิก คุณสามารถดูที่ช่อง userInitiatedCancellation
เพื่อ
ดูสาเหตุที่ผู้ใช้ยกเลิกการสมัครใช้บริการ ซึ่งจะช่วยในการสื่อสาร
เมื่อยกเลิกการสมัครใช้บริการไปแล้ว แต่ยังไม่หมดอายุ การสมัครใช้บริการนั้นจะยกเลิก
ยังคงส่งคืนจาก
queryPurchasesAsync()
คุณอาจต้องการแสดงข้อความในแอปเพื่อแจ้งให้ผู้ใช้ทราบว่า
การสมัครใช้บริการถูกยกเลิกและระบุวันที่หมดอายุ
การเพิกถอน
การสมัครใช้บริการอาจถูกเพิกถอนได้จากหลายสาเหตุ ซึ่งรวมถึงแบ็กเอนด์ด้วย
การเพิกถอนการสมัครรับข้อมูลโดยใช้
purchases.subscriptionsv2.revoke
หรือการซื้อที่มีการเรียกเก็บเงินคืน ในกรณีนี้ ให้เพิกถอนคำขอ
การให้สิทธิ์ทันที ข้อความ SubscriptionNotification
พร้อมประเภท
ระบบจะส่ง SUBSCRIPTION_REVOKED
เมื่อเกิดเหตุการณ์นี้ขึ้น เมื่อคุณได้รับข้อมูลนี้
การแจ้งเตือน
แหล่งข้อมูล
ที่แสดงผลจาก Google Play Developer API มีช่อง subscriptionState
ตั้งค่าเป็น SUBSCRIPTION_STATE_EXPIRED
แหล่งข้อมูลการสมัครใช้บริการสำหรับการซื้อที่เพิกถอนมีลักษณะคล้ายกับรายการต่อไปนี้ ตัวอย่าง:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_EXPIRED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time,
...
}
]
}
การสมัครใช้บริการที่มีการเลื่อนเวลา
มีเหตุผลหลายประการที่คุณอาจต้องการขยายระยะเวลาของผู้ใช้
ตัวอย่างเช่น คุณอาจต้องการเสนอสิทธิ์เข้าถึงฟรีเป็น
การส่งเสริมการขาย เช่น การให้ฟรี 1 สัปดาห์สำหรับการซื้อภาพยนตร์หรือให้ฟรี
การเข้าถึงลูกค้า
เป็นสัญลักษณ์แห่งความปรารถนาดี คุณสามารถใช้
purchases.subscriptions.defer
จาก Play Developer API เพื่อเลื่อนวันที่เรียกเก็บเงินครั้งถัดไป
การต่ออายุใหม่อัตโนมัติ เมื่อคุณทำเช่นนี้ SubscriptionNotification
ส่งข้อความประเภท SUBSCRIPTION_DEFERRED
แล้ว ระหว่างช่วงการเลื่อนเวลา
ผู้ใช้สมัครรับข้อมูลเนื้อหาของคุณโดยมีสิทธิ์เข้าถึงเต็มรูปแบบแต่ไม่มีการเรียกเก็บเงิน
ระบบจะอัปเดตวันที่ต่ออายุการสมัครใช้บริการเพื่อให้ตรงกับวันที่ใหม่
สำหรับแพ็กเกจแบบชำระเงินล่วงหน้า คุณสามารถใช้ Defer Billing API เพื่อเลื่อนวันที่หมดอายุได้
ทรัพยากรการสมัครใช้บริการสำหรับการสมัครใช้บริการที่มีการเลื่อนเวลามีลักษณะคล้ายกับ ตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_future,
...
}
],
}
การสมัครใช้บริการที่หยุดชั่วคราว
คุณสามารถลดการเลิกใช้งานโดยตั้งใจได้ด้วยการอนุญาตให้ผู้ใช้หยุดการสมัครใช้บริการไว้ชั่วคราว เมื่อคุณเปิดใช้ฟีเจอร์หยุดชั่วคราว ผู้ใช้สามารถเลือกหยุดการสมัครใช้บริการไว้ชั่วคราวได้ เป็นระยะเวลาระหว่าง 1 สัปดาห์ถึง 3 เดือน โดยขึ้นอยู่กับ รอบเดือน
การสมัครรับข้อมูลซ้ำ | รายสัปดาห์ | รายเดือน | 3 เดือน | 6 เดือน | รายปี |
---|---|---|---|---|---|
ระยะเวลาการหยุดชั่วคราวที่ใช้ได้* | 1 สัปดาห์ 2 สัปดาห์ 3 สัปดาห์ 4 สัปดาห์ |
1 เดือน 2 เดือน 3 เดือน |
1 เดือน 2 เดือน 3 เดือน |
1 เดือน 2 เดือน 3 เดือน |
ไม่มี |
การหยุดสมัครใช้บริการไว้ชั่วคราวจะมีผลเมื่อสิ้นสุดช่วงเวลาที่เรียกเก็บเงินปัจจุบันไปแล้วเท่านั้น ขณะที่การสมัครใช้บริการหยุดชั่วคราว ผู้ใช้จะไม่มีสิทธิ์เข้าถึง โดยไม่ชำระค่าบริการการต่ออายุ เมื่อสิ้นสุดการหยุดชั่วคราว การสมัครใช้บริการจะดำเนินต่อไป และ Google จะพยายามต่ออายุการสมัครใช้บริการ หากกลับมาทำงานอีกครั้งได้สำเร็จ การสมัครใช้บริการก็จะใช้งานได้ใหม่ หาก กลับมาทำงานอีกครั้งไม่สำเร็จเนื่องจากปัญหาการชำระเงิน ผู้ใช้อยู่ในสถานะการระงับบัญชีเป็น แสดงในรูปที่ 5 และ 6
![](https://developer.android.com/static/images/google/play/billing/lifecycle/pause-1.png?authuser=19&hl=th)
![](https://developer.android.com/static/images/google/play/billing/lifecycle/pause-2.png?authuser=19&hl=th)
นอกจากนี้ ผู้ใช้ยังเลือกที่จะกลับมาสมัครใช้บริการอีกครั้งด้วยตนเองได้ทุกเมื่อในระหว่าง ระยะเวลาการหยุดชั่วคราวดังที่แสดงในรูปที่ 6 เมื่อผู้ใช้กลับมาสมัครใช้บริการอีกครั้งด้วยตนเอง การเรียกเก็บเงิน วันที่เปลี่ยนเป็นวันที่กลับมาทำงานอีกครั้งด้วยตนเอง
เมื่อมีการหยุดการสมัครใช้บริการของผู้ใช้ชั่วคราว Play Billing Library จะไม่แสดง
ผ่าน
queryPurchasesAsync()
หากการสมัครใช้บริการกลับมาทำงานอีกครั้ง เมธอด queryPurchasesAsync()
แสดงผลอีกครั้ง
คอยฟัง RTDN เพื่อให้ทราบเมื่อผู้ใช้หยุดการสมัครใช้บริการชั่วคราว เหล่านี้ ยังช่วยให้คุณแจ้งให้ผู้ใช้ในแอปทราบว่าตนได้ หยุดการสมัครใช้บริการไว้ชั่วคราวและไม่มีสิทธิ์เข้าถึงบริการดังกล่าว และคุณควรระบุ วิธีให้ผู้ใช้กลับมาสมัครใช้บริการอีกครั้งด้วยตนเองได้ทุกเมื่อโดยใช้ Deep Link ไปยัง Google Play
ข้อความ SubscriptionNotification
ระบบจะส่งที่มีประเภท SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED
เมื่อผู้ใช้เริ่มต้น
การหยุดสมัครใช้บริการชั่วคราว ในขณะนี้ ผู้ใช้ควรรักษาการเข้าถึง
การสมัครใช้บริการจนกว่าจะถึงวันที่ต่ออายุครั้งถัดไป และการสมัครใช้บริการ
แหล่งข้อมูล
มี autoRenewEnabled = true
ค่าของช่อง subscriptionState
ตอนนี้คือ SUBSCRIPTION_STATE_ACTIVE
ระบบจะส่งข้อความ SubscriptionNotification
ประเภท SUBSCRIPTION_PAUSED
เมื่อ
การหยุดชั่วคราวจะมีผล ในกรณีนี้ ผู้ใช้ควรจะสูญเสียสิทธิ์การเข้าถึง
การสมัครใช้บริการ และทรัพยากรการสมัครใช้บริการมี autoRenewEnabled = true
และตั้งค่าช่อง subscriptionState
เป็น SUBSCRIPTION_STATE_PAUSED
คุณสามารถ
ดูว่าการสมัครใช้บริการจะมีการต่ออายุอีกครั้งเมื่อใด โดยดูที่
PausedStateContext
ออบเจ็กต์
ระบบจะส่งข้อความ SubscriptionNotification
ประเภท SUBSCRIPTION_RENEWED
หาก
การสมัครใช้บริการจะกลับมาทำงานอีกครั้งโดยอัตโนมัติเมื่อสิ้นสุดระยะเวลาการหยุดชั่วคราว
หรือหากผู้ใช้เลือกกลับมาสมัครใช้บริการต่อด้วยตนเอง ควรได้รับการจัดการ
ตามที่อธิบายไว้ในการต่ออายุ
ระบบจะส่งข้อความ SubscriptionNotification
ประเภท SUBSCRIPTION_ON_HOLD
หาก
มีการชำระเงินไม่สำเร็จขณะพยายามกลับมาสมัครใช้บริการอีกครั้งหลังจากหยุดชั่วคราว
การจัดการนี้ควรได้รับการจัดการตามที่อธิบายไว้ในการระงับบัญชี
สมัครอีกครั้ง
สำหรับแพ็กเกจเริ่มต้นของการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติ Google Play Store อาจแสดง ปุ่มสมัครอีกครั้ง ปุ่มนี้จะช่วยให้ผู้ใช้มีสิทธิ์เข้าถึงอีกครั้ง กับการสมัครใช้บริการ อาจไม่ปรากฏเนื่องจากสาเหตุหลายประการ เช่น เมื่อการสมัครใช้บริการหมดอายุไปนานแล้ว
![](https://developer.android.com/static/images/google/play/billing/lifecycle/restoration.png?authuser=19&hl=th)
แม้ว่าปุ่มจะมีป้ายกำกับสมัครอีกครั้งเสมอ แต่ฟังก์ชันการทำงานจะขึ้นอยู่กับปุ่ม ตามสถานะการสมัครใช้บริการ
แม้ว่าจะยกเลิกการสมัครใช้บริการไปแล้ว แต่ยังไม่หมดอายุ ผู้ใช้ยังคง ที่สมัครใช้บริการและรับสิทธิประโยชน์จากการสมัครใช้บริการ หากผู้ใช้แตะ "สมัครอีกครั้ง" การยกเลิกดังกล่าวจะถูกเลิกทำอย่างถูกต้อง และจะมีการต่ออายุการสมัครใช้บริการต่อไป การดำเนินการนี้เรียกว่าการคืนค่าในเอกสารสำหรับนักพัฒนาซอฟต์แวร์ Play และ API
หลังจากการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติหมดอายุแล้ว คุณจะอนุญาตให้ผู้ใช้ซื้อ แพ็กเกจเริ่มต้นของการสมัครใช้บริการเดียวกัน วิธีนี้เป็นที่ทราบกันว่าสมัครใช้บริการอีกครั้งใน เอกสารประกอบสำหรับนักพัฒนาแอปและ API ของ Play คุณกำหนดค่าตัวเลือกนี้ได้ สําหรับแพ็กเกจเริ่มต้นแต่ละรายการใน Play Console หรือการใช้ API
กู้คืนก่อนหมดอายุ
ในกรณีที่แอปใช้เพียง
queryPurchasesAsync()
เพื่อพิจารณาว่าผู้ใช้มีสิทธิ์ใช้การสมัครใช้บริการหรือไม่ จากนั้นแอปของคุณ
ควรจัดการการกู้คืนโดยอัตโนมัติเนื่องจากqueryPurchasesAsync()
จะแสดงผลการซื้อที่ยกเลิกก่อนวันที่หมดอายุต่อไป ต
การสมัครใช้บริการที่กู้คืนแล้วจะยังคงต่ออายุเสมือนว่าไม่ได้ยกเลิก
หากแอปซิงค์สถานะการสมัครใช้บริการกับแบ็กเอนด์ คุณควรฟัง
สำหรับ SubscriptionNotification
ข้อความที่เป็นประเภท SUBSCRIPTION_RESTARTED
หลังจากที่คุณได้รับ RTDN นี้
แอปของคุณสามารถตอบกลับการแจ้งเตือน บันทึกการสมัครใช้บริการ
ตั้งค่าเป็นต่ออายุ และหยุดแสดงข้อความการกู้คืนในแอปของคุณ
แหล่งข้อมูลการสมัครใช้บริการจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date
...
}
],
}
สมัครใช้บริการอีกครั้งหลังหมดอายุ
หากมีการกําหนดค่าแพ็กเกจเริ่มต้นแบบต่ออายุใหม่อัตโนมัติโดยใช้ Google Play Console หรือ API เพื่อให้ผู้ใช้สมัครอีกครั้ง สามารถซื้อการสมัครใช้บริการที่หมดอายุไปแล้วได้อีกครั้งใน Google Play Store
นี่คือการซื้อใหม่ Google Play จะออกโทเค็นการซื้อใหม่ล่าสุด
แบ็กเอนด์ได้รับ RTDN ที่เป็นประเภท SUBSCRIPTION_PURCHASED
สถานะการซื้อ
สำหรับการซื้อนอกแอปประเภทนี้ไม่มีlinkedPurchaseToken
ที่เกี่ยวข้องกับการซื้อครั้งแรกในกรณีดังกล่าว เนื่องจากผู้ซื้อ
หมดอายุอย่างสมบูรณ์แล้ว รายการเหล่านี้เป็นการซื้อใหม่ๆ ที่แบ็กเอนด์ต้อง
ประมวลผลและรับทราบเช่นเดียวกับการซื้ออื่นๆ
อัปเกรด ดาวน์เกรด และสมัครใช้บริการอีกครั้ง
เมื่อผู้ใช้อัปเกรด ดาวน์เกรด หรือลงชื่อสมัครใช้หลังจาก การยกเลิกจากแอปก่อนที่การสมัครใช้บริการจะหมดอายุ ซึ่งเป็นแบบเก่า การสมัครใช้บริการจะใช้ไม่ได้ และจะสร้างการสมัครใช้บริการใหม่ด้วย โทเค็นการซื้อใหม่
นอกจากนี้ การสมัครใช้
แหล่งข้อมูล
ที่แสดงผลจาก Google Play Developer API มี linkedPurchaseToken
ที่แสดงการซื้อแบบเก่าที่ผู้ใช้ได้อัปเกรด ดาวน์เกรด
หรือสมัครใช้บริการอีกครั้ง คุณสามารถใช้โทเค็นการซื้อในฟิลด์นั้นเพื่อค้นหา
การสมัครใช้บริการ และระบุบัญชีผู้ใช้ที่มีอยู่เพื่อให้เชื่อมโยงได้
การซื้อครั้งใหม่ด้วยบัญชีเดิม
ก่อนเสนอตัวเลือกการอัปเกรด ดาวน์เกรด หรือสมัครใช้บริการแก่ผู้ใช้ในแอปอีกครั้ง คุณต้องรับทราบการสมัครใช้บริการที่มีอยู่ การเปลี่ยนแพ็กเกจหรือสมัครใช้บริการอีกครั้ง จะถูกบล็อกหากการสมัครใช้บริการที่มีอยู่ยังคงรอการตอบรับ
หากผู้ใช้ซื้อการอัปเกรด ดาวน์เกรด หรือสมัครใช้บริการอีกครั้งสำเร็จ นี่เป็นการซื้อใหม่ที่คุณต้องรับทราบ วิธีที่แนะนำ คือการใช้ Google Play Developer API แหล่งข้อมูลการสมัครใช้บริการจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"linkedPurchaseToken": old_purchase_token,
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
การเปลี่ยนแปลงราคา
ดูคู่มือแนวทางปฏิบัติแนะนำสำหรับการเปลี่ยนแปลงราคา เพื่อดูข้อมูลเกี่ยวกับการเปลี่ยนแปลงราคาการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติและการแจ้งให้ผู้ใช้ทราบ ตามความเหมาะสม
เมื่อการเปลี่ยนแปลงราคามีผลกับสมาชิกปัจจุบันแบบเลือกใช้ คุณจะ ได้รับ RTDN หากผู้ใช้ดำเนินการเพื่อยืนยันหรือปฏิเสธราคาใหม่
จัดการการยืนยันผู้ใช้เกี่ยวกับการเปลี่ยนแปลงราคาแบบขอให้ผู้ใช้ยินยอม
เมื่อผู้ใช้ยอมรับการขึ้นราคาค่าสมัครใช้บริการ คุณจะได้รับ
SubscriptionNotification
ข้อความ
ที่มีประเภท SUBSCRIPTION_PRICE_CHANGED_CONFIRMED
มีราคาแบบไม่ได้ขอให้ผู้ใช้ยินยอม
หรือเมื่อมีการต่ออายุการขึ้นราคาการสมัครใช้บริการ คุณจะได้รับ
SubscriptionNotification
ข้อความประเภท SUBSCRIPTION_RENEWED
ให้รางวัล
เช่นเดียวกับการต่ออายุอื่นๆ
จัดการกรณีที่ไม่ยอมรับการขึ้นราคาแบบขอให้ผู้ใช้ยินยอม
หากผู้ใช้ไม่ได้ยอมรับการขึ้นราคาแบบขอให้ผู้ใช้ยินยอมก่อนที่ผู้ใช้จะต้องต่ออายุ
ในราคาที่สูงกว่า พวกเขาจะยกเลิกการสมัครโดยอัตโนมัติและคุณจะได้รับ
SubscriptionNotification
ข้อความ
ที่มีประเภท SUBSCRIPTION_CANCELED
จัดการกิจกรรมนี้ตามที่อธิบายไว้ใน
การยกเลิก
ผู้ใช้ยังยกเลิกการสมัครใช้บริการในกรณีที่เลือกไม่รับการปรับขึ้นราคาได้ด้วย โดยใช้กลไกเดียวกัน
จัดการวงจรสำหรับแพ็กเกจแบบชำระเงินล่วงหน้า
เช่นเดียวกับการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติ คุณต้องรับทราบแพ็กเกจแบบชำระเงินล่วงหน้าหลังจาก การซื้อใหม่แต่ละครั้ง ในกรณีของแพ็กเกจแบบชำระเงินล่วงหน้า คุณต้องดำเนินการต่อไปนี้ จะประมวลผลทั้งการซื้อครั้งแรกและการเติมเงินทั้งหมด เนื่องจากผู้ใช้ต้อง ผ่านขั้นตอนการซื้อทุกครั้ง
เนื่องจากอาจมีระยะเวลาการใช้แพ็กเกจแบบชำระเงินล่วงหน้าที่สั้น สิ่งสำคัญคือ รับทราบการซื้อโดยเร็วที่สุด แพ็กเกจแบบชำระเงินล่วงหน้าที่มีระยะเวลา 1 สัปดาห์ขึ้นไปต้องรับทราบภายใน 3 วัน แพ็กเกจแบบชำระเงินล่วงหน้าที่มี ระยะเวลาที่สั้นกว่า 1 สัปดาห์ต้องรับทราบภายในครึ่งหนึ่งของแผน ตัวอย่างเช่น นักพัฒนาซอฟต์แวร์มีเวลา 1.5 วันในการตอบรับการซื้อ แบบชำระเงินล่วงหน้า 3 วัน
ข้อความ SubscriptionNotification
ระบบจะส่งที่มีประเภท SUBSCRIPTION_PURCHASED
ไปยังไคลเอ็นต์ RTDN เมื่อใดก็ตามที่
มีการสมัครใช้บริการแพ็กเกจแบบชำระเงินล่วงหน้า ทั้งนี้รวมถึงการเติมเงินทุกรายการ เรียกใช้
purchases.subscriptionsv2.get
วิธีการตรวจสอบสถานะการสมัครใช้บริการแพ็กเกจแบบชำระเงินล่วงหน้าล่าสุด
จะมีการออกโทเค็นการซื้อใหม่สำหรับการซื้อแบบเติมเงิน และคุณจะได้รับ
โทเค็นการซื้อก่อนหน้าในฟิลด์ linkedPurchaseToken
เป็นส่วนหนึ่งของ
สถานะการซื้อการสมัครใช้บริการ โทเค็นการซื้อสามารถใช้ได้จากการสมัครใช้บริการ
จนกว่าจะหมดอายุ 60 วัน หลังจากวันดังกล่าว โทเค็นการซื้อจะเป็น
จะไม่สามารถใช้ในการเรียก Google Play Developer API ได้อีกต่อไป
ทรัพยากรการสมัครใช้บริการสำหรับการซื้อแพ็กเกจแบบชำระเงินล่วงหน้าจะมีลักษณะคล้ายกับ ตัวอย่างต่อไปนี้
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED",
"lineItems": [
{
"productId": "prepaid_plan01",
"expiryTime": expiry_date,
"prepaidPlan": {
"allowExtendAfterTime": timestamp_after_which_topups_are_allowed
}
}
]
}
คุณจะดูการสิ้นสุดการให้สิทธิ์ได้ในช่อง expiryTime
เติมเงิน
การซื้อจะเพิ่มเวลาการให้สิทธิ์ด้วยการสะสมเวลา ซึ่งหมายความว่าหาก
ผู้ใช้เติมเงินก่อนที่การให้สิทธิ์เดิมจะสิ้นสุดลง ระบบจะเพิ่มเวลาใหม่
เพิ่มเติมจากวันที่หมดอายุก่อนหน้านี้
คุณอาจต้องการแสดงข้อความในแอปเพื่อแจ้งให้ผู้ใช้ทราบว่า
การสมัครใช้บริการแบบชำระเงินล่วงหน้าสามารถขยายเวลาด้วยการเติมเงิน หากต้องการทราบว่าผู้ใช้จะ
เติมเงินได้ โปรดตรวจสอบช่อง allowExtendAfterTime
ในการสมัครใช้บริการ
ทรัพยากร
แพ็กเกจแบบชำระเงินล่วงหน้าจะไม่ต่ออายุใหม่อัตโนมัติ จึงยกเลิกไม่ได้ หากผู้ใช้ต้องการ ยกเลิกแพ็กเกจแบบชำระเงินล่วงหน้า ลูกค้าจะปล่อยให้ถึงวันที่หมดอายุได้