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

ประเด็นสำคัญ
- ลูกค้าที่ถูกเรียกเก็บเงินซ้ำสองครั้งสำหรับการสมัครสมาชิกเดียวกัน มักซื้อผ่านสองสโตร์ที่แยกกัน เช่น App Store และ Google Play และแต่ละสโตร์เรียกเก็บเงินและคืนเงินสำหรับการซื้อของตัวเองแยกจากกัน
- นักพัฒนาคืนเงินการซื้อใน App Store เองไม่ได้ Apple เป็นผู้ตัดสินใจ ผ่าน reportaproblem.apple.com หรือผ่านหน้าคำขอคืนเงินที่แอปเปิดได้ด้วย beginRefundRequest ของ StoreKit และ Apple ระบุว่าใช้เวลาสูงสุด 48 ชั่วโมงในการอนุมัติหรือปฏิเสธ
- บน Google Play นักพัฒนาคืนเงินคำสั่งซื้อได้จาก Order management ใน Play Console หรือผ่าน API orders.refund ซึ่งคืนเงินคำสั่งซื้อที่มีอายุเกิน 3 ปีไม่ได้
- การคืนเงินคำสั่งซื้อล่าสุดของการสมัครสมาชิก Google Play จะลบการสมัครสมาชิกทันทีและยกเลิกการต่ออายุครั้งถัดไป ส่วนการคืนเงินคำสั่งซื้อที่เก่ากว่าจะทำให้การสมัครสมาชิกยังคงใช้งานอยู่
- Apple ส่ง CONSUMPTION_REQUEST สำหรับคำขอคืนเงินของผลิตภัณฑ์ทุกประเภท รวมถึงการสมัครสมาชิกแบบต่ออายุอัตโนมัติ และนักพัฒนามีเวลา 12 ชั่วโมงในการตอบกลับด้วย Send Consumption Information หากลูกค้าให้ความยินยอม
- สำหรับคำสั่งซื้อ Google Play ที่เกิดขึ้นหลังวันที่ 3 สิงหาคม 2026 การถูก chargeback จะทำให้นักพัฒนาเสียเงินเท่ากับราคาที่ซื้อ หักค่าธรรมเนียมบริการของ Play แล้วบวกค่าธรรมเนียม chargeback ของธนาคาร
- การกำหนด appAccountToken ในการซื้อผ่าน Apple และ ID บัญชีแบบปกปิดในการซื้อผ่าน Google Play ช่วยให้เซิร์ฟเวอร์ของคุณเห็นว่าการสมัครสมาชิกสองรายการเป็นของลูกค้าคนเดียว ก่อนที่การเรียกเก็บครั้งที่สองจะเกิดขึ้น
ระบบเรียกเก็บเงินของ Apple และ Google ไม่มีอะไรห้ามคนคนเดียวจ่ายเงินให้ทั้งสองฝั่งเพื่อสมัครสมาชิกของคุณในเดือนเดียวกัน เมื่อลูกค้าถูกเรียกเก็บเงินซ้ำสองครั้งสำหรับการสมัครสมาชิกเดียวกัน แทบทุกครั้งเกิดจากเรื่องนี้ พวกเขาสมัครบน iPhone แล้วสมัครอีกครั้งบนแท็บเล็ต Android หรือบนเว็บไซต์ของคุณ และแอปของคุณไม่รู้ว่ามีแพ็กเกจแรกอยู่แล้ว ลูกค้าเห็นรายการเรียกเก็บสองรายการและเขียนมาหาคุณ ปัญหาคือคุณคืนเงินเองได้เพียงรายการเดียว และทำได้ก็ต่อเมื่อรายการนั้นไม่ได้ซื้อผ่าน Apple ต่อไปนี้คือวิธีการทำงานของแต่ละฝั่ง ความเสียหายจากการเรียกเก็บซ้ำ และวิธีป้องกันไม่ให้เกิดขึ้นอีก
ทำไมลูกค้าจึงถูกเรียกเก็บเงินซ้ำสองครั้งสำหรับการสมัครสมาชิกเดียวกัน
แต่ละสโตร์เป็นเจ้าของการซื้อของตัวเอง Apple เรียกเก็บเงินการสมัครสมาชิก App Store, Google เรียกเก็บเงินการสมัครสมาชิก Google Play และผู้ให้บริการรับชำระเงินของคุณเรียกเก็บเงินแพ็กเกจบนเว็บ ไม่มีฝ่ายใดรู้ว่าอีกฝ่ายมีอยู่ เซิร์ฟเวอร์ของคุณเป็นที่เดียวที่การซื้อทั้งสองรายการจะมาพบกันได้ และจะเกิดขึ้นได้ก็ต่อเมื่อทั้งสองรายการมี ID ที่ผูกไว้กับบัญชีเดียวกัน
เส้นทางที่มักนำไปสู่การเรียกเก็บเงินซ้ำมีลักษณะดังนี้
- ลูกค้าเปลี่ยนโทรศัพท์ จาก iOS ไป Android หรือกลับกัน แล้วสมัครอีกครั้งเพราะแอปในเครื่องใหม่แสดง paywall
- ลูกค้าสมัครบนเว็บไซต์ของคุณ ติดตั้งแอปแต่ยังไม่ได้ลงชื่อเข้าใช้ แอปจึงขายการสมัครสมาชิกผ่านสโตร์ซ้อนเข้าไปอีก
- ลูกค้าถอนการติดตั้งแอปและเข้าใจว่าแพ็กเกจสิ้นสุดแล้ว หน้าช่วยเหลือของ Google ระบุว่าการถอนการติดตั้งแอปไม่ได้ยกเลิกการสมัครสมาชิก Google Play ของแอปนั้น และแพ็กเกจ App Store จะต่ออายุไปเรื่อยๆ จนกว่าจะถูกยกเลิกในบัญชี Apple
“แอปกับเว็บไซต์ของคุณไม่ได้เชื่อมกันเลยใช่ไหม”
นั่นคือคำร้องเรียนที่คุณจะได้อ่านในอีเมลฝ่ายซัพพอร์ต และจากมุมของลูกค้า ก็เป็นคำร้องเรียนที่สมเหตุสมผล พวกเขาจ่ายเงินซื้อผลิตภัณฑ์เดียว การถูกขอให้จ่ายซ้ำรู้สึกเหมือนติดกับดัก แม้จะเป็นความผิดพลาดของทั้งสองฝ่ายก็ตาม วิธีที่เร็วที่สุดในการคลายสถานการณ์คือบอกให้ชัดว่ารายการไหนคุณคืนเงินได้ และรายการไหนพวกเขาต้องไปยื่นกับ Apple
ใครคืนเงินรายการไหนได้บ้าง
ตรงนี้คือจุดที่การตอบกลับของฝ่ายซัพพอร์ตส่วนใหญ่ผิดพลาด คุณสัญญาได้เฉพาะสิ่งที่คุณควบคุมได้
| ช่องทางที่ซื้อรายการซ้ำ | ใครตัดสินใจเรื่องการคืนเงิน | แพ็กเกจหยุดต่ออายุอย่างไร | บทบาทของคุณ |
|---|---|---|---|
| App Store | Apple เท่านั้น ผ่าน reportaproblem.apple.com หรือหน้าคำขอคืนเงินในแอปของคุณ | ลูกค้ายกเลิกในบัญชี Apple ของตัวเอง | CONSUMPTION_REQUEST ตอบภายใน 12 ชั่วโมงหากลูกค้าให้ความยินยอม |
| Google Play ภายใน 48 ชั่วโมงหลังซื้อ | ลูกค้าขอจาก Google ได้ หรือคุณคืนเงินให้เองได้ | การคืนเงินคำสั่งซื้อล่าสุดจะยกเลิกการต่ออายุครั้งถัดไป | ไม่มี สำหรับการคืนเงินแบบบริการตนเองของ Google |
| Google Play หลัง 48 ชั่วโมง | คุณ จาก Play Console หรือ orders.refund | การคืนเงินคำสั่งซื้อล่าสุดจะยกเลิกการต่ออายุครั้งถัดไป | คุณเป็นผู้ตัดสินใจ |
| เว็บไซต์ของคุณ | คุณ ผ่านผู้ให้บริการรับชำระเงินของคุณ | คุณยกเลิกเองในระบบของคุณ | คุณเป็นผู้ตัดสินใจ |
นักพัฒนาคืนเงินการสมัครสมาชิก App Store ได้ไหม
ไม่ได้ Apple จัดการการคืนเงินทุกรายการของ App Store สิ่งที่คุณทำได้คือย่นขั้นตอนให้สั้นลง beginRefundRequest ของ StoreKit จะเปิดหน้าคำขอคืนเงินของ Apple ภายในแอปของคุณ โดยกรอกรายละเอียดการซื้อและรายการเหตุผลไว้ให้แล้ว เอกสารของ Apple ระบุว่า App Store ใช้เวลาสูงสุด 48 ชั่วโมงในการอนุมัติหรือปฏิเสธคำขอ หากทำนอกแอป ลูกค้าต้องลงชื่อเข้าใช้ที่ reportaproblem.apple.com เลือก “Request a refund” เลือกเหตุผล แล้วเลือกการสมัครสมาชิกนั้น
คืนเงินฝั่ง Google Play ด้วยตัวเอง
บน Google Play คุณเป็นผู้ควบคุม ใน Play Console ให้เปิด Order management เลือกคำสั่งซื้อแล้วคืนเงิน หน้าช่วยเหลือของ Play Console ระบุเรื่องการสมัครสมาชิกไว้ชัดเจน หากคืนเงินคำสั่งซื้อล่าสุด การสมัครสมาชิกจะถูกลบทันทีและการต่ออายุครั้งถัดไปจะถูกยกเลิก หากคืนเงินคำสั่งซื้อที่เก่ากว่า การสมัครสมาชิกจะยังคงใช้งานอยู่ หากคุณทำงานนี้แบบอัตโนมัติ API orders.refund ทำหน้าที่เดียวกัน รับ flag revoke เพื่อยุติสิทธิ์การใช้งานทันที และปฏิเสธคำสั่งซื้อที่มีอายุเกิน 3 ปี
การสมัครสมาชิกซ้ำทำให้คุณเสียเงินเท่าไร
เงินจากรายการซ้ำไม่เคยเป็นรายได้ที่คุณเก็บไว้ได้ตั้งแต่แรก คำถามเรื่องเงินคือคุณต้องเสียเพิ่มเท่าไรนอกเหนือจากเงินที่คืน
กรณีที่จบง่าย
สมมติว่าลูกค้าจ่าย $9.99 ต่อเดือนทั้งบน App Store และ Google Play เป็นเวลาสามเดือนก่อนจะรู้ตัว นั่นคือรายการเรียกเก็บซ้ำรวม $29.97 หากคุณคืนเงินคำสั่งซื้อ Google Play ทั้งสามรายการเอง คุณคืนเงิน $29.97 และปัญหาจบในวันนั้น แต่หากลูกค้านำฝั่ง App Store ไปยื่นกับ Apple แทน Apple จะเป็นผู้ตัดสินว่าจะคืนเงินเท่าไร และคุณจะรู้ได้ผ่านการแจ้งเตือนของเซิร์ฟเวอร์เท่านั้น ไม่ว่าทางไหน รายได้ของแพลตฟอร์มหนึ่งในช่วงสามเดือนนั้นจะถูกคืนกลับไป
กรณีที่เสียหายหนัก
ความเสียหายจริงเกิดขึ้นเมื่อลูกค้าหมดความอดทนกับฝ่ายซัพพอร์ตและโทรหาธนาคาร chargeback ถือเป็นที่สิ้นสุดเมื่อธนาคารตัดสินแล้ว Google Play ให้โอกาสคุณโต้แย้งเพียงครั้งเดียว คือการตรวจสอบ chargeback ที่คุณต้องตอบภายใน 24 ชั่วโมงผ่าน orders.reviewrefund สำหรับคำสั่งซื้อ Google Play ที่เกิดขึ้นหลังวันที่ 3 สิงหาคม 2026 หากแพ้ chargeback คุณจะเสียเงินเท่ากับราคาที่ซื้อ หักค่าธรรมเนียมบริการของ Play แล้วบวกค่าธรรมเนียม chargeback ของธนาคาร เงินคืน $29.97 ที่คุณทำได้ในหนึ่งนาที จะกลายเป็น $29.97 บวกค่าธรรมเนียมที่คุณควบคุมไม่ได้
ต้นทุนที่คุณยังจ่ายอยู่ระหว่างนั้น
ขณะที่ทั้งสองแพ็กเกจยังใช้งานอยู่ แบ็กเอนด์ของคุณให้บริการคนคนเดียวแต่เห็นการสมัครสมาชิกสองรายการ หากคุณนับจำนวนที่นั่ง ซิงก์ข้อมูล หรือเรียก API แบบเสียเงินของบุคคลที่สามตามการสมัครสมาชิก คุณอาจกำลังจ่ายค่าประมวลผล ค่าพื้นที่จัดเก็บ และค่าเรียก API สองเท่าสำหรับลูกค้าคนเดียว การรวมสองระเบียนเข้าด้วยกันจะยุติปัญหานี้

