2016-05-16 2 views

Répondre

0

semble que vous avez des achats inachevés que vous avez besoin pour terminer.

Les achats resteront dans un état en attente jusqu'à ce que les appels de votre application se terminent sur eux. Ceci permet de s'assurer que votre application traite et vérifie un achat.

Vous devez appeler InAppBilling.service.finishPurchase lorsque vous avez processus d'achat et soit livré le produit ou manutentionnés l'annulation/échec:

https://gist.github.com/marchbold/851359b9e456e1a85d65#file-distriqt-extension-inappbilling-makepurchase-as

private function purchase_cancelledHandler(event:PurchaseEvent):void 
{ 
    // This transaction was cancelled so you should notify your user and finish the purchase 
    trace("purchase cancelled" + event.errorCode); 
    if (event.data && event.data.length > 0) 
     InAppBilling.service.finishPurchase(event.data[0]); 
} 

Au démarrage, vous pouvez récupérer les achats en attente après la SETUP_SUCCESS événement:

private function setupSuccessHandler(event:InAppBillingEvent):void 
{ 
    var pending:Array = InAppBilling.service.getPendingPurchases(); 
    // Iterate over and handle as required 
} 

http://docs.airnativeextensions.com/inappbilling/docs/com/distriqt/extension/inappbilling/InAppBilling.html#getPendingPurchases()

+0

Est-ce que getPendingPurchases() effacera la liste en attente sur le serveur? –

+0

Non, il ne les effacera pas jusqu'à ce que vous appeliez finishPurchase sur le résultat d'achat en attente. – Michael

+0

Je fais ceci dans le succès d'installation, mais l'appel de getProducts semble se bloquer sur un id de produit valide (aucun événement tiré) 'var en attente: Array = InAppBilling.service.getPendingPurchases(); \t \t \t pour chaque (var achat: Achat en attente) { \t InAppBilling.service.finishPurchase (achat); } InAppBilling.service.getProducts ([IAP_PRODUCT_ID]) ' –