บทความทั้งหมด
Deep diveใช้เวลาอ่าน 8 นาที

เมื่อการซื้อบน Google Play ถูกคืนเงินหรือถูก chargeback, Voided Purchases API คือวิธีที่ทำให้คุณรู้

Google Play จะเพิกถอนการซื้อแบบเงียบ ๆ เมื่อมันถูกคืนเงินหรือถูก chargeback. Voided Purchases API คือรายการของออร์เดอร์เหล่านั้น เพื่อให้คุณเพิกถอนสิทธิ์การเข้าถึงได้. นี่คือทุกฟิลด์ หน้าต่าง 30 วัน ตัวเลือก revoke ที่ซ่อนออร์เดอร์ และค่าใช้จ่ายของมัน

สมาร์ทโฟนวางข้างสมุดบัญชีกระดาษ แม่กุญแจทองเหลืองที่ล็อกอยู่ และเหรียญที่กำลังเลื่อนหลุดออกไป แสดงถึง Google Play Voided Purchases API ที่รายงานออร์เดอร์ที่ถูกคืนเงินและถูก chargeback

ประเด็นสำคัญ

  • Voided Purchases API ซึ่งก็คือเมธอด purchases.voidedpurchases.list จะคืนออร์เดอร์ที่ Google Play ยกเลิก คืนเงิน หรือ chargeback เพื่อให้คุณสร้างระบบเพิกถอนที่ตัดการเข้าถึงสิ่งที่ลูกค้าไม่ได้เป็นเจ้าของอีกต่อไป
  • มีเฉพาะออร์เดอร์ที่ถูก revoke เท่านั้นที่จะปรากฏ. การคืนเงินโดยนักพัฒนาที่ทำโดยไม่ใช้ตัวเลือก revoke จะมองไม่เห็นใน API นี้ ดังนั้นถ้าคุณต้องการดึงสิทธิ์การเข้าถึงกลับ คุณต้องคืนเงินพร้อมเปิด revoke ไว้
  • หน้าต่างคือ 30 วัน. startTime ไม่สามารถเก่ากว่า 30 วันที่แล้วได้ ดังนั้นเซิร์ฟเวอร์ที่ล่มนานเกินหนึ่งเดือนจะสูญเสียออร์เดอร์ที่ถูกเพิกถอนเหล่านั้นไปตลอดกาล. ดึงข้อมูลตามตารางเวลา
  • voidedSource บอกคุณว่าใครเป็นคนเพิกถอนออร์เดอร์: 0 คือผู้ใช้, 1 คือนักพัฒนา, 2 คือ Google. voidedReason บอกคุณว่าทำไม ตั้งแต่ 0 Other ไปจนถึง 7 Chargeback และ 8 Unacknowledged_purchase
  • Real-time developer notifications จะส่ง VoidedPurchaseNotification ทันทีที่การซื้อถูกเพิกถอน แต่ให้ถือว่ามันเป็นสัญญาณ. เรียก Voided Purchases API เพื่อดูรายการที่เชื่อถือได้ก่อนที่คุณจะเพิกถอน
  • ระบุการต่ออายุสมัครสมาชิกด้วย orderId ไม่ใช่ purchaseToken. purchaseToken หนึ่งอันครอบคลุมการต่ออายุทุกครั้งของสมาชิก ดังนั้นแค่ token อย่างเดียวไม่สามารถแยกการต่ออายุสองครั้งออกจากกันได้
  • โควตาคือ 6,000 คำขอต่อวัน และ 30 คำขอในช่วงเวลา 30 วินาทีใด ๆ ดังนั้นให้ไล่ดูผลลัพธ์ทีละหน้าด้วย continuation token และค้นหาตามหน้าต่างเวลา อย่าเรียกครั้งเดียวต่อหนึ่งออร์เดอร์

