คู่มือนี้จะอธิบายวิธีผสานรวม API เพื่อเสนอการเรียกเก็บเงินระบบอื่น แบบให้ผู้ใช้ตัดสินใจในแอป
การตั้งค่า Play Billing Library
เพิ่มการพึ่งพา Play Billing Library ลงในแอป Android วิธีใช้ API การเรียกเก็บเงินระบบอื่นที่คุณต้องใช้ในเวอร์ชัน 5.2 ขึ้นไป หากคุณจำเป็นต้องทำดังนี้ ย้ายข้อมูลจากเวอร์ชันก่อนหน้า โปรดทำตามวิธีการในการย้ายข้อมูล คำแนะนำก่อนที่จะลองใช้การเรียกเก็บเงินระบบอื่น
เชื่อมต่อกับ Google Play
ขั้นตอนแรกในกระบวนการผสานรวมจะเหมือนกับที่อธิบายไว้ใน คู่มือการผสานรวม Google Play Billing โดยมีการแก้ไขเล็กน้อย การเริ่มต้น BillingClient
- คุณต้องเรียกใช้วิธีการใหม่เพื่อระบุว่าคุณต้องการเสนอให้
ตัวเลือกการเรียกเก็บเงิน:
enableUserChoiceBilling
- คุณต้องลงทะเบียน
UserChoiceBillingListener
สำหรับจัดการเคสต่างๆ ที่ผู้ใช้เลือกการเรียกเก็บเงินระบบอื่น
ตัวอย่างต่อไปนี้แสดงการเริ่มต้น BillingClient
ด้วยรายการเหล่านี้
การแก้ไข:
Kotlin
val purchasesUpdatedListener =
PurchasesUpdatedListener { billingResult, purchases ->
// Handle new Google Play purchase.
}
val userChoiceBillingListener =
UserChoiceBillingListener { userChoiceDetails ->
// Handle alternative billing choice.
}
var billingClient = BillingClient.newBuilder(context)
.setListener(purchasesUpdatedListener)
.enablePendingPurchases()
.enableUserChoiceBilling(userChoiceBillingListener)
.build()
Java
private PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> purchases) {
// Handle new Google Play purchase.
}
};
private UserChoiceBillingListener userChoiceBillingListener = new UserChoiceBillingListener() {
@Override
public void userSelectedAlternativeBilling(
UserChoiceDetails userChoiceDetails) {
// Handle new Google Play purchase.
}
};
private BillingClient billingClient = BillingClient.newBuilder(context)
.setListener(purchasesUpdatedListener)
.enablePendingPurchases()
.enableUserChoiceBilling(userChoiceBillingListener)
.build();
หลังจากเริ่มต้น BillingClient
แล้ว คุณจะต้องสร้างการเชื่อมต่อเพื่อ
Google Play ตามที่อธิบายไว้ในคู่มือการผสานรวม
แสดงผลิตภัณฑ์ที่พร้อมจำหน่าย
คุณสามารถแสดงผลิตภัณฑ์ที่พร้อมจำหน่ายแก่ผู้ใช้ได้ในลักษณะเดียวกันกับ การผสานรวมระบบการเรียกเก็บเงินของ Google Play เมื่อผู้ใช้เห็นผลิตภัณฑ์ พร้อมจำหน่ายและเลือก 1 รายการที่จะซื้อ เปิดใช้การเรียกเก็บเงินแบบให้ผู้ใช้ตัดสินใจ ตามที่อธิบายไว้ในส่วนต่อไปนี้
เปิดขั้นตอนการเรียกเก็บเงินแบบให้ผู้ใช้ตัดสินใจ
เปิดขั้นตอนการเรียกเก็บเงินแบบให้ผู้ใช้ตัดสินใจโดยโทรหา launchBillingFlow()
วิธีนี้ได้ผล
เหมือนกับการเปิดตัวขั้นตอนการซื้อด้วยระบบการเรียกเก็บเงินของ Google Play
การผสานรวม: คุณระบุอินสแตนซ์ ProductDetails
และ offerToken
ที่สอดคล้องกับผลิตภัณฑ์และข้อเสนอที่ผู้ใช้ต้องการได้ ถ้า
ผู้ใช้เลือกระบบการเรียกเก็บเงินของ Google Play ข้อมูลนี้จะใช้เพื่อ
ดำเนินการขั้นตอนการซื้อต่อ
เมื่อนักพัฒนาแอปโทรติดต่อ launchBillingFlow()
ระบบการเรียกเก็บเงินของ Google Play
ดำเนินการตรวจสอบต่อไปนี้
- ระบบจะตรวจสอบว่าประเทศใน Google Play ของผู้ใช้
ประเทศที่รองรับการเรียกเก็บเงินระบบอื่นแบบให้ผู้ใช้ตัดสินใจ (เช่น
ประเทศ) Google Play จะตรวจสอบหากประเทศใน Google Play ของผู้ใช้รองรับ
เปิดใช้การเรียกเก็บเงินระบบอื่นตามการกำหนดค่าของ
BillingClient
- หากเปิดใช้การเรียกเก็บเงินระบบอื่นแบบให้ผู้ใช้ตัดสินใจแล้ว จะแสดง UX แบบให้ผู้ใช้ตัดสินใจ
- หากไม่ได้เปิดใช้การเรียกเก็บเงินระบบอื่นแบบให้ผู้ใช้ตัดสินใจ ระบบจะทำการซื้อ แสดง UX ระบบการเรียกเก็บเงินของ Google Play แบบมาตรฐาน โดยไม่มีผู้ใช้
- หากประเทศใน Google Play ของผู้ใช้ไม่ใช่ประเทศที่รองรับ ระบบจะดำเนินการต่อไปนี้ ขั้นตอนการซื้อแสดง UX ระบบการเรียกเก็บเงินของ Google Play แบบมาตรฐาน โดยผู้ใช้
ประเทศใน Play ของผู้ใช้เป็นประเทศที่รองรับ |
ประเทศใน Play ของผู้ใช้ไม่ใช่ประเทศที่รองรับ |
|
---|---|---|
enabledUserChoiceBilling ถูกเรียกในระหว่างการตั้งค่า BillingClient |
ผู้ใช้เห็น UX แบบตัวเลือกของผู้ใช้ |
ผู้ใช้เห็น UX ระบบการเรียกเก็บเงินของ Google Play แบบมาตรฐาน |
ไม่เรียกใช้ enabledUserChoiceBilling ระหว่างการตั้งค่า BillingClient |
ผู้ใช้เห็น UX ระบบการเรียกเก็บเงินของ Google Play แบบมาตรฐาน |
ผู้ใช้เห็น UX ระบบการเรียกเก็บเงินของ Google Play แบบมาตรฐาน |
จัดการตัวเลือกของผู้ใช้
วิธีจัดการขั้นตอนการซื้อที่เหลือจะแตกต่างกันไป ขึ้นอยู่กับว่า ผู้ใช้เลือกระบบการเรียกเก็บเงินของ Google Play หรือระบบการเรียกเก็บเงินระบบอื่น
เมื่อผู้ใช้เลือกระบบการเรียกเก็บเงินระบบอื่น
หากผู้ใช้เลือกระบบการเรียกเก็บเงินระบบอื่น Google Play จะเรียกใช้
UserChoiceBillingListener
เพื่อแจ้งแอปว่าจำเป็นต้องเปิด
ขั้นตอนการซื้อในระบบการเรียกเก็บเงินระบบอื่น โดยเฉพาะอย่างยิ่ง ฟิลด์
มีการเรียกเมธอด userSelectedAlternativeBilling()
โทเค็นธุรกรรมภายนอกที่ระบุไว้ในออบเจ็กต์ UserChoiceDetails
เป็นลายเซ็นสำหรับตัวเลือกของผู้ใช้ในการเข้าสู่การเรียกเก็บเงินระบบอื่น
ใช้โทเค็นนี้เพื่อรายงานธุรกรรมใดๆ ที่เกิดขึ้นจากตัวเลือกนี้เป็น
ตามที่อธิบายไว้ในคู่มือการผสานรวมแบ็กเอนด์
UserChoiceBillingListener
ควรดำเนินการดังต่อไปนี้
- รับผลิตภัณฑ์หรือผลิตภัณฑ์ที่ผู้ใช้ซื้อ เพื่อให้สามารถ ที่แสดงในขั้นตอนการซื้อในระบบการเรียกเก็บเงินระบบอื่น
- รวบรวมสตริงที่ได้รับเป็นโทเค็นธุรกรรมภายนอกและส่งไปยัง แบ็กเอนด์เพื่อคงไว้ ใช้ข้อมูลนี้ในภายหลังเพื่อรายงานรายงานภายนอก กับ Google Play หากผู้ใช้ทำการซื้อนี้เสร็จสมบูรณ์
- เปิดขั้นตอนการซื้อทางเลือกของนักพัฒนาซอฟต์แวร์
หากผู้ใช้ทำการซื้อเสร็จสมบูรณ์โดยใช้ระบบการเรียกเก็บเงินระบบอื่น คุณ
ต้องรายงานธุรกรรมดังกล่าวไปยัง Google Play โดยโทรหานักพัฒนาแอป Google Play
API จากแบ็กเอนด์ของคุณภายใน 24 ชั่วโมง โดยระบุ
externalTransactionToken
และรายละเอียดธุรกรรมเพิ่มเติม โปรดดู
คู่มือการผสานรวมแบ็กเอนด์เพื่อดูรายละเอียดเพิ่มเติม
ตัวอย่างต่อไปนี้แสดงวิธีใช้งาน
UserChoiceBillingListener
:
Kotlin
private val userChoiceBillingListener =
UserChoiceBillingListener { userChoiceDetails ->
// Get the products being purchased by the user.
val products = userChoiceDetails.products
// Send external transaction token to developer backend server
// this devBackend object is for demonstration purposes,
// developers can implement this step however best fits their
// app to backend communication.
devBackend.sendExternalTransactionStarted(
userChoiceDetails.externalTransactionToken,
user
)
// Launch alternative billing
// ...
// The developer backend handles reporting the transaction
// to Google Play's backend once the alternative billing
// purchase is completed.
}
Java
private userChoiceBillingListener userChoiceBillingListener = new UserChoiceBillingListener() {
@Override
public void userSelectedAlternativeBilling(
UserChoiceDetails userChoiceDetails) {
// Get the products being purchased by the user.
List<Product> products =
userChoiceDetails.getProducts();
// Send external transaction token to developer backend server
// this devBackend object is for demonstration purposes,
// developers can implement this step however best fits their
// app to backend communication.
devBackend.sendExternalTransactionStarted(
userChoiceDetails.getExternalTransactionToken(),
user
);
// Launch alternative billing
// ...
// The developer backend handles reporting the transaction
// to Google Play's backend once the alternative billing
// purchase is completed.
}
};
เมื่อผู้ใช้เลือกระบบการเรียกเก็บเงินของ Google Play
หากผู้ใช้เลือกระบบการเรียกเก็บเงินของ Google Play ผู้ใช้จะใช้ สำหรับการซื้อผ่าน Google Play
- ดูข้อมูลเพิ่มเติมในการดำเนินการสั่งซื้อในคู่มือการผสานรวมไลบรารี เกี่ยวกับวิธีจัดการการซื้อในแอปใหม่ผ่าน ระบบการเรียกเก็บเงิน
- โปรดดูการสมัครใช้บริการใหม่ในคู่มือการจัดการการสมัครใช้บริการสำหรับ คำแนะนำเพิ่มเติมสำหรับการซื้อการสมัครใช้บริการ
จัดการกับการเปลี่ยนแปลงในการสมัครใช้บริการ
สำหรับนักพัฒนาซอฟต์แวร์ที่ใช้การเรียกเก็บเงินระบบอื่นแบบให้ผู้ใช้ตัดสินใจ การซื้อจะต้อง
ประมวลผลผ่านระบบการเรียกเก็บเงินของ Google Play หรือรายงานด้วย
externalTransactionId
ทั้งนี้ขึ้นอยู่กับตัวเลือกของผู้ใช้ การเปลี่ยนแปลงกับรายการที่มีอยู่
คุณจะสมัครใช้บริการที่ประมวลผลผ่านขั้นตอนทางเลือกของผู้ใช้ได้
ผ่านระบบการเรียกเก็บเงินเดียวกันจนกว่าจะหมดอายุ
หัวข้อนี้จะอธิบายวิธีจัดการสถานการณ์การเปลี่ยนแปลงที่พบบ่อยบางส่วน
อัปเกรดและดาวน์เกรดขั้นตอน
ควรเปลี่ยนแพ็กเกจการสมัครใช้บริการรวมถึงขั้นตอนการอัปเกรดและดาวน์เกรด มีการจัดการแตกต่างกันไป ขึ้นอยู่กับว่าการสมัครใช้บริการนั้นซื้อมาในตอนแรกหรือไม่ ผ่านระบบการเรียกเก็บเงินของ Google Play หรือผ่านระบบการเรียกเก็บเงินระบบอื่น
ส่วนเสริมที่ขึ้นอยู่กับการสมัครใช้บริการที่มีอยู่ ใช้วิธีการชำระเงินเดียวกัน
และปรับค่าใช้จ่ายตามรอบให้สอดคล้องกันเหมือนการอัปเกรด สำหรับส่วนเสริมอื่นๆ ผู้ใช้
ควรสามารถเลือกระบบการเรียกเก็บเงินที่ต้องการใช้ได้ เริ่มใหม่
ประสบการณ์การซื้อโดยใช้ launchBillingFlow()
ตามที่อธิบายไว้ในเปิดตัว
ขั้นตอนการเรียกเก็บเงินแบบให้ผู้ใช้ตัดสินใจ
การสมัครใช้บริการที่ซื้อผ่านระบบการเรียกเก็บเงินระบบอื่น
สำหรับการสมัครใช้บริการที่เคยซื้อผ่านนักพัฒนาแอป การเรียกเก็บเงินระบบอื่นหลังจากทางเลือกของผู้ใช้ ผู้ใช้ที่ขอการอัปเกรด หรือ การดาวน์เกรดควรดำเนินการผ่านระบบการเรียกเก็บเงินระบบอื่นของนักพัฒนาซอฟต์แวร์ โดยไม่ต้องผ่านประสบการณ์แบบให้ผู้ใช้ตัดสินใจอีก
หากต้องการดำเนินการดังกล่าว ให้โทรหา launchBillingFlow()
เมื่อผู้ใช้ขอให้อัปเกรด หรือ
ดาวน์เกรด แทนที่จะระบุออบเจ็กต์ SubscriptionUpdateParams
ใน
ให้ใช้ setOriginalExternalTransactionId
เพื่อระบุพารามิเตอร์
รหัสธุรกรรมสำหรับการซื้อครั้งแรก ตัวเลือกนี้ไม่แสดงผู้ใช้
หน้าจอตัวเลือก โดยที่ตัวเลือกของผู้ใช้สำหรับการซื้อเดิมจะยังคงอยู่
สำหรับการอัปเกรดและดาวน์เกรด การเรียกไปยัง launchBillingFlow()
ในกรณีนี้
สร้างโทเค็นธุรกรรมภายนอกใหม่สำหรับธุรกรรมที่คุณสามารถ
เรียกจาก Callback
Kotlin
// The external transaction ID from the current
// alternative billing subscription.
val externalTransactionId = //... ;
val billingFlowParams = BillingFlowParams.newBuilder()
.setProductDetailsParamsList(
listOf(
BillingFlowParams.ProductDetailsParams.newBuilder()
// Fetched via queryProductDetailsAsync.
.setProductDetails(productDetailsNewPlan)
// offerIdToken can be found in
// ProductDetails=>SubscriptionOfferDetails.
.setOfferToken(offerTokenNewPlan)
.build()
)
)
.setSubscriptionUpdateParams(
BillingFlowParams.SubscriptionUpdateParams.newBuilder()
.setOriginalExternalTransactionId(externalTransactionId)
.build()
val billingResult = billingClient.launchBillingFlow(activity, billingFlowParams)
// When the user selects the alternative billing flow,
// the UserChoiceBillingListener is triggered.
Java
// The external transaction ID from the current
// alternative billing subscription.
String externalTransactionId = //... ;
BillingFlowParams billingFlowParams =
BillingFlowParams.newBuilder()
.setProductDetailsParamsList(
ImmutableList.of(
ProductDetailsParams.newBuilder()
// Fetched via queryProductDetailsAsync.
.setProductDetails(productDetailsNewPlan)
// offerIdToken can be found in
// ProductDetails=>SubscriptionOfferDetails
.setOfferToken(offerTokenNewPlan)
.build()
)
)
.setSubscriptionUpdateParams(
SubscriptionUpdateParams.newBuilder()
.setOriginalExternalTransactionId(externalTransactionId)
.build()
)
.build();
BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams);
// When the user selects the alternative billing flow,
// the UserChoiceBillingListener is triggered.
เมื่อการอัปเกรดหรือดาวน์เกรดระบบการเรียกเก็บเงินระบบอื่นเสร็จสมบูรณ์แล้ว คุณต้องรายงานธุรกรรมใหม่โดยใช้โทเค็นธุรกรรมภายนอก ที่ได้รับจากการโทรครั้งก่อนสำหรับการซื้อการสมัครใช้บริการใหม่
การสมัครใช้บริการที่ซื้อผ่านระบบการเรียกเก็บเงินของ Google Play
ในทำนองเดียวกัน ผู้ใช้ที่ซื้อการสมัครใช้บริการปัจจุบันผ่าน ระบบการเรียกเก็บเงินหลังจากทางเลือกของผู้ใช้ควรแสดงขั้นตอนการอัปเกรดหรือดาวน์เกรด ในระบบการเรียกเก็บเงินของ Google Play คำแนะนำต่อไปนี้จะอธิบายวิธี คุณจะเปิดขั้นตอนการซื้อสำหรับการอัปเกรดหรือดาวน์เกรดผ่าน Google ระบบการเรียกเก็บเงินของ Play
- ระบุ
offerToken
ของข้อเสนอที่เลือกสำหรับแพ็กเกจใหม่ ดังนี้
val offerTokenNewPlan = productDetailsNewPlan
.getSubscriptionOfferDetails(selectedOfferIndex)
.getOfferToken()
String offerTokenNewPlan = productDetailsNewPlan
.getSubscriptionOfferDetails(selectedOfferIndex)
.getOfferToken();
- ส่งข้อมูลที่ถูกต้องไปยังระบบการเรียกเก็บเงินของ Google Play เพื่อประมวลผล การซื้อใหม่ รวมถึงโทเค็นการซื้อสำหรับการสมัครใช้บริการที่มีอยู่
val billingFlowParams =
BillingFlowParams.newBuilder().setProductDetailsParamsList(
listOf(
BillingFlowParams.ProductDetailsParams.newBuilder()
.setProductDetails(productDetailsNewPlan)
.setOfferToken(offerTokenNewPlan)
.build()
)
)
.setSubscriptionUpdateParams(
BillingFlowParams.SubscriptionUpdateParams.newBuilder()
.setOldPurchaseToken(oldToken)
.setReplaceProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_FULL_PRICE)
.build()
)
.build()
BillingClient.launchBillingFlow(activity, billingFlowParams)
BillingFlowParams billingFlowParams =
BillingFlowParams.newBuilder()
.setProductDetailsParamsList(
ImmutableList.of(
ProductDetailsParams.newBuilder()
// Fetched via queryProductDetailsAsync
.setProductDetails(productDetailsNewPlan)
// offerIdToken can be found in
// ProductDetails=>SubscriptionOfferDetails.
.setOfferToken(offerTokenNewPlan)
.build()
)
)
.setSubscriptionUpdateParams(
SubscriptionUpdateParams.newBuilder()
// purchaseToken can be found in
// Purchase#getPurchaseToken
.setOldPurchaseToken("old_purchase_token")
.setReplaceProrationMode(ProrationMode.IMMEDIATE_AND_CHARGE_FULL_PRICE)
.build()
)
.build();
BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams);
การซื้อนี้จะดำเนินการผ่านระบบการเรียกเก็บเงินของ Google Play และแอปของคุณจะได้รับ
การโทร PurchasesUpdatedListener.onPurchaseUpdated
ที่มีผลของ
การซื้อ หากการซื้อเสร็จสมบูรณ์ เมธอด onPurchaseUpdated()
ยัง
จะได้รับข้อมูลการซื้อใหม่ และแบ็กเอนด์ของคุณจะได้รับ
SUBSCRIPTION_PURCHASED
การแจ้งเตือนแบบเรียลไทม์สำหรับนักพัฒนาซอฟต์แวร์ เมื่อดึง
สถานะสำหรับการซื้อใหม่ แอตทริบิวต์ linkedPurchaseToken
จะลิงก์กับ
การซื้อการสมัครใช้บริการเพื่อให้คุณยกเลิกได้
แนะนำ
การยกเลิกและการกู้คืนการสมัครใช้บริการ
ผู้ใช้ควรยกเลิกการสมัครใช้บริการได้ทุกเมื่อ เมื่อผู้ใช้ ยกเลิกการสมัครใช้บริการ เลื่อนการสิ้นสุดการให้สิทธิ์ออกไปจนกว่า ระยะเวลาที่ชำระเงินแล้วจะสิ้นสุดลง เช่น หากผู้ใช้ยกเลิกการสมัครใช้บริการรายเดือน ในช่วงกลางเดือน ผู้ใช้อาจยังคงเข้าถึงบริการสำหรับ เหลืออีกประมาณ 2 สัปดาห์ก่อนที่ระบบจะนำสิทธิ์เข้าถึงของผู้ใช้ออก ในระหว่างนี้ การสมัครใช้บริการยังคงมีการใช้งานในทางเทคนิค ดังนั้นผู้ใช้จึงใช้บริการได้
เป็นเรื่องปกติที่ผู้ใช้จะตัดสินใจยกเลิกการยกเลิกในระหว่างช่วงเวลานี้ ระยะเวลาที่ใช้งานอยู่ ซึ่งในคู่มือนี้จะเรียกว่าการกู้คืน ดังต่อไปนี้ ส่วนนี้จะอธิบายวิธีจัดการกับสถานการณ์การกู้คืนในทางเลือกอื่น การผสานรวม Billing API
การสมัครใช้บริการที่ซื้อผ่านระบบการเรียกเก็บเงินระบบอื่น
หากคุณมีรหัสธุรกรรมภายนอกสำหรับการสมัครใช้บริการที่ถูกยกเลิก รหัสดังกล่าวไม่ใช่รหัสดังกล่าว
จำเป็นต้องเรียกใช้ launchBillingFlow()
เพื่อคืนค่าการสมัครใช้บริการ ดังนั้น
ไม่ควรใช้กับการเปิดใช้งานประเภทนี้ หากผู้ใช้กู้คืน
ขณะที่การสมัครใช้บริการที่ยังอยู่ในระยะเวลาของการสมัครใช้บริการที่ยกเลิกแล้วจะไม่มี
ธุรกรรมที่เกิดขึ้น ณ เวลานั้น คุณก็รายงานการต่ออายุต่อไปได้เมื่อ
รอบปัจจุบันจะหมดอายุและการต่ออายุครั้งถัดไปจะเกิดขึ้น ซึ่งรวมถึงกรณีที่
ผู้ใช้จะได้รับเครดิตหรือราคาการต่ออายุพิเศษในขั้นตอนการกู้คืน
(เช่น โปรโมชันเพื่อกระตุ้นให้ผู้ใช้สมัครใช้บริการต่อไป)
การสมัครใช้บริการที่ซื้อผ่านระบบการเรียกเก็บเงินของ Google Play
โดยทั่วไป ผู้ใช้จะคืนค่าการสมัครใช้บริการในระบบการเรียกเก็บเงินของ Google Play ได้ สำหรับ
การสมัครใช้บริการที่ยกเลิกซึ่งซื้อไว้ก่อนหน้านี้ในการเรียกเก็บเงินของ Google Play
ผู้ใช้อาจเลือกที่จะเลิกทำการยกเลิกขณะที่การสมัครใช้บริการ
ใช้งานผ่านฟีเจอร์สมัครอีกครั้งของ Google Play ในกรณีนี้
ได้รับการแจ้งเตือนSUBSCRIPTION_RESTARTED
แบบเรียลไทม์สำหรับนักพัฒนาซอฟต์แวร์ใน
แบ็กเอนด์ และจะไม่ออกโทเค็นการซื้อใหม่ โดยจะใช้โทเค็นเดิม
เพื่อดำเนินการสมัครใช้บริการต่อ ดูวิธีจัดการการกู้คืนใน Google
ระบบการเรียกเก็บเงินของ Play โปรดดูการกู้คืนในการจัดการการสมัครใช้บริการ
คุณยังทำให้เกิดการคืนค่าในระบบการเรียกเก็บเงินของ Google Play จากแอปได้
โดยโทรไปที่ launchBillingFlow()
โปรดดูก่อนที่การสมัครใช้บริการจะหมดอายุ -
ในแอป เพื่อดูคำอธิบายวิธีการ ในกรณีของผู้ใช้ที่ไป
ผ่านขั้นตอนทางเลือกของผู้ใช้สำหรับการซื้อครั้งแรก (ซึ่งถูกยกเลิกแต่
ยังคงทำงาน) ระบบจะตรวจหาตัวเลือกของผู้ใช้โดยอัตโนมัติ และแสดง
ของการกู้คืนการซื้อเหล่านี้ พวกเขาจะต้องยืนยัน
ซื้อการสมัครใช้บริการอีกครั้งผ่าน Google Play แต่ไม่จําเป็นต้องดําเนินการ
ผ่านขั้นตอนทางเลือกของผู้ใช้อีกครั้ง ออกโทเค็นการซื้อใหม่ให้ผู้ใช้
ได้ในกรณีนี้ แบ็กเอนด์จะได้รับข้อมูลแบบเรียลไทม์ SUBSCRIPTION_PURCHASED
การแจ้งเตือนสำหรับนักพัฒนาซอฟต์แวร์ และค่า linkedPurchaseToken
สำหรับการซื้อใหม่
สถานะจะถูกตั้งค่าเป็นในกรณีของการอัปเกรดหรือดาวน์เกรดด้วยการซื้อเดิม
โทเค็นสำหรับการสมัครใช้บริการที่ถูกยกเลิก
การสมัครรับข้อมูลซ้ำ
หากการสมัครรับข้อมูลหมดอายุลงโดยสมบูรณ์ ไม่ว่าจะเกิดจากการยกเลิกหรือ การปฏิเสธการชำระเงินโดยไม่กู้คืน (การระงับบัญชีหมดอายุ) ผู้ใช้ต้อง สมัครใช้บริการอีกครั้งหากต้องการเริ่มการให้สิทธิ์อีกครั้ง
การสมัครใช้บริการอีกครั้งยังเปิดใช้ผ่านแอปได้ด้วยการประมวลผลในทำนองเดียวกับ
การลงชื่อสมัครใช้มาตรฐาน ผู้ใช้ควรเลือกระบบการเรียกเก็บเงินที่ต้องการได้
ในการใช้กัน ในกรณีนี้ อาจมีการเรียก launchBillingFlow()
ตามที่อธิบายไว้ใน
เปิดขั้นตอนการเรียกเก็บเงินแบบให้ผู้ใช้ตัดสินใจ
ทดสอบการเรียกเก็บเงินระบบอื่น
ควรใช้ผู้ทดสอบใบอนุญาตเพื่อทดสอบการผสานรวมการเรียกเก็บเงินระบบอื่น คุณ จะไม่มีการออกใบแจ้งหนี้สำหรับธุรกรรมที่ดำเนินการโดยผู้ทดสอบใบอนุญาต บัญชี โปรดดูข้อมูลเพิ่มเติมที่ทดสอบการเรียกเก็บเงินสำหรับการซื้อในแอปด้วยการอนุญาตให้ใช้สิทธิแอปพลิเคชัน ข้อมูลเกี่ยวกับการกำหนดค่าผู้ทดสอบใบอนุญาต
ขั้นตอนถัดไป
เมื่อเสร็จสิ้นการผสานรวมในแอป คุณก็พร้อมที่จะผสานรวม แบ็กเอนด์