2015-01-15 36 views
7

Podaj mi sposób wdrożenia zakupów w aplikacji za pomocą wtyczki Cordova.Jak zaimplementować zakupy w aplikacji za pomocą wtyczki Cordova?

Zajmuję się tworzeniem aplikacji na Androida za pomocą Cordova. Istnieje kilka wtyczek do kupowania w aplikacji, ale zdecydowałem się użyć wtyczki Cordova Purchase.

Zrobiłem kilka ustawień wzdłuż README.md z In-App Purchase for PhoneGap/Cordova iOS and Android. W rezultacie mógłbym zadzwonić do wtyczki za pomocą Demo of the Purchase Plugin for Cordova z moją małą modyfikacją. (Patrz poniższy, to część kodu.)

app.initStore = function() { 

if (!window.store) { 
    log('Store not available'); 
    return; 
} 

// Enable maximum logging level 
store.verbosity = store.DEBUG; 

// Enable remote receipt validation 
// store.validator = "https://api.fovea.cc:1982/check-purchase"; 

// Inform the store of your products 
log('registerProducts'); 
store.register({ 
    id: 'myProductA', 
    alias: 'myProductA', 
    type: store.CONSUMABLE 
}); 

// When any product gets updated, refresh the HTML. 
store.when("product").updated(function (p) { 
    console.info("app.renderIAP is called"); 
    app.renderIAP(p); 
}); 

// Log all errors 
store.error(function(error) { 
    log('ERROR ' + error.code + ': ' + error.message); 
}); 

// When purchase of an extra life is approved, 
// deliver it... by displaying logs in the console. 
store.when("myProductA").approved(function (order) { 
    log("You got a ProductA"); 
    order.finish(); 
}); 

// When the store is ready (i.e. all products are loaded and in their "final" 
// state), we hide the "loading" indicator. 
// 
// Note that the "ready" function will be called immediately if the store 
// is already ready. 
store.ready(function() { 
    var el = document.getElementById("loading-indicator"); 
    console.info(el + "ready is called") 
    if (el) 
     el.style.display = 'none'; 
}); 

// When store is ready, activate the "refresh" button; 
store.ready(function() { 
    var el = document.getElementById('refresh-button'); 
    console.info(el + "ready is called and refresh-button show?"); 
    if (el) { 
     el.style.display = 'block'; 
     el.onclick = function(ev) { 
      store.refresh(); 
     }; 
    } 
}); 

// Refresh the store. 
// 
// This will contact the server to check all registered products 
// validity and ownership status. 
// 
// It's fine to do this only at application startup, as it could be 
// pretty expensive. 
log('refresh'); 
store.refresh(); 
}; 

To nie pokazują „Przechowywać niedostępne”, które pojawia się, gdy wtyczka nie jest dostępna, show „registerProducts” oraz „odświeżania”. (* Oczywiście dodałem "myProductA" do produktów w aplikacji w Google Play Developer Console.)

Ale zauważyłem, że poniższa funkcja nie jest wywoływana.

store.when("product").updated(function (p) 

A także nie mogłem zrozumieć, co parametr powinien wypełnić, więc skomentowałem poniżej. (* Zrobiłem usunąć komentarz na zewnątrz, ale to nadal nie działa.)

store.validator = "https://api.fovea.cc:1982/check-purchase"; 

Chyba te rzeczy zrobić coś złego. Nie jestem pewien, co jest u mnie, więc moje pytanie nie jest jednoznaczne. Potrzebuję wskazówek, aby go rozwiązać ... lub nie powinienem realizować zakupów w aplikacji za pomocą wtyczki Cordova?

Proszę, podaj mi rękę.

(nie jestem biegły w języku angielskim, więc przepraszam za zamieszanie.)

+1

Istnieje dokumentacja dotycząca funkcji sprawdzania poprawności [tutaj] (https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#validator).Obecnie autor wtyczki cordova wydaje się zapewniać darmowy sposób na ważność zakupionego przedmiotu, ale nadal nie jest dla mnie jasne, czy jego usługa naprawdę działa (w prywatnej wersji beta zgodnie ze swoją witryną) i jakiego rodzaju informacji ta usługa ma dostęp do. – antogerva

+0

@antogerva Dziękuję za komentarz. Przeoczyłem link, o którym wspomniałeś. I wygląda na pomocne, dzięki. W każdym razie, w końcu zrezygnowałem z używania tej wtyczki, a także zaimplementowałem funkcję "w zakupie aplikacji" na platformie cordova. To jest dla mnie zbyt trudne.haha – tkhm

+0

witam wszystkich proszę pomóż mi. Oto moje pytanie http://stackoverflow.com/questions/38657305/android-in-app-purchase-not-working –

Odpowiedz

5

Można spróbować tej wtyczki jako alternatywę: https://github.com/AlexDisler/cordova-plugin-inapppurchase

Oto przykład produktów załadunku i dokonanie zakupu:

inAppPurchase 
    .buy('com.yourapp.consumable_prod1') 
    .then(function (data) { 
    // ...then mark it as consumed: 
    return inAppPurchase.consume(data.productType, data.receipt, data.signature); 
    }) 
    .then(function() { 
    console.log('product was successfully consumed!'); 
    }) 
    .catch(function (err) { 
    console.log(err); 
    }); 

Obsługuje zarówno Android i iOS.

+0

Dzięki, Alex! Przeczytałem link i [twój blog] (https://alexdisler.com/2016/02/29/in-app-purchases-ionic-cordova/). Wygląda naprawdę świetnie, dziękuję! – tkhm

1

Krok za Zintegruj Rozliczenia w aplikacji w aplikacji Telefon szczelinie.

1 >> sklonować ten projekt w komputerze z tego linku In-App billing Library

2 >> wykorzystaniem CMD przejdź do katalogu głównego aplikacji PhoneGap

3 >> uruchom polecenie Cordova dodać plugin/ścieżka/do/pliku/sklonowanego projekt --variable BILLING_KEY = „QWINMERR .......... RIGR”

Uwagi: dla BILLING_KEY przejść do konsoli programisty następnie otworzyć aplikację i przejść do serwisu & Interfejsy API, aby uzyskać więcej informacji Zobacz załączone zrzuty ekranu BILLING_KEY

Powiązane problemy