การคืนเงินบน Google Play จะไม่มาเคาะประตูบ้านคุณ. เงินถูกโอนไป ลูกค้ายังเปิดแอปได้อยู่ และถ้าคุณไม่ไปตามหา ก็จะไม่มีอะไรในฝั่งคุณเปลี่ยนแปลง. Voided Purchases API คือที่ที่คุณไปตามหา. มันมอบรายการออร์เดอร์ที่ถูกยกเลิก คืนเงิน หรือ chargeback ให้คุณ เพื่อให้คุณเพิกถอนการเข้าถึงสิ่งที่ลูกค้าไม่ได้จ่ายเงินอีกต่อไป. ชี้งานที่ตั้งเวลาไว้ไปที่มัน อ่านรายการ ตัดสิทธิ์. นั่นคือลูปทั้งหมด

มีข้อสะดุดอยู่หนึ่งอย่างที่ทำให้ทีมส่วนใหญ่พลาด และมันไม่ได้อยู่ในโค้ด. มีเฉพาะออร์เดอร์ที่ถูก revoke เท่านั้นที่จะปรากฏที่นี่. ถ้าคุณคืนเงินการซื้อใน Play Console โดยไม่ติ๊กตัวเลือก revoke ออร์เดอร์นั้นจะไม่มีวันไปถึง API นี้ และงานของคุณจะทำงานอย่างสะอาดหมดจดในขณะที่ลูกค้าที่ได้เงินคืนยังเก็บทุกอย่างที่คุณขายไว้. โพสต์นี้จะพาเดินดู API ทีละฟิลด์ ตัวเลขที่กำหนดขอบเขตมัน และจุดที่เงินรั่วไหลเมื่อคุณข้ามมันไป

Voided Purchases API คืนอะไรกลับมาจริง ๆ

API ตอบคำถามเดียว: ออร์เดอร์ใดของแอปนี้ที่ถูกเพิกถอนเมื่อเร็ว ๆ นี้. การเพิกถอนครอบคลุมสามผลลัพธ์ที่ล้วนจบลงด้วยการที่ลูกค้าได้เงินคืน. การยกเลิก การคืนเงิน หรือ chargeback. มันใช้ได้กับผลิตภัณฑ์ในแอปแบบซื้อครั้งเดียวและกับการสมัครสมาชิก และคุณเลือกขอบเขตด้วยพารามิเตอร์เดียว. ตั้ง type เป็น 0 แล้วคุณจะได้เฉพาะการซื้อผลิตภัณฑ์ในแอปที่ถูกเพิกถอน ซึ่งเป็นค่าเริ่มต้น. ตั้งเป็น 1 แล้วคุณจะได้การซื้อในแอปที่ถูกเพิกถอนและการซื้อสมาชิกที่ถูกเพิกถอนรวมกัน

แต่ละรายการในลิสต์คืออ็อบเจกต์การซื้อที่ถูกเพิกถอน. ฟิลด์มีไม่กี่อัน และทุกอันล้วนสำคัญ

ฟิลด์บนการซื้อที่ถูกเพิกถอน

ฟิลด์เก็บอะไรไว้
orderIdรหัสออร์เดอร์ที่ระบุการซื้อครั้งเดียว การซื้อสมาชิก หรือการต่ออายุสมาชิกครั้งเดียวได้อย่างไม่ซ้ำกัน. นี่คือกุญแจสำหรับ join ของคุณ
purchaseTokentoken ที่ระบุการซื้อครั้งเดียวหรือการสมัครสมาชิก. มันไม่แยกแยะการต่ออายุ ดังนั้นให้ใช้ orderId สำหรับกรณีนั้น
purchaseTimeMillisเวลาที่ทำการซื้อ ในหน่วยมิลลิวินาทีนับจาก epoch
voidedTimeMillisเวลาที่การซื้อถูกยกเลิก คืนเงิน หรือ chargeback ในหน่วยมิลลิวินาทีนับจาก epoch
voidedSourceใครเป็นผู้เริ่มการเพิกถอน: 0 ผู้ใช้, 1 นักพัฒนา, 2 Google
voidedReasonเหตุผลที่การซื้อถูกเพิกถอน เป็นจำนวนเต็มตั้งแต่ 0 ถึง 8
voidedQuantityจำนวนที่ถูกเพิกถอนจากการคืนเงินบางส่วนตามจำนวน จะคืนกลับมาเมื่อ includeQuantityBasedPartialRefund เป็น true เท่านั้น

