SDK Installation / Flutter
Flutter

Flutter

Installation

Add the dependency to your app's pubspec.yaml:

yaml
dependencies:
  arto_sdk: ^1.1.0

Then run:

bash
flutter pub get
# or
flutter pub add arto_sdk

⚠️ Important

Get your publicKey from the ArtoPay merchant dashboard. Then from your backend, call ArtoPay's /v1/payment-intents endpoint to retrieve secretToken and intentId values.


Platform Configuration

Android

Update your application's AndroidManifest.xml:

xml
<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="https" />
        <data android:scheme="shopeepay" />
    </intent>
</queries>

iOS

Update your application's Info.plist:

xml
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>http</string>
    <string>https</string>
</array>

Basic Usage

dart
import 'package:arto_sdk/arto/arto.dart';

void _onProcess() {
  final publicKey   = "pk_xxxxxxxxxx";
  final secretToken = "pi_xxxxxxxxxx";
  final intentId    = "xxxxxxxxxx";

  Arto.configure(sandbox: _isSandbox, publicKey: publicKey);

  final options = OpenPaymentOptions(
    clientSecret: secretToken,
    paymentId: intentId,
    token: customerToken.isNotEmpty ? customerToken : null,
    sandbox: _isSandbox,
    onSuccess: (result) {
      debugPrint('PAYMENT SUCCESS: ${result.rawData}');
    },
    onPending: (result) {
      debugPrint('PAYMENT PENDING: ${result.rawData}');
    },
    onError: (result) {
      debugPrint('PAYMENT ERROR: ${result.rawData}');
    },
    onClose: (result) {
      debugPrint('PAYMENT CLOSE: ${result.rawData}');
    },
  );

  try {
    Arto.openPayment(context, options);
  } catch (e) {
    ScaffoldMessenger.of(context)
      .showSnackBar(SnackBar(content: Text(e.toString())));
  }
}

Callbacks

FieldTypeDescription
onSuccessStringPayment is successful
onPendingStringPayment is pending
onErrorStringPayment has failed
onClosevoidUser closes payment page