1.3.0 • Published 11 months ago

@devsomersets/react-native-rustore-iap v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

React Native RuStore IAP

Данная библиотека является оберткой над RuStore SDK

Установка

npm install @devsomersets/react-native-rustore-iap
android/build.gradle

allprojects {
    repositories {
        ...
        maven {
            url("https://artifactory-external.vkpartner.ru/artifactory/maven")
        }
    }
}

android/app/build.gradle

dependencies {
    ...
    implementation("ru.rustore.sdk:billingclient:1.1.1")
}

При разработке локально дебаг билд нужно подписывать тем кейстором, который использовался при загрузке приложения в RuStore Console.

Для корректной установки pod'ов нужно установить зависимость в modular_headers => false

pod 'react-native-rustore-iap', :podspec => '../node_modules/react-native-rustore-iap/react-native-rustore-iap.podspec', :modular_headers => false

Expo plugin

Поддержка Managed проектов Expo c expo-config-plugin

app.json
...
"plugins": [
      ["@devsomersets/react-native-rustore-iap"],
      ["expo-build-properties",
      {
        "android": {
          "minSdkVersion": 23
        }
      }
    ]],
...

Проверка доступности работы с платежами

Для проверки доступности платежей вызовите метод checkRuStorePurchasesAvailability.

При его вызове проверяются следующие условия:

  1. На устройстве пользователя должен быть установлен RuStore.

  2. RuStore должен поддерживать функциональность платежей.

  3. Пользователь должен быть авторизован в RuStore.

  4. Пользователь и приложение не должны быть заблокированы в RuStore.

  5. Для приложения должна быть включена возможность покупок в системе RuStore Консоль.

Использование

import { initializeRuStore, checkRuStoreAvailable } from '@devsomersets/react-native-rustore-iap';
import { useEffect } from 'react';
import { View } from 'react-native';

const YOUR_APP_ID: string = "YOUR_RUSTORE_CONSOLE_APP_ID";

function App() {
  useEffect(() => {
    initializeRuStore(YOUR_APP_ID);
    checkRuStoreAvailable().then((isAvailable) => {
      if (typeof isAvailable === "string") {
        // handle error
        // (https://help.rustore.ru/rustore/for_developers/developer-documentation/sdk_payments/SDK-connecting-payments/Error-processing)
      } else {
        // isAvailable will be true
      }
    })

  }, []);

  return <View />;
}

Инициализация модуля

import { initializeRuStore } from '@devsomersets/react-native-rustore-iap';

initializeRuStore(YOUR_CONSOLE_APP_ID);

Проверка доступности работы

import { checkRuStoreAvailable } from '@devsomersets/react-native-rustore-iap';

const isRuStoreAvailable: Boolean | String = await checkRuStoreAvailable();

Обработка ошибок (https://help.rustore.ru/rustore/for_developers/developer-documentation/sdk_payments/SDK-connecting-payments/Error-processing)

Получение актуальной информации по списку продуктов

Для получения списка продуктов используйте метод getProducts:

import { getRuStoreProducts } from '@devsomersets/react-native-rustore-iap';

const products: RuStoreProduct[] = await getRuStoreProducts(productsIds: String[]);

Получение списка покупок пользователя

import { getRuStorePurchases } from '@devsomersets/react-native-rustore-iap';

const products: RuStorePurchase[] = await getRuStorePurchases();

Покупка продукта

import { purchaseRuStoreProduct } from '@devsomersets/react-native-rustore-iap';

const purchaseResult: PaymentResult | InvalidPurchaseResult = await purchaseRuStoreProduct(product: RuStoreProduct, developerPayload?: string);

Потребление покупки

import { confirmRuStorePurchase } from '@devsomersets/react-native-rustore-iap';

const confirmResponse: ConfirmPurchaseResponse = await confirmRuStorePurchase(purchaseId: string, developerPayload?: string);

Отмена покупки

import { deleteRuStorePurchase } from '@devsomersets/react-native-rustore-iap';

const deletePurchaseResponse: DeletePurchaseResponse = await deleteRuStorePurchase(purchaseId: string);

Сценарий потребления и отмены покупки

https://help.rustore.ru/rustore/for_developers/developer-documentation/sdk_payments/SDK-connecting-payments/%20consumption-and-withdrawal

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library

1.2.0

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.3.0

11 months ago

0.9.6

11 months ago

0.9.5

1 year ago

0.9.4

1 year ago

0.9.3

1 year ago

0.9.2

1 year ago

0.9.1

1 year ago