อ่าน voidedReason ก่อนที่คุณจะลงมือ

voidedReason คือฟิลด์ที่เปลี่ยนรายการดิบให้กลายเป็นการตัดสินใจ. การคืนเงินจากความเสียดายของผู้ซื้อและ chargeback จากธนาคารทั้งคู่ลงเอยในรายการเดียวกัน แต่มันไม่ใช่เหตุการณ์เดียวกัน และราคาในเดือนสิงหาคมทำให้อันหนึ่งมีราคาแพง. นี่คือชุดข้อมูลทั้งหมด

voidedReasonLabelมันหมายความว่าอย่างไรสำหรับคุณ
0Otherไม่มีการกำหนดหมวดหมู่. เพิกถอนแล้วเดินหน้าต่อ
1Remorseผู้ซื้อเปลี่ยนใจ. การคืนเงินธรรมดา
2Not_receivedลูกค้าบอกว่าไม่เคยได้รับผลิตภัณฑ์. ควรตรวจสอบการจัดส่งของคุณ
3Defectiveผลิตภัณฑ์ใช้งานไม่ได้. เป็นสัญญาณด้านคุณภาพ บันทึกไว้
4Accidental_purchaseการซื้อโดยไม่ตั้งใจ มักเกิดจากอุปกรณ์ที่ใช้ร่วมกัน
5FraudGoogle ระบุว่าธุรกรรมนี้เป็นการฉ้อโกง
6Friendly_fraudchargeback ที่เจ้าของบัตรตัวจริงโต้แย้งการเรียกเก็บเงินที่ตนเองเป็นคนทำ
7Chargebackธนาคารของลูกค้ากลับรายการชำระเงิน. เป็นที่สิ้นสุดกับธนาคาร และตอนนี้ถูกเรียกเก็บจากคุณ
8Unacknowledged_purchaseGoogle คืนเงินอัตโนมัติสำหรับการซื้อที่แอปของคุณไม่เคยรับทราบ (acknowledge)

หน้าต่าง 30 วันคือกับดักที่ทำให้รายการของคุณว่างเปล่า

Voided Purchases API แสดงได้เฉพาะการซื้อที่ถูกเพิกถอนภายใน 30 วันที่ผ่านมาเท่านั้น. พารามิเตอร์ startTime มีค่าเริ่มต้นเป็นเวลาปัจจุบันลบด้วย 30 วัน และตั้งให้เก่ากว่านั้นไม่ได้. endTime มีค่าเริ่มต้นเป็นตอนนี้. ดังนั้น endpoint นี้จึงเป็นหน้าต่างเลื่อนหนึ่งเดือน ไม่ใช่คลังเก็บถาวร

ผลที่ตามมานั้นตรงไปตรงมา. ถ้างานดึงข้อมูลของคุณพังและไม่มีใครสังเกตเห็นเป็นเวลาห้าสัปดาห์ การเพิกถอนจากสัปดาห์แรกก็จะหมดอายุออกไปจาก API. ไม่มีการเรียกใดที่จะนำมันกลับมาได้. คุณจะไม่เพิกถอนออร์เดอร์เหล่านั้น และคุณจะไม่รู้ด้วยซ้ำว่ามันเคยมีอยู่ เว้นแต่คุณจะเก็บมันไว้ด้วยวิธีอื่น. API คือตาข่ายนิรภัยที่มีรูขนาดเท่ากับการล่มที่แย่ที่สุดของคุณ

