suqo_checkout 0.1.1
suqo_checkout: ^0.1.1 copied to clipboard
Collect a SUQO payment on a full-screen checkout screen. No gateway integration, no payment UI to build.
Changelog #
All notable changes to suqo_checkout are documented here, and this package follows
Semantic Versioning. Entries after 0.1.0 are generated by
semantic-release from conventional commits and land through the release PR; see RELEASING.md.
0.1.0 #
Added #
SuqoCheckout.open(context, sessionId: …)— pushes the full-screen checkout and completes with exactly oneSuqoOutcome(SuqoSuccess,SuqoFailure,SuqoClosed). Flutter'sNavigatoralready returns a result from a pushed screen, so there is no provider to mount and no callback trio to wire: the port of@suqo/react-nativefollows the platform rather than the original's shape here.SuqoProvider— optional, and configuration only. App-wide defaults formode,baseUrl,checkoutPath,title,loadingLabel,debugandonEvent, each overridable per call.SuqoMode.sandbox(the default) /.live, resolving totest.suqo.ai/app.suqo.ai, withbaseUrloverriding both. An app that names neither cannot take a live payment by accident.- Bank and wallet deeplinks (
fonepayApp://, Androidintent://) are lifted out of the WebView to the OS;javascript:,data:,file:andblob:navigations are refused outright. Gateway return pages are allowed to load, because that is where the payment is verified. - Two load deadlines — 12s to the page's first signal, 25s to the block mounting — with a retry, so a page that never boots reports a loading failure rather than hanging.
onEvent, a redacted debug stream, anddebuglogging that scrubs session ids, URLs and gateway params by shape as well as by key name.
Notes #
- No changes are required on the SUQO web app. The page already probes for
window.SuqoWebView.postMessage(string)as a vendor-neutral native-host bridge, and this package's JavaScript channel is named to match. - Requires Flutter 3.3.0 / Dart 2.18. The floor is set by
webview_flutter_android3.7.0, the first release exposingsetAcceptThirdPartyCookies.