digetpay_plugin 0.4.0
digetpay_plugin: ^0.4.0 copied to clipboard
Pure-Dart DigetPay payment plugin: hosted (PCI-safe) checkout via WebView plus transaction management over the DigetPay REST API.
0.4.0 - 2026-07-08 #
- New:
sale(SaleRequest)now performs a real headless S2S card sale/authorization againstPOST /payment/s2s/sale— no moreUnsupportedError. This widens PCI scope for callers who opt into it;cardPay()remains the recommended, PCI-safe default.CardDto/SaleRequestare unchanged. The backend's integrityhashfield has a ported implementation (computeSaleHash, MD5) but automatic injection is temporarily disabled pending confirmation of the algorithm/secret —sale()currently sends the request as-is; setSaleRequest.hashyourself if you need one meanwhile (see theTODO(hash-decision)markers inlib/src/digetpay_sdk.dart). - New:
recurring(RecurringRequest)now performs a real merchant-initiated recurring charge againstPOST /payment/checkout/recurring, charging arecurringTokenfrom a priorcardPay()transaction — no moreUnsupportedError. - New:
getTransactionById(id)now performs a real lookup againstGET /payment/transactions/digetpay/{id}/details— no moreUnsupportedError. This reverses the 0.3.0 breaking change now that a real replacement endpoint exists. The returnedTransactiongained ~23 fields from this richer endpoint (businessUnitId,reconciliationStatus,cardScheme,cardChannel,originalAmount/originalCurrency,gateway,settlementStatus,businessUnitHierarchy, and more), plus a newBusinessUnitmodel for the hierarchy. - New:
getRecurringSubscriptions([RecurringSubscriptionFilter])lists saved-card billing plans (GET /payment/checkout/recurring/subscriptions) as aPageDto<RecurringSubscription>. - New:
chargeSubscription({subscriptionId, amount, email})charges an existing subscription (POST /payment/checkout/recurring/{id}/charge) — no card data needed — returning aSubscriptionChargeResult. - New:
getTransactionHistory([TransactionFilter])lists raw transaction records (GET /payment/transactions/digetpay/) as aPageDto<Transaction>. Distinct from the deprecatedgetTransactions()(→getCheckoutSessions(), session-shaped) — this lists transaction-shaped records instead. - Breaking:
TransactionFilter's fields replaced (pageNumber,pageSize,status— dropping the old speculativeid/page/size/orderId/amountFrom/amountTo/dateFrom/dateTo) to backgetTransactionHistory(). This class had no caller in the SDK until now. - Packaging: added the
cryptodependency (for the S2S sale hash). - Example app: replaced the compile-time
--dart-define=DIGETPAY_API_KEYflow with a first-run onboarding screen — enter your API key, pick Sandbox/Production, and the app callsDigetPaySdk.initialize()and persists the choice (shared_preferences, example-app-only). A new settings action on the home screen reopens it to change or reset the saved configuration. Added demo screens for S2S Card Sale, Recurring Charge (on the Money Movement screen), Recurring Subscriptions, and Transaction History; Transaction Lookup now also demosgetTransactionById; Not Yet Available is trimmed to the four remaining guarded stubs (applePay,externalPayment,getTransactionByOrderId,getTransactionByRrn). - Docs: README capability tables updated; new "Direct (S2S) card sale" and
"Recurring charges & subscriptions" / "Transaction history & lookup by id"
sections; the security section now distinguishes
cardPay()(PCI-safe) from the opt-in, PCI-scope-wideningsale().
0.3.0 - 2026-07-07 #
- Breaking:
getTransactionById(id)is now a guarded stub — the backend lookup-by-id endpoint (GET /payment/checkout/status?id=) is no longer available, so this always throwsUnsupportedError. UsegetCheckoutStatus(sessionId), or listgetCheckoutSessions()and inspect the returnedCheckoutSessions, instead. - Docs: updated the README capability table, "which id do I use?" callout,
and "not yet available" section; the example's
Not Yet Availablescreen now demosgetTransactionByIdalongside the other guarded stubs, andTransaction Lookupis limited togetCheckoutStatus.
0.2.0 - 2026-07-06 #
- New:
getCheckoutSessions([CheckoutSessionFilter])lists your checkout sessions (GET /payment/checkout/sessions) as aPageDto<CheckoutSession>. EachCheckoutSessionexposesgatewayTransactionId— the id to use withcapture/voidd/refund/getTransactionById(not the sessionid). - New:
CheckoutSession,CheckoutSessionFilter, andPageDto.fromPaginated(parses the NestJS{data, pagination}shape). - Deprecated:
getTransactions()— renamed togetCheckoutSessions(); it now forwards to it and returnsPageDto<CheckoutSession>. - Behaviour change: the not-yet-implemented methods now throw
UnsupportedErrorinstead of silently returning a failure/null:sale(disabled for PCI),applePay,externalPayment,recurring,getTransactionByOrderId,getTransactionByRrn. - Fix:
getCheckoutStatusnow callsGET /sdk/status?sessionId=(was pointing at the wrong path). - Packaging: added
repository,issue_tracker, andtopicsmetadata; converted to a true pure-Dart package (removed the unused native plugin scaffolding); aligned theflutterSDK constraint. - Docs: rewritten README (hero, quick start, capability table, sessions guide) and a runnable example is now published.
0.1.0 #
- Initial DigetPay release (pure Dart).
DigetPaySdkfacade withinitialize()+ init-guard.- Hosted, PCI-safe card checkout via
cardPay()(WebView) —POST /payment/checkout/intiate+GET /payment/checkout/status. - Money movement:
capture,voidd,refund. - Transaction queries:
getTransactions,getTransactionById(typedTransaction/PageDto). - Typed
DigetPayResponsenormalizing the backend{code, message, errorCode, data}envelope. - Guarded stubs (no backend endpoint yet):
sale(S2S card — disabled for PCI),applePay,externalPayment,recurring,getTransactionByOrderId,getTransactionByRrn.