npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-cloudpayments-sdk

v2.5.3

Published

CloudPayments SDK for React Native

Downloads

85

Readme

CloudPayments SDK for React Native

CloudPayments SDK позволяет интегрировать прием платежей в мобильные приложение.

Требования:

  1. Для работы CloudPayments SDK необходим iOS версии 11.0 и выше.

  2. Для работы CloudPayments SDK необходим Android версии 7.0 или выше, и следующие зависимости (API level 24)

    минимальные версии окружения: compileSdkVersion 33, build:gradle 7.3.1, ndkVersion 21.4.7075529

Установка

yarn add react-native-cloudpayments-sdk

или

npm install react-native-cloudpayments-sdk

Android

  • добавьте Yandex Client ID в android/app/build.gradle, для Yandex Pay (если Yandex Pay не используется, добавльте пустое значение)
android {
    ...
    defaultConfig {
       ...
       manifestPlaceholders = [
               YANDEX_CLIENT_ID: ""
       ]
		...
   	}
   	...
}
  • Чтобы включить Google Pay в приложении, добавьте следующие метаданные в тег <application> файла AndroidManifest.xml.
<meta-data
  android:name="com.google.android.gms.wallet.api.enabled"
  android:value="true" />
  • Чтобы использовать экран для подтверждения оплаты, добавьте activity в тег <application> файла AndroidManifest.xml.
<activity
  android:name="com.reactnativecloudpayments.ThreeDSecureActivity"
/>
  • В файле /android/build.gradle в разделе allprojects -> repositories добавьте jcenter()

  • Убедитесь, что дебажная версия приложения подписана релизным ключом, чтобы тестировать Google Pay в режиме Production.

Документации по интеграции Google Pay

О Google Pay

Документация

Официальный репозиторий SDK

IOS

  • Добавьте в ios/Podfile
pod 'Cloudpayments', :git =>  "https://github.com/cloudpayments/CloudPayments-SDK-iOS", :tag => '1.1.9'
pod 'CloudpaymentsNetworking', :git =>  "https://github.com/cloudpayments/CloudPayments-SDK-iOS", :tag => '1.1.9'
  • Выполните pod install в папке ios

  • Yandex Pay для ios пока не доступен

Для использования технологии Apple Pay вам необходимо зарегистрировать Merchant ID, сформировать платежный сертификат, сертификат для веб-платежей и подтвердить владение доменами сайтов, на которых будет производиться оплата.

Документации по интеграции Apple Pay

О Apple Pay

Официальный репозиторий SDK

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

import { Card } from 'react-native-cloudpayments-sdk';

Возможности CloudPayments SDK:

  • Проверка карточного номера на корректность
const isCardNumber = await Card.isCardNumberValid(cardNumber);
  • Проверка срока действия карты
const isExpDate = await Card.isExpDateValid(expDate); // expDate в формате MM/yy
  • Определение типа платежной системы
const cardType = await Card.cardType(cardNumber);
  • Определение банка эмитента
const { bankName, logoUrl } = await Card.getBinInfo(cardNumber, merchantId);
  • Шифрование карточных данных и создание криптограммы для отправки на сервер
const cryptogramPacket = await Card.makeCardCryptogramPacket({
  cardNumber,
  expDate,
  cvv,
  merchantId,
});
  • Шифрование cvv при оплате сохраненной картой и создание криптограммы для отправки на сервер
const cryptogramPacket = await Card.makeCardCryptogramPacket({
  cvv,
});
  • Отображение 3DS формы и получении результата 3DS аутентификации
const { TransactionId, PaRes } = await Card.requestThreeDSecure({
  transactionId,
  paReq,
  acsUrl,
});

Смотрите документацию по API: Платёж - обработка 3-D Secure

Использование стандартной платежной формы Cloudpayments:

import { CreditCardForm } from 'react-native-cloudpayments-sdk';
  • Инициализация
const PAYMENT_DATA_CARD = {
  publicId: 'publicId',
  accountId: '1202',
  applePayMerchantId: 'merchant',
  googlePayMerchantId: 'merchant',
  ipAddress: '8.8.8.8',
  cardHolderName: 'Votinov Anton',
  yandexPayMerchantID: 'yandexPayMerchantID',
};

const PAYMENT_JSON_DATA_CARD = {
  age: '24',
  name: 'Anton',
  phone: '+7912343569',
};

const creditCardForm = CreditCardForm.initialPaymentData(
  PAYMENT_DATA_CARD,
  PAYMENT_JSON_DATA_CARD
);
  • Инициализация суммы оплаты.
creditCardForm.setDetailsOfPayment({
  currency: Currency.ruble,
  totalAmount: '1000',
  invoiceId: '123',
  description: 'Test',
});
  • Вызов формы оплаты.
