hyperpay_sdk 2.3.2
hyperpay_sdk: ^2.3.2 copied to clipboard
Flutter plugin for HyperPay (OPPWA) Mobile SDK v7.8.1. ReadyUI, CustomUI, Apple Pay, Google Pay, MADA, tokenization, and 3DS2.
2.3.2 #
- Fix (iOS & Android): report shopper-initiated aborts as cancellations instead of failures. When the user dismissed the 3-D Secure challenge sheet (
OPPErrorCodeThreeDS2ChallengeCanceled/ERROR_CODE_THREEDS2_CANCELED) or closed the payment page (OPPErrorCodeTransactionAborted/ERROR_CODE_TRANSACTION_ABORTED), the SDK returnedPaymentResult(isSuccess: false, isCanceled: false)with a raw, untranslated message like"The challenge was canceled. [domain=…, code=6001, …]". These are now returned asPaymentResult(isCanceled: true)so apps can silently abort. No Dart API changes.
2.3.1 #
- Fix (Android): stop skipping CVV for stored cards in the Ready-UI checkout.
checkoutReadyUIpreviously setCheckoutSkipCVVMode.FOR_STORED_CARDS, so saved/tokenized cards were submitted without a CVV. Some acquirer connectors (e.g. SAIB MPGS) reject such requests with800.100.156("transaction declined (format error)" /INVALID_REQUEST), so stored-card payments failed on Android while succeeding on iOS (which always collects CVV). Android now collects CVV for stored cards too, matching iOS behaviour. No Dart API changes.
2.3.0 #
- Add
HyperpaySdk.payApplePayDynamic(...)— defers HyperPay checkout creation until the Apple Pay sheet has revealed the card network (PKPaymentMethod.network). The newresolveCheckoutcallback receives the detected network string ("Visa","MasterCard","Mada", …) and returns a server-issuedcheckoutId, letting callers route MADA Apple Pay to DB and non-MADA to PA on the same code path. ExistingpayApplePayis unchanged. iOS only — Android Google Pay does not need this. The native presentation explicitly adds.madatoPKPaymentRequest.supportedNetworks(iOS 14.5+) so MADA-only cards are eligible for the wallet picker. - Guard both Apple Pay entry points (
payApplePay,payApplePayDynamic) withPKPaymentAuthorizationViewController.canMakePayments()before presenting. Without this PassKit can hard-abort the host app viaabort_with_payloadwhen the merchant ID isn't entitled (nocom.apple.developer.in-app-payments, no payment-processing certificate, or no eligible Wallet cards). The guard returns a cleanerrorCode: "APPLE_PAY_UNAVAILABLE"result instead.
2.2.0 #
- Upgrade underlying HyperPay (OPPWA) Mobile SDK from
7.4.0→7.8.1on both iOS and Android. No public Dart API changes. TheOPPWAMobileandipworks3ds_sdkframeworks are updated; ipworks3ds versions on iOS are now9485, Android9469. Transitive Android dependencies are unchanged.
2.1.0 #
- Add
HyperpaySdk.requestBinInfo(checkoutId, bin)— wraps the OPPWA SDK's BIN service so callers can use HyperPay's authoritative BIN database to detect MADA (and other brands) instead of maintaining their own hardcoded BIN list. ReturnsHyperpayBinInfo { brands, binType, type }with a convenienceisMadagetter. Use this on add-card to route MADA cards through the DB flow and avoid PA-rail declines on Saudi-issued co-branded cards.
2.0.1 #
- Fix example app failing to build after the 2.0.0 breaking change — the example's Apple Pay screen still called
payApplePaywithout the now-requiredshopperResultUrl, causing a compile error. No library changes.
2.0.0 #
Breaking change: HyperpaySdk.payApplePay() now requires shopperResultUrl.
The earlier 1.0.5 fix added shopperResultURL assignment on the iOS Apple Pay params, but the value was never plumbed through from Dart — the payApplePay Dart method didn't accept a shopperResultUrl argument, so the iOS plugin always saw a nil value and submitted Apple Pay payments to HyperPay with no shopperResultURL, causing 200.300.404 invalid or missing parameter. Now mirrors the Ready UI flow: callers must pass shopperResultUrl, the Dart→iOS bridge forwards it, the iOS handler captures it, and the submission delegate assigns it on OPPApplePayPaymentParams before submitTransaction.
1.0.5 #
- Fix Apple Pay on iOS rejected by HyperPay with
200.300.404 invalid or missing parameter—shopperResultURLwas set on the card path but not onOPPApplePayPaymentParamsbefore submission, so wallet payments reached HyperPay without it. Now mirrors the card flow and assignsshopperResultURLon the Apple Pay params before submitting the transaction. (Incomplete: see 2.0.0.)
1.0.4 #
- Fix Apple Pay cancel hanging forever on iOS —
pendingResultwas never called when user dismissed the payment sheet
1.0.3 #
- Added Apple Pay Merchant ID configuration guide with screenshots
- Fixed README links to use absolute URLs for pub.dev compatibility
1.0.2 #
- Fix package description length for pub.dev validation
1.0.1 #
- Redesigned example app with multi-screen layout (splash, home, saved cards)
- Added "Add Card" flow — tokenize cards without making a payment (PA + createRegistration)
- Extracted shared business logic into PaymentService
- Custom card form now opens in a modal bottom sheet
- Added .env.example for easier example app setup
- Added screenshots to README
- Added production integration guide with backend flow diagram
- Added UI color customization documentation
1.0.0 #
- Initial release wrapping HyperPay OPPWA Mobile SDK v7.4.0
- ReadyUI and CustomUI payment flows
- Support for VISA, MasterCard, MADA, Apple Pay, Google Pay, STC Pay
- Tokenization / stored cards
- 3DS2 authentication
- Test and Live payment modes
- Shopper result URL / callback scheme handling
- Payment status checking