1.0.3: Fixed iOS confirmation flow. Refactored TokenizationResult, now it's have SuccessTokenizationResult, ErrorTokenizationResult and CanceledTokenizationResult versions.

This commit is contained in:
Искандар Р. Шабаев
2022-09-08 11:32:35 +03:00
parent 187f2a4af5
commit 6b72dfee66
15 changed files with 267 additions and 164 deletions
@@ -6,6 +6,7 @@ import ru.yoomoney.sdk.kassa.payments.checkoutParameters.PaymentMethodType
fun TokenizationResult.toJson(): String {
val json = JSONObject()
json.put("status", "success")
json.put("paymentToken", paymentToken)
json.put("paymentMethodType", when(paymentMethodType) {
PaymentMethodType.YOO_MONEY -> "yoo_money"
@@ -36,6 +36,9 @@ import ru.yoomoney.sdk.kassa.payments.checkoutParameters.TestParameters
import ru.yoomoney.sdk.kassa.payments.TokenizationResult
import ru.yoomoney.sdk.kassa.payments.checkoutParameters.UiParameters
private const val CANCELED_RESULT = "{\"status\":\"canceled\"}"
private const val ERROR_RESULT = "{\"status\":\"error\"}"
class YookassaPaymentsFlutterPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, PluginRegistry.ActivityResultListener {
private lateinit var flutterResult: Result
@@ -123,9 +126,13 @@ class YookassaPaymentsFlutterPlugin: FlutterPlugin, MethodCallHandler, ActivityA
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
if (requestCode == REQUEST_CODE_TOKENIZE) {
if (resultCode == Activity.RESULT_OK && data != null) {
if (resultCode == Activity.RESULT_CANCELED) {
flutterResult.success(CANCELED_RESULT)
} else if (resultCode == Activity.RESULT_OK && data != null) {
val result: TokenizationResult = Checkout.createTokenizationResult(data);
flutterResult.success(result.toJson())
} else {
flutterResult.success(ERROR_RESULT)
}
} else if (requestCode == REQUEST_CODE_CONFIRMATION) {
flutterResult.success(resultCode)