const result = await creditCardForm.showCreditCardForm({
  useDualMessagePayment: true, // Использовать двухстадийную схему проведения платежа
  disableApplePay: false, // Включить Apple Pay, по умолчанию выключен
  disableGPay: false, // Включить Google Pay, по умолчанию выключен
  disableYandexPay: false, // Включить Yandex Pay, по умолчанию выключен
});

Использование вашей платежной формы с использованием функций CloudpaymentsApi:

import { CloudPaymentsApi } from 'react-native-cloudpayments-sdk';
  • Инициализация
const PAYMENT_DATA_CARD = {
  publicId: 'publicId',
  accountId: '1202',
  ipAddress: '8.8.8.8',
  cardHolderName: 'Votinov Anton',
};

const PAYMENT_JSON_DATA_CARD = {
  age: '24',
  name: 'Anton',
  phone: '+7912343569',
};

const cloudPaymentsApi = CloudPaymentsApi.initialApi(
  PAYMENT_DATA_CARD,
  PAYMENT_JSON_DATA_CARD
);
  • Инициализация суммы оплаты.
cloudPaymentsApi.setDetailsOfPayment({
  currency: Currency.ruble,
  totalAmount: '1000',
  invoiceId: '123',
  description: 'Test',
});
  • Создайте криптограмму карточных данных
const cryptogramPacket = await Card.makeCardCryptogramPacket({
  cardNumber,
  expDate,
  cvv,
  merchantId,
});
  • Выполните запрос на проведения платежа. Создайте объект CloudpaymentApi и вызовите функцию charge для одностадийного платежа или auth для двухстадийного. Укажите email, на который будет выслана квитанция об оплате.
const results = await cloudPaymentsApi.auth(cryptogramPacket, email);
const results = await cloudPaymentsApi.charge(cryptogramPacket, email);

Использования Google Pay / Apple Pay

Поддержка типов платежных систем:
  • Visa
  • Master Card
  • Discover
  • Interac
  • JCB (IOS 10.1+)
  • MIR (только IOS 14.5+)
import {
  PAYMENT_NETWORK,
  PaymentService,
} from 'react-native-cloudpayments-sdk';
  • Инициализация
const PAYMENT_DATA = Platform.select({
  ios: () => {
    return {
      merchantId: 'applePayMerchantID',
      supportedNetworks: [
        PAYMENT_NETWORK.masterCard,
        PAYMENT_NETWORK.visa,
        PAYMENT_NETWORK.amex,
        PAYMENT_NETWORK.interac,
        PAYMENT_NETWORK.discover,
        PAYMENT_NETWORK.mir,
        PAYMENT_NETWORK.jcb,
      ],
      countryCode: 'RU',
      currencyCode: 'RUB',
    };
  },
  android: () => {
    return {
      merchantId: 'googlePayMerchantID',
      merchantName: 'Example',
      gateway: {
        service: 'cloudpayments',
        merchantId: 'cloudpaymentsPublicID',
      },
      supportedNetworks: [
        PAYMENT_NETWORK.masterCard,
        PAYMENT_NETWORK.visa,
        PAYMENT_NETWORK.amex,
        PAYMENT_NETWORK.interac,
        PAYMENT_NETWORK.discover,
        PAYMENT_NETWORK.jcb,
      ],
      countryCode: 'RU',
      currencyCode: 'RUB',
      environmentRunning: 'Test',
    };
  },
})!();

const paymentService = PaymentService.initial(PAYMENT_DATA);
Примичание

cloudpaymentsPublicID: Ваш Public ID, его можно посмотреть в личном кабинете.

  • Проверка, доступны ли пользователю эти платежные системы
const isSupportPayments = await paymentService.canMakePayments();
  • Создайте массив покупок и передайте его в метод setProducts
const PRODUCTS = [
  { name: 'example_1', price: '1' },
  { name: 'example_2', price: '10' },
  { name: 'example_3', price: '15' },
];

paymentService.setProducts(PRODUCTS);
  • Чтобы получить результат оплаты, нужно подписаться на listener
useEffect(() => {
  paymentService.listenerCryptogramCard((cryptogram) => {
    console.warn(cryptogram);
  });

  return () => {
    paymentService.removeListenerCryptogramCard();
  };
}, []);
  • Выполните оплату
paymentService.openServicePay();

Автор

Вотинов Антон

Поддержка

По возникающим вопросам техничечкого характера и предложениями обращайтесь на [email protected]

Дополнительная информация о библиотеки

Первая версия библиотеки писалась для проекта EnerGO, разработанным компанией Purrweb

License

MIT