Skip to content

Library for implement Yookassa Checkout functionality on React Native environment

License

Notifications You must be signed in to change notification settings

Qudaeo/react-native-yookassa

 
 

Repository files navigation

Yookassa Checkout on React Native

Android library: 6.7.0

iOS library: 6.17.0

Install

yarn

yarn add react-native-yookassa

npm

npm install react-native-yookassa --save

Usage

import YandexPayment, { Shop, Payment, PaymentToken } from 'react-native-yookassa';

const shop: Shop = {
    id: 'SHOP_ID',
    token: 'test_SHOP_TOKEN',
    name: 'Shop name',
    description: 'Shop description',
}
const payment: Payment = {
    amount: 399.99,
    currency: 'RUB', // 'RUB' | 'USD' | 'EUR'
    types: ['BANK_CARD'], // 'YANDEX_MONEY' | 'BANK_CARD' | 'SBERBANK' | 'PAY'. PAY - means Google Pay or Apple Pay
    yooKassaClientId: 'SHOP_ID',
    savePaymentMethod: 'OFF', // 'ON' | 'OFF' | 'USER_SELECTS'
}

try {
  const paymentToken: PaymentToken = await YandexPayment.show(shop, payment)
  console.warn(paymentToken.token) // payment token
  console.warn(paymentToken.type) // payment method type

// send token to your backend and get requestUrl for payment confirmation
// const requestUrl = <FETCH_FROM_BACKEND>

  await YandexPayment.show3ds(requestUrl, paymentToken.type)

  YandexPayment.close()
} catch (e) {
  console.error('Payment error')
}

Android

minSdkVersion = 24

  1. Add file android/app/src/main/res/xml/ym_network_security_config.xml
<domain-config cleartextTrafficPermitted="true">
  <domain includeSubdomains="true">certs.yoomoney.ru</domain>
</domain-config>
  1. Add line in android/app/src/main/AndroidManifest.xml
    <application
       ...
+      android:networkSecurityConfig="@xml/ym_network_security_config"
       ...
    />
  1. Add file android/app/src/debug/res/xml/network_security_config.xml
<network-security-config>
  <base-config cleartextTrafficPermitted="true" />
</network-security-config>
  1. Add lines in android/app/src/debug/AndroidManifest.xml
    <application
       ...
+      android:networkSecurityConfig="@xml/network_security_config"
+      tools:replace="android:networkSecurityConfig"
       ...
    />
  1. For SBP payments add your unique app schema in android/app/src/main/res/values/string.xml Details see on git.yoomoney.ru
<resources>
    ...
+    <string name="ym_app_scheme" translatable="false">exampleapp</string>
    ...
</resources>

iOS

Min CocoaPods version: 1.13.0

Min iOS version: 14.0

  1. Add dependency in ios/Podfile
source 'https://github.com/CocoaPods/Specs.git'
source 'https://git.yoomoney.ru/scm/sdk/cocoa-pod-specs.git'

...

platform :ios, '14.0'
use_frameworks!

...

target 'MyApp' do
  pod 'YooKassaPayments',
   :build_type => :dynamic_framework,
   :git => 'https://git.yoomoney.ru/scm/sdk/yookassa-payments-swift.git',
   :tag => '6.17.0'

# ... other dependencies

end
  1. Install pods in ios
pod install

About

Library for implement Yookassa Checkout functionality on React Native environment

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 26.1%
  • Kotlin 25.3%
  • Swift 15.9%
  • Java 10.1%
  • JavaScript 8.8%
  • Objective-C 7.3%
  • Other 6.5%