покупка в приложении cordova возвращает недействительный продукт

#ios #ionic-framework #in-app-purchase #cordova-plugins

#iOS #ионный фреймворк #покупка в приложении #cordova-плагины

Вопрос:

Я следую руководству по реализации покупки в приложении в ионном приложении, и я получаю следующее предупреждение:

InAppPurchase[js]: загрузка ок: {допустимо: [] недопустимо: [«productname»,»productname»] } [store.js ] ОТЛАДКА: ios -> загруженные продукты [store.js ] ОТЛАДКА: состояние: comionicheathenwws -> недопустимое недопустимое имя продукта [store.js ] ПРЕДУПРЕЖДЕНИЕ: ios -> product productname НЕ являетсядействительный (productname)

 import { Component, OnInit } from '@angular/core';
import { Platform } from '@ionic/angular';
import { InAppPurchase2, IAPProduct } from '@ionic-native/in-app-purchase-2/ngx';

const PRODUCT = 'productname';
const PRODUCT1 = 'productname';

@Component({
  selector: 'app-upgrade',
  templateUrl: './upgrade.page.html',
  styleUrls: ['./upgrade.page.scss'],
})
export class UpgradePage implements OnInit {
  products: IAPProduct[] = [];

  constructor(public platform: Platform, private store: InAppPurchase2) { }

  ngOnInit() {
    this.store.verbosity = this.store.DEBUG;
    this.registerProducts();
    this.setupListeners();
    this.products = this.store.products;
    console.log('products', JSON.stringify(this.products));
  }

  registerProducts() {
    this.store.register({
      id: PRODUCT,
      type: this.store.NON_RENEWING_SUBSCRIPTION
    });

    this.store.register({
      id: PRODUCT1,
      type: this.store.NON_RENEWING_SUBSCRIPTION
    });

    this.store.refresh();
  }

  setupListeners() {

    // Register purchase
    this.store.when('product')
      .registered((product: IAPProduct) => {
        if (product.id === PRODUCT) {
          console.log('Register PRODUCT');
        } else if (product.id === PRODUCT1) {
          console.log('Register PRODUCT1');
        }
      });

  
    // Approved purchase
    this.store.when('product')
      .approved((product: IAPProduct) => {
        if (product.id === PRODUCT) {
          console.log('approved PRODUCT');
        } else if (product.id === PRODUCT1) {
          console.log('approved PRODUCT1');
        }
        return product.verify();
      }).verified((productVerified: IAPProduct) => {
        productVerified.finish();
      });

    // finished purchase
    this.store.when('product')
      .finished((product: IAPProduct) => {
        if (product.id === PRODUCT) {
          console.log('finished PRODUCT');
        } else if (product.id === PRODUCT1) {
          console.log('finished PRODUCT1');
        }
      });
  }
} 

Я использую «cordova-plugin-purchase»: «^ 9.0.0», 10.0 не будет работать.

Я запускаю приложение из эмулятора ios, чтобы получить эту ошибку.

Комментарии:

1. вы когда-нибудь находили ответ на этот вопрос?

Ответ №1:

Ваш код выглядит нормально. Проверьте свой идентификатор boundle, чтобы убедиться, что он совпадает с идентификатором, который вы используете в своем appleconnect. Из-за этого я столкнулся с этой проблемой.