2015-01-15 3 views
7

Скажите, пожалуйста, как реализовать покупку в приложении с помощью плагина Cordova.Как реализовать покупку в приложении с помощью плагина Cordova?

Я разрабатываю приложение для Android с использованием Cordova. Есть некоторые плагины для подключения к приложениям, но я решил использовать плагин Purchase Cordova.

Я сделал некоторые настройки вдоль README.md из In-App Purchase for PhoneGap/Cordova iOS and Android. В результате я мог бы вызвать плагин, используя Demo of the Purchase Plugin for Cordova с моей небольшой модификацией. (См следующее, это часть кода.)

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

Он не показывал «магазин не доступен», который отображается, когда плагин не доступен, шоу «registerProducts» и 'обновления. (* Конечно, я добавил «myProductA» в приложения для приложений в консоли разработчика Google Play.)

Но я заметил, что функция ниже не вызывается.

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

А также я не мог понять, что этот параметр должен заполнить, поэтому я прокомментировал ниже. (* я удалить комментарий, но он по-прежнему не работает.)

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

Я предполагаю, что эти вещи делают что-то неправильно. Я не уверен, что у меня на стеке, поэтому мой вопрос непонятен. Я хочу, чтобы некоторые подсказки разрешили его ... или я не должен реализовывать покупку через приложение с помощью плагина Cordova?

Прошу вас, протяните мне руку.

(я не владеет английским языком, поэтому я извиняюсь за путаницу.)

+1

Существует документация о функции валидатора [здесь] (https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#validator).В настоящее время автор плагина cordova, похоже, предоставляет свободный способ действительного купленного товара, но мне все еще неясно, работает ли его сервис (currenlty в приватной бета-версии в соответствии с его сайтом) и какая информация у этой службы имеет доступ к. – antogerva

+0

@antogerva Спасибо за ваш комментарий. Я упустил ссылку, о которой вы говорили. И это выглядит полезным, спасибо. Во всяком случае, в конце концов я отказался использовать этот плагин, а также реализовал функцию «в приложении покупки» на кордовой основе. Это слишком сложно для меня.haha – tkhm

+0

привет всем, пожалуйста, помогите мне.Есть мой вопрос, пожалуйста, http://stackoverflow.com/questions/38657305/android-in-app-purchase-not-working –

ответ

5

Вы можете попробовать этот плагин в качестве альтернативы: https://github.com/AlexDisler/cordova-plugin-inapppurchase

Вот пример загрузки продуктов и сделать покупку:

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

Он поддерживает Android и IOS.

+0

Спасибо, Алекс! Я прочитал ссылку и [ваш блог] (https://alexdisler.com/2016/02/29/in-app-purchases-ionic-cordova/). Это выглядит великолепно, спасибо! – tkhm

1

Шаг за Интегрировать In-App биллинга в Phone-приложение зазора.

1 >> клонировать этот проект в вашем компьютере по этой ссылке In-App billing Library

2 >> с помощью CMD перейти в корневую директорию вашего приложения PhoneGap

3 >> Затем запустите эту команду Cordova плагин добавить/путь/к/вашему/клонированному проект --variable BILLING_KEY = «QWINMERR .......... RIGR»

Примечание: для BILLING_KEY перейти к консоли разработчика откройте приложение и перейдите к службе & API для получения дополнительной информации Пожалуйста, обратитесь к прилагаемым скриншотам BILLING_KEY

Смежные вопросы