diff options
Diffstat (limited to 'Telegram/SourceFiles/payments/payments_checkout_process.cpp')
-rw-r--r-- | Telegram/SourceFiles/payments/payments_checkout_process.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Telegram/SourceFiles/payments/payments_checkout_process.cpp b/Telegram/SourceFiles/payments/payments_checkout_process.cpp index 5b7287066f..aba6d5e5a2 100644 --- a/Telegram/SourceFiles/payments/payments_checkout_process.cpp +++ b/Telegram/SourceFiles/payments/payments_checkout_process.cpp @@ -87,6 +87,7 @@ CheckoutProcess::CheckoutProcess( ) | rpl::start_with_next([=] { showForm(); }, _panel->lifetime()); + showForm(); } CheckoutProcess::~CheckoutProcess() { @@ -156,7 +157,7 @@ void CheckoutProcess::handleError(const Error &error) { showToast({ "Error: " + id }); } break; - case Error::Type::Validate: + case Error::Type::Validate: { if (_submitState == SubmitState::Validation) { _submitState = SubmitState::None; } @@ -189,7 +190,21 @@ void CheckoutProcess::handleError(const Error &error) { } else { showToast({ "Error: " + id }); } - break; + } break; + case Error::Type::Stripe: { + using Field = Ui::CardField; + if (id == u"InvalidNumber"_q || id == u"IncorrectNumber"_q) { + showCardError(Field::Number); + } else if (id == u"InvalidCVC"_q || id == u"IncorrectCVC"_q) { + showCardError(Field::CVC); + } else if (id == u"InvalidExpiryMonth"_q + || id == u"InvalidExpiryYear"_q + || id == u"ExpiredCard"_q) { + showCardError(Field::ExpireDate); + } else { + showToast({ "Error: " + id }); + } + } break; case Error::Type::Send: if (_submitState == SubmitState::Finishing) { _submitState = SubmitState::None; @@ -375,6 +390,13 @@ void CheckoutProcess::showInformationError(Ui::InformationField field) { field); } +void CheckoutProcess::showCardError(Ui::CardField field) { + if (_submitState != SubmitState::None) { + return; + } + _panel->showCardError(_form->paymentMethod().ui.native, field); +} + void CheckoutProcess::chooseShippingOption() { _panel->chooseShippingOption(_form->shippingOptions()); } |