2015-01-15 13 views
7

Bitte sagen Sie mir, wie Sie den In-App-Kauf mit Cordova Plugin implementieren können.Wie implementiert man In-App-Kauf mit Cordova Plugin?

Ich entwickle Android-Anwendung mit Cordova. Es gibt einige In-App-Kauf-Plugins, aber ich entscheide mich für Cordova Purchase Plugin.

Ich habe einige Setups zusammen mit README.md von In-App Purchase for PhoneGap/Cordova iOS and Android. Als Ergebnis konnte ich das Plugin mit Demo of the Purchase Plugin for Cordova mit meiner kleinen Modifikation aufrufen. (Siehe folgende, es ist ein Teil des Codes ist.)

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(); 
}; 

Es zeigte sich nicht ‚Filiale nicht verfügbar‘, die angezeigt wird, wenn Plugin nicht verfügbar ist, zeigen ‚registerProducts‘ und ‚Refresh‘. (* Natürlich habe ich "MyProductA" zu In-App-Produkten auf Google Play Developer Console hinzugefügt.)

Aber ich habe festgestellt, dass die unten genannte Funktion nicht aufgerufen wird.

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

Und auch ich konnte nicht verstehen, was der Parameter darin füllen sollte, so kommentierte ich die unten. (* entferne ich habe den Kommentar, aber es funktioniert immer noch nicht.)

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

Ich denke, diese Dinge etwas falsch machen. Ich bin mir nicht sicher, was Stack auf mir ist, also ist meine Frage nicht klar. Ich möchte einige Hinweise, um es zu lösen ... oder ich sollte nicht in-App-Kauf mit Cordova-Plugin implementieren?

Bitte geben Sie mir Ihre Hand.

(Ich bin nicht fließend Englisch, so tut mir leid für die Verwirrung.)

+1

Es gibt einige Dokumentation über die Validator-Funktion [hier] (https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#validator).Derzeit scheint der Autor des Cordova-Plugins eine freie Möglichkeit zu bieten, einen gekauften Artikel zu validieren, aber es ist mir immer noch unklar, ob sein Service wirklich funktioniert (aktuell in der privaten Betaversion seiner Website) und welche Art von Informationen dieser Dienst hat zu. – antogerva

+0

@antogerva Vielen Dank für Ihren Kommentar. Ich habe den Link, den du erwähnt hast, übersehen. Und es sieht hilfreich aus, danke. Letztendlich habe ich es aufgegeben, dieses Plugin zu verwenden und auch die Funktion "in App Purchase" auf cordova framework zu implementieren. Es ist zu schwierig für mich.haha – tkhm

+0

hallo jeder bitte helfen Sie mir.hier ist meine Frage bitte http://stackoverflow.com/questions/38657305/android-in-app-purchase-not-working –

Antwort

5

Sie können dieses Plugin als Alternative versuchen: https://github.com/AlexDisler/cordova-plugin-inapppurchase

Hier ist ein Beispiel für Lade Produkte und einen Kauf:

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); 
    }); 

Es unterstützt sowohl Android und iOS.

+0

Danke, Alex! Ich lese den Link und [Ihr Blog] (https://alexdisler.com/2016/02/29/in-appurchases-ionic-cordova/). Es sieht wirklich toll aus, danke! – tkhm

1

Schritt für Integrieren In-App-Abrechnung in Telefon-Lücke App.

1 >> klonen dieses Projekt in Ihrem PC von diesem Link In-App billing Library

2 >> mit CMD gehen Sie zu Ihrem Stammverzeichnis Ihrer phonegap Anwendung

3 >> dann diesen Befehl ausführen cordova Plugin hinzufügen/path/Ihr/geklonte Projekt --variable BILLING_KEY zu/= "QWINMERR .......... RIGR"

Hinweise: für BILLING_KEY zu Entwickler-Konsole gehen dann Ihre Anwendung öffnen und & auf Service gehen APIs für weitere Informationen Bitte beachten Sie die beigefügten Screenshots BILLING_KEY

Verwandte Themen