Google Play Voided Purchases API แสดงรายการคำสั่งซื้อที่ เชื่อมโยงกับการซื้อที่ผู้ใช้ได้ยกเลิก คุณสามารถใช้ข้อมูล จากรายการนี้เพื่อใช้ระบบการเพิกถอนที่ป้องกันไม่ให้ผู้ใช้ เข้าถึงผลิตภัณฑ์จากคำสั่งซื้อเหล่านั้น
API นี้ใช้กับการสั่งซื้อในแอปแบบครั้งเดียวและการสมัครใช้บริการแอป
คุณยกเลิกการซื้อได้ด้วยวิธีต่อไปนี้
- ผู้ใช้ขอเงินคืนสำหรับคำสั่งซื้อ
- ผู้ใช้ยกเลิกคำสั่งซื้อ
- มีการเรียกคืนเงินสำหรับคำสั่งซื้อ
นักพัฒนาแอปยกเลิกหรือคืนเงินคำสั่งซื้อ
Google ยกเลิกหรือคืนเงินคำสั่งซื้อ
การใช้ API นี้จะช่วยสร้างประสบการณ์ที่สมดุลและเป็นธรรมมากขึ้นสำหรับผู้ใช้แอปทุกคน โดยเฉพาะอย่างยิ่งหากแอปของคุณเป็นเกม
การขอรับสิทธิ์เข้าถึง
หากต้องการใช้ Voided Purchases API คุณต้องมีสิทธิ์ดูข้อมูลทางการเงิน คุณให้สิทธิ์โดยใช้ไคลเอ็นต์ OAuth หรือบัญชีบริการ หากใช้บัญชีบริการ ให้เปิดใช้สิทธิ์ "ดูรายงานทางการเงิน" ภายในบัญชีนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการได้รับสิทธิ์เข้าถึง Google Play Developer API ได้ที่ คู่มือต่อไปนี้
การดูการซื้อที่ถูกยกเลิก
ใช้วิธี GET
เพื่อขอรายการการซื้อที่ถูกยกเลิก ในคำขอ ให้ระบุชื่อแพ็กเกจแบบเต็มของแอป เช่น
com.google.android.apps.maps
และโทเค็นการให้สิทธิ์ที่คุณ
ได้รับเมื่อได้รับสิทธิ์เข้าถึง API
GET https://www.googleapis.com/androidpublisher/v3/applications/ your_package_name/purchases/voidedpurchases?access_token=your_auth_token
นอกจากนี้ คุณยังระบุพารามิเตอร์ต่อไปนี้ในคำขอได้ด้วย โดยแต่ละพารามิเตอร์เป็นแบบ ไม่บังคับ
- startTime
เวลาเป็นมิลลิวินาทีตั้งแต่ Unix Epoch ของการซื้อที่ถูกยกเลิกที่เก่าที่สุด ที่คุณต้องการดูในการตอบกลับ โดยค่าเริ่มต้น
startTime
จะตั้งค่าเป็น 30 วันที่ผ่านมาAPI จะแสดงได้เฉพาะการซื้อที่ถูกยกเลิกซึ่งเกิดขึ้นในช่วง 30 วันที่ผ่านมาเท่านั้น การซื้อที่ถูกทำให้เป็นโมฆะก่อนหน้านี้จะไม่รวมอยู่ในการตอบกลับ ไม่ว่าคุณจะระบุค่าสำหรับ
startTime
ไว้เท่าใดก็ตาม- endTime
เวลาในหน่วยมิลลิวินาทีตั้งแต่ Unix Epoch ของการซื้อที่ถูกยกเลิกล่าสุดที่คุณต้องการดูในการตอบกลับ โดยค่าเริ่มต้น
endTime
จะตั้งค่าเป็นเวลาปัจจุบัน- maxResults
- จำนวนสูงสุดของการซื้อที่ถูกยกเลิกซึ่งปรากฏในแต่ละการตอบกลับ โดยค่าเริ่มต้น ค่านี้คือ 1, 000 โปรดทราบว่าค่าสูงสุดของพารามิเตอร์นี้คือ 1,000
- โทเค็น
- โทเค็นต่อเนื่องจากคำตอบก่อนหน้า ซึ่งช่วยให้คุณดูผลลัพธ์เพิ่มเติมได้
- ประเภท
ประเภทของการซื้อที่ถูกยกเลิกซึ่งปรากฏในการตอบกลับแต่ละครั้ง หากตั้งค่าเป็น 0 ระบบจะแสดงเฉพาะการซื้อในแอปที่ถูกยกเลิกเท่านั้น หากตั้งค่าเป็น 1 ระบบจะแสดงทั้งการซื้อในแอปที่ถูกทำให้เป็นโมฆะ และการสมัครใช้บริการที่ถูกทำให้เป็นโมฆะ ค่าเริ่มต้นคือ 0
- includeQuantityBasedPartialRefund
จะรวมการซื้อที่ถูกยกเลิกของการคืนเงินบางส่วนตามจำนวนหรือไม่ ซึ่งใช้ได้กับการซื้อแบบหลายจำนวนเท่านั้น หาก
true
อาจมีการส่งคืนการซื้อที่เป็นโมฆะเพิ่มเติมพร้อมกับvoidedQuantity
ซึ่งระบุจำนวนเงินคืนของการคืนเงินบางส่วนตามจำนวน ค่าเริ่มต้นคือfalse
การตอบกลับเป็นสตริง JSON ที่มีรายการการซื้อที่ถูกยกเลิก หากมีผลลัพธ์มากกว่าจำนวนที่ระบุในmaxResults
พารามิเตอร์คำขอ
การตอบกลับจะมีค่า nextPageToken
ซึ่งคุณส่งไปยังคำขอ
ถัดไปเพื่อดูผลลัพธ์เพิ่มเติมได้ ผลลัพธ์แรกในรายการจะแสดงการซื้อที่ถูกยกเลิกที่เก่าที่สุด
{ "tokenPagination": { "nextPageToken": "next_page_token" }, "voidedPurchases": [ { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_purchase_token", "purchaseTimeMillis": "1468825200000", "voidedTimeMillis": "1469430000000", "orderId": "some_order_id", "voidedSource": "0", "voidedReason": "4" }, { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_other_purchase_token", "purchaseTimeMillis": "1468825100000", "voidedTimeMillis": "1470034800000", "orderId": "some_other_order_id", "voidedSource": "2", "voidedReason": "5" }, ] }
โควต้า
API การซื้อที่ถูกยกเลิกจะกำหนดโควต้าต่อไปนี้ต่อแพ็กเกจ
- การค้นหา 6,000 ครั้งต่อวัน (วันเริ่มต้นและสิ้นสุดตอนเที่ยงคืนตามเวลาเขตแปซิฟิก)
- 30 คำค้นหาในช่วงเวลา 30 วินาที
หลักเกณฑ์สำหรับคำขอเริ่มต้น
ในระหว่างการขอ API ครั้งแรก คุณอาจต้องการดึงข้อมูลที่มีอยู่ทั้งหมดสำหรับแอปของคุณ กระบวนการนี้อาจทำให้โควต้ารายวันของคุณหมดลงได้ แม้ว่าจะเป็นไปได้ยากก็ตาม หากต้องการรับข้อมูลการซื้อที่ถูกยกเลิกในลักษณะที่ปลอดภัยและสอดคล้องกันมากขึ้น ให้ทำตามแนวทางปฏิบัติแนะนำต่อไปนี้
- ใช้ค่าเริ่มต้นสำหรับพารามิเตอร์
maxResults
ด้วยวิธีนี้ หากคุณใช้โควต้าการค้นหาทั้งหมดใน 1 วัน คุณจะดึงรายละเอียดการซื้อที่ถูกยกเลิก 6,000,000 รายการได้ - หากการตอบกลับมีค่าสำหรับ
nextPageToken
ให้กำหนดค่านี้ให้กับพารามิเตอร์token
ในคำขอถัดไป
แนวทางปฏิบัติแนะนำ
เมื่อใช้ API นี้ในแอป โปรดทราบว่ามีหลายสาเหตุที่ทำให้ต้องลบล้างการซื้อ และไม่มีโซลูชันเดียวที่ใช้ได้ในทุกกรณี คุณควรคำนึงถึงผู้ใช้เมื่อออกแบบนโยบายและกลยุทธ์การเพิกถอน โดยคุณสามารถใช้แนวทางปฏิบัติที่แนะนำต่อไปนี้
- ใช้ API นี้เป็นหนึ่งในหลายๆ องค์ประกอบในกลยุทธ์ที่ครอบคลุมเพื่อจัดการกับ พฤติกรรมที่ไม่พึงประสงค์ โดยปกติแล้ว การเพิกถอนสิทธิ์เข้าถึงไอเทมที่ซื้อในแอปจะมีประสิทธิภาพมากกว่า เมื่อใช้ร่วมกับแอปที่มีราคาที่สมเหตุสมผลสำหรับการซื้อในแอป การออกแบบแอปที่กีดกันพฤติกรรมที่ไม่พึงประสงค์ ฐานผู้ใช้ที่แข็งแกร่งซึ่งมี วัฒนธรรมที่ปฏิเสธพฤติกรรมดังกล่าว และช่องทางการสนับสนุนผู้ใช้ที่มีประสิทธิภาพและตอบสนองได้ดี
- ดูแลนโยบายการเพิกถอนอย่างสม่ำเสมอเพื่อให้ผู้ใช้ทุกคนได้รับความเป็นธรรม
- ลองสร้างนโยบายแบบแบ่งระยะเมื่อจัดการกับพฤติกรรมที่ไม่พึงประสงค์ ตัวอย่างเช่น เริ่มต้นด้วยคำเตือนในแอปสำหรับการละเมิดครั้งแรกๆ จากนั้นค่อยๆ เพิ่มระดับการตอบสนองเมื่อผู้ใช้ยังคงแสดงพฤติกรรมที่ไม่พึงประสงค์ต่อไป ในกรณีสุดท้าย คุณสามารถ ป้องกันไม่ให้ผู้ใช้โต้ตอบกับแอปของคุณได้เลย
- เมื่อเปิดตัวนโยบายการเพิกถอนและทุกครั้งที่คุณอัปเดตนโยบาย ให้ใช้ช่องทางการติดต่อของแอปเพื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับการเปลี่ยนแปลง ให้เวลาผู้ใช้ ในการทำความเข้าใจการเปลี่ยนแปลงเหล่านี้อย่างชัดเจนก่อนที่จะมีผลในแอป
- โปรดแสดงความโปร่งใสต่อผู้ใช้และแจ้งให้ผู้ใช้ทราบทุกครั้งที่คุณดำเนินการ เช่น เพิกถอนสิทธิ์เข้าถึงไอเทมที่ซื้อในแอป ในอุดมคติแล้ว ผู้ใช้ควรสามารถ โต้แย้งการตัดสินของคุณ และการโต้แย้งดังกล่าวควรได้รับการพิจารณาอย่างเป็นธรรม
- ตรวจสอบแบบฟอร์มความคิดเห็นและฟอรัมชุมชนเพื่อทำความเข้าใจว่าอะไรที่กระตุ้นให้ผู้ใช้ มีพฤติกรรมที่ไม่พึงประสงค์และวิธีที่ผู้ใช้แสดงพฤติกรรมดังกล่าว ดำเนินการตามข้อมูลเชิงลึกเหล่านี้เพื่อเป็นด่านแรกในการป้องกัน