Skip to main content

esaalat 0.4.0 copy "esaalat: ^0.4.0" to clipboard
esaalat: ^0.4.0 copied to clipboard

Hosted checkout for Flutter — a ready-made pay button, a full-screen WebView, and verified payment results.

Changelog #

0.4.0 - 2026-10-29 #

  • Added variant: CheckoutButtonVariant.dark (default), .light and .gold, matching the web button. The vector lockup and a custom label are recolored for each surface.
  • The merchant's Website, WhatsApp and Email links now open outside the checkout, in the OS browser, WhatsApp or mail app, instead of replacing the checkout page inside the WebView. A navigation to another web origin is intercepted the same way.
  • The ESAALAT-SDK-VERSION header now reports 0.4.0.

0.3.0 #

  • The default button lockup is now one self-contained animated SVG: outlined lead and wordmark, no PNG assets or host fonts, with the logo starting centred and sliding aside as the lead appears. The platform reduced-motion setting shows the final frame without animating. flutter_svg is now a dependency.
  • radius property (default 4) configures the button's corners.
  • showTestingWallet (button property and open() parameter): also offer the account's dedicated testing wallet in the hosted portal. It obeys the same enabled-and-monitored rules as every other wallet and is off by default.
  • Fixed polling: the public session endpoint deliberately omits session_token and portal_url, but the SDK's read validation required them. Every poll was therefore treated as an unknown session and a live checkout could settle as failed on the first tick (~4s). Reads now validate the fields the endpoint actually returns; create still requires the token and portal URL.
  • Refreshed the pub README and package metadata; installation and API examples now match the current package.
  • Added PNG golden-image tests for the Arabic and English lockup artwork.
  • The ESAALAT-SDK-VERSION header now reports 0.3.0.

0.2.0 #

  • EsaalatCheckoutButton: the drop-in branded button. Pass the publishable key (or a server-created session token), the amount and the outcome callbacks — it creates the session, pushes the checkout route and routes the result to exactly one of onVerified, onCancelled, onWrongAmount, onExpired or onFailed. No client or lifecycle code in the app.
  • A client may now be created without a publishable key when every checkout opens a server-created sessionToken; the key is still required to create a session, and open() reports it with the same message as the web SDK.
  • The portal now posts its terminal result to the EsaalatNativeBridge JS channel, so a checkout settles as soon as the payment does instead of on the next poll. Polling stays as the fallback.

0.1.0 #

  • Initial release.
  • EsaalatCheckout.open() creates a hosted checkout session with the publishable key, shows the portal in a full-screen WebView, and completes with the same CheckoutResult the TypeScript SDK resolves.
  • Server-created sessions via sessionToken / portalUrl.
  • Result polling of GET /checkout/public/sessions/{token} using the portal's own mapping (VERIFIED, WRONG_AMOUNT, EXPIRED, CANCELLED, FAILED).
  • Arabic and English locales, idempotent session creation, itemized orders, and the demo-only simulateResult option.
0
likes
160
points
735
downloads

Documentation

Documentation
API reference

Publisher

verified publisheresaalat.com

Weekly Downloads

Hosted checkout for Flutter — a ready-made pay button, a full-screen WebView, and verified payment results.

Homepage
View/report issues

Topics

#payments #checkout #flutter #yemen #mobile

License

MIT (license)

Dependencies

flutter, flutter_svg, http, url_launcher, webview_flutter

More

Packages that depend on esaalat