0.1.2 • Published 2 years ago

@yandex-pay/react-native-sdk v0.1.2

Weekly downloads
-
License
PROPRIETARY
Repository
github
Last release
2 years ago

@yandex-pay/react-native-sdk

Установка

npm install @yandex-pay/react-native-sdk

iOS

  • Настройте YandexLoginSDK согласно инструкции
  • Добавьте следующие вызовы в свой файл AppDelegate.mm:
#import <YandexPaySDK/YandexPaySDK-Swift.h>

// [...]

#pragma mark - YandexPay

- (void)application:(UIApplication *)application didUpdateUserActivity:(NSUserActivity *)userActivity {
  if (YandexPaySDKApi.isInitialized) {
    [[YandexPaySDKApi instance] applicationDidReceiveUserActivity:userActivity];
  }
}

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
  if (YandexPaySDKApi.isInitialized) {
    [[YandexPaySDKApi instance] applicationDidReceiveOpen:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
  }
  return YES;
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
  if (YandexPaySDKApi.isInitialized) {
    [[YandexPaySDKApi instance] applicationWillEnterForeground];
  }
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
  if (YandexPaySDKApi.isInitialized) {
    [[YandexPaySDKApi instance] applicationDidBecomeActive];
  }
}

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

Инициализация СДК :

import { YandexPay } from '@yandex-pay/react-native-sdk';

// Убедитесь, что сдк YandexPay инициализирована только один раз за время жизни приложения
export default function App() {
  const [result, setResult] = React.useState<string | undefined>();

  React.useEffect(() => {
    YandexPay.initialize({
      merchant: {
        id: 'id',
        name: 'name',
        url: ''
      }
    }).then(() => setResult('success'), (err) => setResult(err.toString()))
  }, []);

  // [...]
}

Установка кнопки YandexPay:

import { YandexPayCheckoutButton, CurrencyCode } from '@yandex-pay/react-native-sdk';

const paymentSheet = {
  currencyCode: CurrencyCode.Rub,
  cart: {
      items: [
          {
              id: 'id',
              total: 'total',
              quantity: {
                  count: '1',
              },
          },
      ],
  },
  orderId: 'order-id',
  metadata: 'metadata',
}

return <YandexPayCheckoutButton
  theme='dark'
  paymentSheet={paymentSheet}
  onCheckoutSuccess={(result) => {
    Alert.alert('Success!', `Checkout finished successfully - <${JSON.stringify(result)}>`)
  }}
  onCheckoutAbort={() => {
    Alert.alert('Cancelled!', 'Checkout has been cancelled by user')
  }}
  onCheckoutError={(error) => {
    Alert.alert('Error!', `Checkout finished with error - <${JSON.stringify(error)}>`)
  }}
  style={styles.button}
/>

// [...]

const styles = StyleSheet.create({
  button: {
    width: 300,
    height: YandexPayCheckoutButton.Constants.DefaultHeight
  }
});

Лицензия

PROPRIETARY


Made with create-react-native-library