ตัวเลือก revoke เป็นตัวตัดสินว่าออร์เดอร์จะปรากฏหรือไม่

นี่คือเหตุผลที่พบบ่อยที่สุดที่ทีมรายงานว่า API เสีย. มีเฉพาะออร์เดอร์ที่ถูก revoke เท่านั้นที่จะถูกคืนกลับมา. การคืนเงินที่ผู้ใช้เริ่มเอง การยกเลิก chargeback และการคืนเงินที่ Google เริ่มเอง จะถูก revoke เสมอ ดังนั้นจึงปรากฏเสมอ. การคืนเงินที่นักพัฒนาเริ่มเองนั้นต่างออกไป. เมื่อคุณคืนเงินออร์เดอร์ด้วยตนเอง ผ่าน Play Console หรือ Orders API คุณจะเลือกว่าจะ revoke มันด้วยหรือไม่. คืนเงินโดยไม่ revoke แล้วออร์เดอร์นั้นก็จะถูกจัดการเสร็จกับลูกค้า แต่ไม่มีวันโผล่ขึ้นใน Voided Purchases API

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

วิธีดึงข้อมูลโดยไม่ชนโควตา

endpoint นี้ถูกจำกัดอัตรา และขีดจำกัดต่ำพอที่ลูปแบบไร้เดียงสาจะชนมันได้. คุณได้ 6,000 คำขอต่อวัน นับตามเวลา Pacific และไม่เกิน 30 คำขอในช่วง 30 วินาทีใด ๆ. งบนั้นเพียงพอสำหรับการดึงข้อมูลแบบเป็นหน้าต่าง และเป็นศัตรูกับดีไซน์ที่เรียกหนึ่งคำขอต่อหนึ่งออร์เดอร์

หน้าต่างการค้นหาและ continuation token

maxResults มีค่าเริ่มต้นเป็น 1,000 ซึ่งเป็นเพดานสูงสุดด้วย. เมื่อหน้าต่างหนึ่งเก็บการเพิกถอนไว้มากกว่าหนึ่งหน้า การตอบกลับจะพก tokenPagination อ็อบเจกต์ที่มี nextPageToken มาด้วย. ส่ง token นั้นกลับไปในการเรียกครั้งถัดไปเพื่อไล่ดูหน้าต่าง ๆ. ตั้ง startTime และ endTime เพื่อกำหนดขอบเขตหน้าต่างที่คุณสนใจ ไล่ดูทีละหน้าจนกว่า token จะหมด แล้วจึงเลื่อนหน้าต่างไปข้างหน้า. รูปแบบนั้นทำให้คุณอยู่ในทั้งขีดจำกัดการยิงแบบต่อเนื่อง 30 วินาทีและเพดานรายวัน

Real-time developer notifications ปิดช่องว่าง

การดึงข้อมูลทุกวันก็ยังทิ้งช่วงตาบอดไว้ได้ถึงหนึ่งวัน และหน้าต่าง 30 วันลงโทษช่วงว่างที่ยาวนาน. Real-time developer notifications ขจัดความล่าช้า. Google เผยแพร่ VoidedPurchaseNotification ไปยัง Cloud Pub/Sub topic ที่คุณเป็นเจ้าของทันทีที่การซื้อถูกเพิกถอน และแบ็กเอนด์ของคุณจะรับมันภายในไม่กี่วินาที. ข้อความนั้นเล็ก

ฟิลด์ RTDNเก็บอะไรไว้
purchaseTokentoken จากการซื้อดั้งเดิม
orderIdรหัสออร์เดอร์สำหรับธุรกรรมที่ถูกเพิกถอน อันใหม่ต่อการต่ออายุสมาชิกแต่ละครั้ง
productType1 สำหรับการสมัครสมาชิก, 2 สำหรับการซื้อครั้งเดียว
refundType1 สำหรับการคืนเงินเต็มจำนวน, 2 สำหรับการคืนเงินบางส่วนตามจำนวน
มือที่กำลังปิดแม่กุญแจทองเหลืองลงบนกองใบเสร็จข้างสมาร์ทโฟน แสดงถึงการเพิกถอนการเข้าถึงหลังจากการซื้อบน Google Play ถูกเพิกถอน

