В app-purchase2 платная подписка 'проблема iap.owned' - PullRequest
0 голосов
/ 27 сентября 2019

У меня проблема с покупкой приложения, когда я покупаю премиум-доступ, я получаю одобрение, и перевод работает, но позже, когда я пытаюсь войти в премиум-раздел, приложение застревает, и иногда оно автоматически переходит в премиум-раздел, но я хочучто произойдет, когда я нажму на кнопку.Это мой код, действительно нужно немного помочь здесь ... спасибо.

setuppremium() {
    this.iap2.verbosity = this.iap2.DEBUG;
    this.iap2.register({
      id: 'id1234',
      type: this.iap2.PAID_SUBSCRIPTION
    });
    this.product = this.iap2.get('id1234');
    this.registerHandlersForPurchase('id1234');
    // restore purchase
    this.iap2.refresh();
  }

  checkout() {
    this.registerHandlersForPurchase('id1234');
    try {
      let product = this.iap2.get('id1234');
      console.log('Product Info: ' + JSON.stringify(product));
      this.iap2.order('id1234').then((p) => {
        console.log('Purchase Succesful' + JSON.stringify(p));
      }).catch((e) => {
        console.log('Error Ordering From Store' + e);
      });
    } catch (err) {
      console.log('Error Ordering ' + JSON.stringify(err));
    }
  }

  registerHandlersForPurchase(productId) {
    let self = this.iap2;
    this.iap2.when(productId).updated(function (product) {
      if (product.loaded && product.valid && product.state === self.APPROVED && product.transaction != null) {
        product.finish();
      }
    });
    this.iap2.when(productId).registered((product: IAPProduct) => {
    });
    this.iap2.when(productId).owned((product: IAPProduct) => {
      this.router.navigate(['/premium']);
    });
    this.iap2.when(productId).approved((product: IAPProduct) => {
      product.finish();
    });
    this.iap2.when(productId).refunded((product: IAPProduct) => {
    });
    this.iap2.when(productId).expired((product: IAPProduct) => {
      // alert('expired');
    });
    this.iap2.when(productId).cancelled((product: IAPProduct) => {
      this.showpremiumCancel();
    });
  }

В HTML-коде, когда я нажимаю на кнопку, я вызываю функцию checkout (), а в конструкторе (platform.ready) я вызываю setuppremium ().Я не понимаю, что не так с моим кодом, нужна помощь, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...