实现待定购买
如果Amazon Kids中儿童个人资料的用户在应用或游戏内请求应用内购买(IAP),就会发生待定购买。在儿童请求应用内购买之后,会向家长发送一条通知。然后家长可以通过家长控制面板批准或拒绝购买。在等待批准时,购买将处于待定状态。如果家长批准了请求,您的应用就可以交付IAP。有关待定购买流程运作方式的详细信息,请参阅待定购买。
消费品和权利应用内购买支持待定采购状态。订阅IAP不支持待定状态。
要启用待定购买,您的应用必须在发起购买之前的任何时间点调用PurchasingService.enablePendingPurchases()
方法。当客户发起待定IAP时,所得的PurchaseResponse
对象将具有状态为PENDING
的RequestStatus
。以下代码展示了如何设定待定IAP的示例。
在您的活动类中:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PurchasingService.registerListener(...);
// 需要为您的应用调用enablePendingPurchases,以接收状态为PENDING的RequestStatus
PurchasingService.enablePendingPurchases();
}
@Override
public void onResume() {
super.onResume();
PurchasingService.getPurchaseUpdates(...);
}
void requestInAppPurchase() {
PurchasingService.purchase(...)
}
}
在您的PurchasingListener
实现中:
class MyListener implements PurchasingListener {
public void onPurchaseResponse(final PurchaseResponse response) {
if (response.getRequestStatus() == PurchaseResponse.RequestStatus.PENDING) {
// 您可以在这里中断,不做任何操作,或者显示一个指示请求挂起的模式。
// 在向您的应用返回答复之前,亚马逊应用商店也会向用户显示一种模式,
// 指示请求处于待定状态。
}
}
// ...
}
在Fire设备上,如果购买得到批准,客户会收到系统发出的通知。因此,务必要监测购买请求状态。您必须使用实时通知(RTN)或定期调用getPurchaseUpdates()
,以便接收有关购买状态的通知并履行购买。有关如何实现getPurchaseUpdates()
的详细信息,请参阅实现getPurchaseUpdates方法。
如果购买得到批准,RequestStatus
则会更新为SUCCESSFUL
,然后您的应用将遵照成功交易的常规逻辑。如果采购处于未获得批准的状态,例如家长拒绝购买,或者让购买请求过期,您的应用不需要采取进一步的操作。如果未获得批准,在您调用getPurchaseUpdates()
时,不会有来自RTN的通知,也不会有新的交易。
若需查看实现消费品待定购买的示例应用,请转到SDK中的以下路径: Appstore_SDK_<version>/examples/SampleIAPConsumablesApp
。
若需查看实现权利待定购买的示例应用,请转到SDK中的以下路径: Appstore_SDK_<version>/examples/SampleIAPEntitlementsApp
。
相关资源
Last updated: 2024年5月22日