สิ่งนี้ทำให้คุณเสียเงินเท่าไร

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

ค่า chargeback จะตกมาที่คุณตั้งแต่วันที่ 3 สิงหาคม 2026

เริ่มตั้งแต่วันที่ 3 สิงหาคม 2026 Google จะย้ายต้นทุนของ chargeback มาให้นักพัฒนา. คุณเสียราคาซื้อและคุณจ่ายค่าธรรมเนียม chargeback ของธนาคารเพิ่มไปอีก. voidedReason ที่เป็น 7 ไม่ใช่แค่ยอดขายที่หายไปอีกต่อไป มันคือรายการที่มีค่าธรรมเนียมแนบมาด้วย. คุณไม่สามารถกลับรายการ chargeback ได้ มันเป็นที่สิ้นสุดกับธนาคาร แต่คุณสามารถหยุดเลือดไหลหลังจากนั้นได้. การจับการเพิกถอนได้เร็วทำให้คุณเพิกถอนสิทธิ์การเข้าถึง และสำหรับสิ่งที่คุณยังส่งมอบอยู่ ก็หยุดใช้จ่ายกับลูกค้าที่ได้เงินคืนแล้วถูกกลับรายการ

คุณยังคงจ่ายเพื่อให้บริการลูกค้าที่ได้เงินคืนไปแล้ว

ราคาซื้อหายไปในทันทีที่การเพิกถอนปรากฏ. สิ่งที่คุณยังควบคุมได้คือต้นทุนของการส่งมอบต่อไป. ทุกชั่วโมงที่สิทธิ์การเข้าถึงที่ได้เงินคืนแล้วยังทำงานอยู่ คุณยังคงจ่ายสำหรับสิ่งที่ลูกค้าไม่ได้ให้ทุนอีกต่อไป: การประมวลผล การเรียก API ของโมเดล พื้นที่จัดเก็บ และการจ่ายเงินให้ครีเอเตอร์หรือพาร์ตเนอร์ใด ๆ ที่ผูกกับการใช้งานของพวกเขา. ระบบเพิกถอนที่ขับเคลื่อนด้วย API นี้คือวิธีที่คุณปิดมิเตอร์นั้น. ข้ามมันไป แล้วคุณก็ให้ทุนผลิตภัณฑ์แก่คนที่สโตร์ทำให้พวกเขาได้เงินคืนไปแล้ว

Friendly fraud เป็นรูปแบบที่ควรค่าแก่การติดตามแนวโน้ม

voidedReason ที่เป็น 5 หรือ 6 ไม่ใช่เรื่องบังเอิญครั้งเดียว. Fraud และ friendly fraud รวมกลุ่มกันตามบัญชี ตามอุปกรณ์ และบางครั้งตามโปรโมชัน. API ให้ voidedSource และ voidedReason แก่คุณในทุกการเพิกถอน ซึ่งเพียงพอที่จะติดตามแนวโน้มการใช้ในทางที่ผิดตามบัญชี แทนที่จะปฏิบัติต่อการกลับรายการแต่ละครั้งเป็นต้นทุนที่แยกจากกัน. ลูกค้าที่ทำ chargeback สองครั้งกำลังบอกอะไรบางอย่างที่การคืนเงินครั้งแรกไม่ได้บอก

การเดินสายมันแบบ RefundHalt