วิธีจัดการการเรียกเก็บเงินซ้ำในงานซัพพอร์ต
ตอบให้เร็วและจบในข้อความเดียว การโต้ตอบไปมาทุกครั้งที่เพิ่มขึ้นจะเพิ่มโอกาสที่ลูกค้าจะยื่นข้อพิพาทกับธนาคาร
- ค้นหาการซื้อทั้งสองรายการจากบัญชีของลูกค้า ไม่ใช่จากอีเมลที่พวกเขาใช้เขียนมา
- ถามว่าพวกเขาต้องการเก็บแพ็กเกจไหนไว้ ส่วนใหญ่คือแพ็กเกจบนอุปกรณ์ที่ใช้อยู่ตอนนี้
- หากรายการซ้ำอยู่บน Google Play หรือเว็บไซต์ของคุณ ให้คืนเงินเองแล้วแจ้งพวกเขาว่าดำเนินการเรียบร้อยแล้ว
- หากรายการซ้ำอยู่บน App Store ให้แนะนำพวกเขาไปที่ reportaproblem.apple.com หรือปุ่มคืนเงินในแอปของคุณหากคุณทำไว้แล้ว และบอกให้ยกเลิกในการตั้งค่าบัญชี Apple ของตัวเอง
- หากต่อมา Apple ส่ง CONSUMPTION_REQUEST และลูกค้าให้ความยินยอม ให้ตอบภายใน 12 ชั่วโมงด้วยข้อมูลการใช้งานที่ถูกต้อง แพ็กเกจซ้ำที่ไม่เคยถูกใช้งานเลยเป็นกรณีที่ Apple อนุมัติได้ง่าย
วิธีหยุดการเรียกเก็บครั้งที่สองก่อนจะเกิดขึ้น
การป้องกันถูกกว่าการคืนเงินทุกแบบ และเครื่องมือก็มีอยู่แล้วในทั้งสองสโตร์
ผูกการซื้อทุกรายการเข้ากับ ID บัญชีของคุณ
บน iOS ให้สร้าง UUID สำหรับแต่ละบัญชีและส่งเป็นตัวเลือกการซื้อ appAccountToken Apple จะส่งค่าเดิมกลับมาในธุรกรรมและในข้อมูลการต่ออายุการสมัครสมาชิก หากการซื้อเกิดขึ้นนอกแอปของคุณ endpoint Set App Account Token ช่วยให้คุณแนบหรืออัปเดตโทเค็นในภายหลังได้ บน Android ให้ส่ง ID บัญชีที่ผ่านการแฮชซึ่งยาวไม่เกิน 64 ตัวอักษรไปยัง setObfuscatedAccountId และห้ามส่งข้อมูลส่วนบุคคลแบบดิบเด็ดขาด
ตรวจสอบสิทธิ์การใช้งานก่อนแสดง paywall
ก่อนที่ paywall จะปรากฏ ให้ถามเซิร์ฟเวอร์ของคุณเองว่าบัญชีที่ลงชื่อเข้าใช้อยู่มีแพ็กเกจที่ใช้งานอยู่จากแพลตฟอร์มใดแล้วหรือไม่ แสดงหน้าชวนลงชื่อเข้าใช้ก่อน แล้วจึงแสดง paywall เฉพาะบัญชีที่ไม่มีแพ็กเกจที่ใช้งานอยู่
เฝ้าระวังบัญชีที่มีแพ็กเกจใช้งานอยู่สองรายการ
ตรวจสอบทุกวันเพื่อหาบัญชีที่มีการสมัครสมาชิกที่ใช้งานอยู่มากกว่าหนึ่งรายการข้ามสโตร์ การพบปัญหาในสัปดาห์แรกหมายถึงการคืนเงินหนึ่งเดือนแทนที่จะเป็นสามเดือน และอีเมลสั้นๆ หนึ่งฉบับแทนที่จะเป็น chargeback
RefundHalt ติดตามการสมัครสมาชิก App Store และ Google Play ตาม ID บัญชีของคุณเอง ลูกค้าที่จ่ายเงินซ้ำจึงปรากฏเป็นคนคนเดียวที่มีสองแพ็กเกจ ก่อนที่ธนาคารของพวกเขาจะเห็น
คำถามที่พบบ่อย
- ทำไมลูกค้าจึงถูกเรียกเก็บเงินซ้ำสองครั้งสำหรับการสมัครสมาชิกเดียวกัน
- ส่วนใหญ่เป็นเพราะพวกเขาซื้อบนสองแพลตฟอร์ม เช่น App Store และ Google Play หรือสโตร์หนึ่งกับเว็บไซต์ของคุณ แต่ละสโตร์เรียกเก็บเงินการสมัครสมาชิกของตัวเองและไม่รู้ว่าอีกรายการมีอยู่ ทั้งสองรายการจึงต่ออายุไปเรื่อยๆ จนกว่าจะมีรายการหนึ่งถูกยกเลิก
- ฉันคืนเงินการสมัครสมาชิก App Store ให้ลูกค้าได้ไหม
- ไม่ได้ มีเพียง Apple ที่คืนเงินการซื้อใน App Store ได้ คุณเปิดหน้าคำขอคืนเงินของ Apple ภายในแอปได้ด้วย beginRefundRequest ของ StoreKit หรือแนะนำลูกค้าไปที่ reportaproblem.apple.com Apple ระบุว่าใช้เวลาสูงสุด 48 ชั่วโมงในการอนุมัติหรือปฏิเสธคำขอ
- จะคืนเงินการสมัครสมาชิก Google Play ที่ซ้ำได้อย่างไร
- คืนเงินคำสั่งซื้อจาก Order management ใน Play Console หรือเรียก API orders.refund การคืนเงินคำสั่งซื้อล่าสุดจะลบการสมัครสมาชิกทันทีและยกเลิกการต่ออายุครั้งถัดไป API นี้คืนเงินคำสั่งซื้อที่มีอายุเกิน 3 ปีไม่ได้
- การคืนเงินการสมัครสมาชิกเป็นการยกเลิกการสมัครสมาชิกด้วยหรือไม่
- บน Google Play การคืนเงินคำสั่งซื้อล่าสุดจะยกเลิกการต่ออายุครั้งถัดไป แต่การคืนเงินคำสั่งซื้อที่เก่ากว่าจะทำให้การสมัครสมาชิกยังคงใช้งานอยู่ บน App Store การคืนเงินเป็นการตัดสินใจของ Apple และลูกค้าต้องยกเลิกการสมัครสมาชิกจากบัญชี Apple ของตัวเอง
- จะป้องกันไม่ให้ผู้ใช้สมัครสมาชิกซ้ำบน iOS และ Android ได้อย่างไร
- แนบ ID บัญชีของคุณเองกับการซื้อทุกรายการ โดยใช้ appAccountToken บน Apple และ ID บัญชีแบบปกปิดบน Google Play จากนั้นตรวจสอบในเซิร์ฟเวอร์ว่ามีแพ็กเกจที่ใช้งานอยู่บนแพลตฟอร์มใดหรือไม่ก่อนแสดง paywall และขอให้ผู้ใช้ลงชื่อเข้าใช้ก่อน
แหล่งข้อมูลและเนื้อหาเพิ่มเติม
- Apple Support: Request a refund for apps or content that you bought from Apple
- Apple Developer: beginRefundRequest(in:)
- Apple Developer: Send Consumption Information
- Apple Developer: appAccountToken
- Play Console Help: Manage your app's orders and issue refunds
- Google Play Developer API: orders.refund
- Google Play Help: Apps, games, and in-app purchases refund policies
- Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
ระบบอัตโนมัติสำหรับการคืนเงินบน App Store และ Google Play
อ่านต่อ
ค่าธรรมเนียม alternative billing ของ Google Play ในสหรัฐฯ เริ่มแล้วตั้งแต่ 1 ตุลาคม ส่วนการคืนเงินของยอดขายเหล่านั้นยังเป็นหน้าที่ของคุณ
ตั้งแต่วันที่ 1 ตุลาคม 2026 Google Play เก็บค่าธรรมเนียมบริการจากการซื้อในสหรัฐฯ ที่ทำผ่าน alternative billing หรือ external content links แต่ Google ยังไม่ดูแลการคืนเงินเลยแม้แต่รายการเดียว บทความนี้สรุปตารางค่าธรรมเนียม วิธีรายงานการคืนเงินกลับไปยัง Google และต้นทุนของการคืนเงินแต่ละครั้ง
DeviceCheck ของ Apple จดจำโทรศัพท์ของผู้ที่ใช้การคืนเงินในทางมิชอบ แม้เขาจะสมัครบัญชีใหม่แล้วก็ตาม
การแบนบัญชีและตัวระบุการซื้อใช้ไม่ได้ผลทันทีที่ผู้ใช้การคืนเงินในทางมิชอบสร้างบัญชีใหม่ DeviceCheck ของ Apple และ device recall ของ Google Play เก็บข้อมูลไม่กี่บิตต่ออุปกรณ์ไว้บนเซิร์ฟเวอร์ของสโตร์ บทความนี้อธิบายว่าเก็บอะไร ควรตั้งค่าเมื่อใด และช่วยคุณประหยัดอะไรได้บ้าง