PayEngineProvider class

A provider that initializes and manages PayEngine's configuration across the app.

PayEngineProvider ensures that PayEngine's SDK is properly set up by loading necessary configurations before rendering the app. It must wrap the root widget for the payment functionalities to work correctly.

Usage

Before using PayEngine in your application, wrap your app inside PayEngineProvider and pass a PayEngineConfig instance containing your public key and script URL.

final PayEngineConfig config = PayEngineConfig(
  publicKey: "pk_test_xxx",
  scriptURL: "https://console.payengine.dev",
);

void main() {
  runApp(
    PayEngineProvider(
      config: config,
      child: const MyApp(),
    ),
  );
}

How It Works

  1. The PayEngineProvider uses a ChangeNotifierProvider to store the PayEngineConfig and make it available throughout the app.
  2. The FutureBuilder asynchronously initializes the PayEngine SDK by calling _initializeConfig(), ensuring that the required configuration (PayEngineConfig.publicKey, PayEngineConfig.scriptURL) is set before rendering the UI.
  3. While initializing, a CircularProgressIndicator is displayed.
  4. Once initialization is complete, it renders the child widget.
Inheritance

Constructors

PayEngineProvider({Key? key, required PayEngineConfig config, required Widget child})
Creates a PayEngineProvider instance.
const

Properties

child Widget
The child widget (usually the app) that will be wrapped in the provider.
final
config PayEngineConfig
The configuration required for PayEngine.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited