Приложение CloudPayments Checkout Example демонстрирует работу Android приложения с платежным шлюзом CloudPayments, а так же работу с Google Pay.
Схемы проведения платежа http://cloudpayments.ru/Docs/Integration#schemes
git clone https://github.com/cloudpayments/CloudPayments_AndroidCheckout.git
SDK CloudPayments позволяет:
- Проводить проверку карточного номера на корректность
CPCard card = CPCardFactory.create(String number);
boolean card.isValidNumber();
- Определять тип платежной системы
CPCard card = CPCardFactory.create(java.lang.String number);
String card.getType();
- Шифровать карточные данные и создавать криптограмму для отправки на сервер
CPCard card = CPCardFactory.create(cardNumber, cardDate, cardCVC); // Номер карты только цифры без пробелов, срок действия карты в формате MMyy (например 0919).
String card.cardCryptogram(String publicId);
https://cloudpayments.ru/docs/googlepay - о Google Pay
https://developers.google.com/payments/setup - документация Google, по подключению Google Pay API в приложение.
https://github.com/android-pay/paymentsapi-quickstart - пример использования Google Pay API от Google.
ВАЖНО:
При формирования параметров для запроса токена необходимо указать тип оплаты через шлюз (Wallet-Constants.PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY) и добавить два параметра:
- gateway: cloudpayments
- gatewayMerchantId: Ваш Public ID, его можно посмотреть в личном в Личном кабинете: https://merchant.cloudpayments.ru/
PaymentMethodTokenizationParameters params =
PaymentMethodTokenizationParameters.newBuilder()
.setPaymentMethodTokenizationType(
WalletConstants.PAYMENT\_METHOD\_TOKENIZATION\_TYPE\_PAYMENT_GATEWAY)
.addParameter("gateway", "cloudpayments")
.addParameter("gatewayMerchantId", "Ваш Public ID")
.build();
После получения токена необходимо провести оплату: String token = paymentData.getPaymentMethodToken().getToken();
В примере MERCHANT_PUBLIC_ID и MERCHANT_API_PASS это тестовые Public ID и пароль для API, Вам необходимо получить свои данные в личном кабинете на сайте CloudPayments. Не храните пароль для API в мобильном приложении это не безопасно, приложение должно выполнять запросы согласно схеме через ваш сервер: https://cloudpayments.ru/Docs/MobileSDK
- В приложении необходимо получить токен от Google Pay либо получить карточные данные и создать на из основе криптограмму (токен уже является криптограммой каких либо модификаций с ним проводить нет необходимости);
- Отправить криптограмму (токен) и все данные для платежа с мобильного устройства на ваш сервер;
- С сервера вашего сервера провести оплату через платежное API CloudPayments.
В демо-проекте частично используется код из библиотеки https://github.com/LivotovLabs/3DSView. Все права на код этой библиотеки принадлежат авторам библиотеки.