1 min read

React Native Google Play Uygulama içi Satın Alma

Android Uygulamalarımız üzerinden Google Play üzerinden satış ve abonelik işlemleri yapmamız için react-native-iap kütüphanesini uygulamamıza entegre edelim entegre etmek için aşağıdaki kodu kullanabilirsiniz.

import * as RNIap from 'react-native-iap';

en çok karşılaşılan hata olan "PROMISE_BUY_ITEM The sku was not found. Please fetch products first by calling getItems" hatasından kurtulmak için aşağıdaki kodu kendi uygulamanıza geçirerek sorunsuz kullanabilirsiniz ama kodu vermeden önce bu hatanın neden kaynaklandığına bakalım kütüphanenin eski dosyaları ile güncellenmiş dosyaları arasında bir uyuşmazlık olduğundan maalesef bu hata ile karşılaşıyoruz eski versiyon ile çalışırsanız hiçbir sorun olmadan kullanabilirsiniz tabi kütüphane sahiplerinin desteği kesmesi durumunda tekrar güncel sürüm gerekli bu yüzden en son sürümdeki sorunu çözüp kullanmakta fayda var. Uzatmadan entregrasyona geçelim.

Kütüphaneyi Import et

import * as RNIap from 'react-native-iap';

Sayfamızdaki componentDidMount methoduna aşağdıaki kodu ekleyelim

async componentDidMount() {     try {          const products: Product[] = await RNIap.getProducts(itemSkus);          const getsub: Subscription[] = await RNIap.getSubscriptions(itemSkus);          this.setState({ getsub });      } catch(err) {          console.warn(err); // standardized err.code and err.message available      }        }

duruma göre async ve await kodlarını silebilirsiniz

State'imizi aşağıdaki kod gibi düzenliyoruz didmount methodunda yapılacaklar bu state elemanlar içinde depolanacak.

state= {        products:[],        getsub:[],        count:0,        listprice:0,        selectedItem:'none'    }

Şimdi kendimiz satın alma işlemlerini yapabileceğimiz bir method oluşturmak ben bu methoda requestPurchase ismini verdim sizde bir method oluşturarask aşağıdaki kodu methodunuzun içine kopyalayabilirsiniz.

 requestPurchase = async (sku: string) => {      try {          await RNIap.requestPurchase(sku, false)          .then((purchase)=>{            console.log(purchase.purchaseToken)            RNIap.finishTransaction(purchase, true);            this.setState({ count:this.state.count+1 });              })                    });      } catch (err) {          console.warn(err.code, err.message);      }  }

simdi herşey tamam tek yapmamız gereken bir buton veya başka bir tetikleyici ile yazdığımız kodu aktifleştirmede android için kullanılan ve google play'in test olarak kullanması için oluşturduğu android.test.purchased kodu ile uygulamamızı test edelim

this.requestPurchase("android.test.purchased")

bu şekilde tüm adımları yaptığınızda kütüphaneyi sorunsuz olarak kullanabilirsiniz umarım yadrımcı olabilmişimdir iyi çalışmalar dilerim