PaySelection SDK позволяет интегрировать прием платежей в мобильные приложение для кроссплатформенных приложений, написанных с помощью Flutter.
В pubspec.yaml уровня проекта добавить зависимость
dependencies:
payselection_sdk:
git:
url: https://github.com/Payselection/Payselection-PayApp-SDK-Flutter.git
ref: //version
- example - Пример вызова методов с использованием SDK
- lib - Исходный код SDK
Вы можете с помощью SDK:
- создать заказ и совершить платеж картой
- получить детализацию по конкретной транзации
- Создайте конфигурацию с данными из личного кабинета
final config = PaySelectionConfig.credential(
publicKey:
'04bd07d3547bd1f90ddbd985feaaec59420cabd082ff5215f34fd1c89c5d8562e8f5e97a5df87d7c99bc6f16a946319f61f9eb3ef7cf355d62469edb96c8bea09e', // Публичный ключ
xSiteId: '21044' // Site ID
)
- Создайте экземпляр PaySelectionPaymentsSdk для работы с API
final sdk = PaySelectionSDK(config)
- Создайте объект PublicPayRequest с информацией о транзакции и данными карты
var request = PublicPayRequest(
orderId: "SAM_SDK_3",
description: "test payment",
paymentMethod: PaymentMethod.cryptogram,
amount: '10',
currency: 'RUB',
cardDetails: CardDetails(
cardHolderName: "TEST CARD",
cardNumber: "5260111696757102", //success card
// cardNumber: '2408684917843810', //fail card
cvc: "123",
expMonth: "12",
expYear: "24"),
customerInfo: CustomerInfo(
email: "[email protected]",
phone: "+19991231212",
language: "en",
address: "string",
town: "string",
zip: "string",
country: "USA",
isSendReceipt: false,
receiptEmail: '[email protected]',
ip: '8.8.8.8'),
rebillFlag: false,
);
-
Асинхронно вызовите метод pay
Отобразите WebView с полученной ссылкой на веб-интерфейс платежной системы (параметр "redirectUrl" из ответа сервера на метод "_pay") с помощью ThreeDS.
Future<BaseResponse<PublicPayResponse>> _pay() async {
final response = await config.pay(request);
return response;
}
_pay().proceedResult((responseData) {
showDialog(
context: context,
builder: (builder) => ThreeDS(
url: responseData.redirectUrl ?? '',
)
).then((value) => ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
content: Text(value == true
? 'Success transaction'
: 'Fail transaction'))));
//for check transaction status use config.transactionStatus
// config.transactionStatus(TransactionStatusRequest(
// transactionId: responseData.transactionId ?? "",
// transactionSecretKey:
// responseData.transactionSecretKey ?? ""));
},
(errorCode) => ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text(errorCode))));
}
- Получение статуса одной транзакции
config.transactionStatus(
TransactionStatusRequest(
transactionId,
ransactionSecretKey
)
)
По возникающим вопросам техничечкого характера обращайтесь на [email protected]