โมเดลนี้เล็กเมื่อคุณจับชิ้นส่วนทั้งหมดได้. ฟัง VoidedPurchaseNotification แบบเรียลไทม์เพื่อไม่ให้อะไรต้องรอเต็มวัน. เรียก Voided Purchases API เป็นแหล่งความจริง โดยผูกกับ orderId เพื่อไม่ให้การต่ออายุสมาชิกสับสน. อ่าน voidedSource และ voidedReason เพื่อให้ chargeback ถูกจัดการต่างจากการคืนเงินจากความเสียดาย. ดึงข้อมูลตามตารางที่แน่นพอที่หน้าต่าง 30 วันจะไม่มากัด และคืนเงินโดยเปิดตัวเลือก revoke ไว้เมื่อใดก็ตามที่เจตนาของคุณคือตัดการเข้าถึง

นี่คือส่วนที่ RefundHalt ทำให้คุณ. มันรับการแจ้งเตือนแบบเรียลไทม์ กระทบยอดการเพิกถอนทุกอันกับ API เพิกถอนออร์เดอร์ที่แน่นอนแทนที่จะเป็นทั้งผลิตภัณฑ์ และแยก chargeback จากธนาคารออกจากการคืนเงินธรรมดา เพื่อให้อันที่แพงถูกตั้งค่าสถานะไว้ ไม่ใช่ถูกฝังกลบ. คุณได้สิทธิ์การเข้าถึงถูกเพิกถอนภายในไม่กี่วินาทีและบันทึกว่าใครเพิกถอนอะไรและทำไม โดยไม่ต้องตั้งไปป์ไลน์ Pub/Sub และงานดึงข้อมูลด้วยตัวเอง

คำถามที่พบบ่อย

ทำไมออร์เดอร์ที่ได้เงินคืนของฉันจึงไม่แสดงใน Voided Purchases API?
เพราะมีเฉพาะออร์เดอร์ที่ถูก revoke เท่านั้นที่จะถูกคืนกลับมา. การคืนเงินของผู้ใช้ การยกเลิก chargeback และการคืนเงินที่ Google เริ่มเอง จะถูก revoke เสมอและปรากฏเสมอ. การคืนเงินที่นักพัฒนาเริ่มเองจะปรากฏก็ต่อเมื่อคุณเลือกตัวเลือก revoke ด้วย. ถ้าคุณคืนเงินออร์เดอร์โดยไม่ revoke ออร์เดอร์นั้นก็จัดการเสร็จแต่มองไม่เห็นใน API นี้ ดังนั้นให้คืนเงินโดยเปิด revoke ไว้เมื่อใดก็ตามที่คุณตั้งใจจะดึงสิทธิ์การเข้าถึงกลับ
Voided Purchases API ย้อนกลับไปได้ไกลแค่ไหน?
สามสิบวัน. พารามิเตอร์ startTime มีค่าเริ่มต้นเป็นเวลาปัจจุบันลบด้วย 30 วัน และตั้งให้เก่ากว่านั้นไม่ได้ ดังนั้น endpoint จึงเป็นหน้าต่างเลื่อนหนึ่งเดือน ไม่ใช่คลังเก็บถาวร. ออร์เดอร์ที่ถูกเพิกถอนซึ่งอายุเกิน 30 วันจะหายไปจาก API โดยไม่มีทางเรียกกลับ ซึ่งเป็นเหตุผลว่าทำไมคุณจึงดึงข้อมูลตามตารางเวลาและหนุนมันด้วย real-time notifications
ฉันควรใช้ real-time developer notifications หรือ Voided Purchases API เพื่อเพิกถอนการเข้าถึง?
ใช้ทั้งสองอย่าง. VoidedPurchaseNotification มาถึงภายในไม่กี่วินาทีและบอกให้คุณไปดู แต่คำแนะนำของ Google เองคือให้ถือว่ามันเป็นสัญญาณ ไม่ใช่แหล่งความจริง. เรียก Voided Purchases API เพื่อยืนยันสถานะปัจจุบัน แล้วจึงเพิกถอน. การแจ้งเตือนขจัดความล่าช้า และ API ให้ voidedSource และ voidedReason ที่เชื่อถือได้แก่คุณเพื่อลงมือทำ
ฉันจะแยก chargeback ออกจากการคืนเงินธรรมดาใน API ได้อย่างไร?
อ่านฟิลด์ voidedReason. ค่า 7 คือ chargeback ซึ่งหมายความว่าธนาคารของลูกค้ากลับรายการชำระเงิน และ 6 คือ friendly fraud. ค่า 1 คือการคืนเงินจากความเสียดาย. เรื่องนี้สำคัญเพราะตั้งแต่วันที่ 3 สิงหาคม 2026 Google ส่งราคาซื้อของ chargeback และค่าธรรมเนียมธนาคารมาให้นักพัฒนา ดังนั้น voidedReason ที่เป็น 7 จึงทำให้คุณเสียมากกว่าการคืนเงินธรรมดา
Voided Purchases API ครอบคลุมการสมัครสมาชิกไหม?
ครอบคลุม. ตั้งพารามิเตอร์ type เป็น 1 เพื่อรับทั้งการซื้อในแอปที่ถูกเพิกถอนและการซื้อสมาชิกที่ถูกเพิกถอน. ค่าเริ่มต้น type 0 จะคืนเฉพาะการซื้อผลิตภัณฑ์ในแอปเท่านั้น. สำหรับการสมัครสมาชิก ให้ระบุช่วงเวลาที่ถูกเพิกถอนที่แน่นอนด้วย orderId เพราะ purchaseToken หนึ่งอันครอบคลุมการต่ออายุทุกครั้ง และจะมีการสร้าง orderId ใหม่สำหรับธุรกรรมการต่ออายุแต่ละครั้ง

แหล่งข้อมูลและเนื้อหาเพิ่มเติม

RefundHalt

ระบบอัตโนมัติสำหรับการคืนเงินบน App Store และ Google Play

อ่านต่อ

Playbookใช้เวลาอ่าน 7 นาที

การแจ้งเตือนการคืนเงินของ App Store สามรายการจะมาถึงหลังจาก Apple ตัดสิน และ REFUND_REVERSED จะคืนยอดขายกลับมาให้

Apple ส่งข้อความเกี่ยวกับการคืนเงินสี่รายการผ่าน App Store Server Notifications V2 และแอปส่วนใหญ่จัดการเพียงสองรายการ REFUND บอกให้คุณเพิกถอนสิทธิ์ REFUND_DECLINED หมายถึงเก็บยอดขายไว้ และ REFUND_REVERSED คืนยอดขายกลับมาและขอให้คุณคืนสิ่งที่คุณได้นำออกไป นี่คือสิ่งที่แต่ละรายการต้องการ

เจาะลึกใช้เวลาอ่าน 7 นาที

ทุกคำขอคืนเงินของ Apple มาพร้อมเหตุผลแล้ว และ consumptionRequestReason คือวิธีที่คุณอ่านมัน

ตั้งแต่ WWDC24 ทุก CONSUMPTION_REQUEST ของ Apple จะมี consumptionRequestReason ติดมาด้วย ซึ่งเป็นเหตุผลที่ลูกค้าระบุเองว่าทำไมจึงต้องการคืนเงิน มีอยู่ห้าค่า ตั้งแต่ UNINTENDED_PURCHASE ไปจนถึง LEGAL และแต่ละค่าควรเปลี่ยนสิ่งที่คุณส่งกลับภายในกรอบเวลา 12 ชั่วโมงของคุณ นี่คือวิธีอ่านทุกค่า

คำขอคืนเงินครั้งต่อไปกำลังมา

ตั้งค่า RefundHalt ได้ในเวลาพอ ๆ กับการอ่านอีเมลฝ่ายช่วยเหลืออีกฉบับเกี่ยวกับการคืนเงินที่คุณไม่มีโอกาสโต้แย้ง