izipay_sdk 1.0.0 copy "izipay_sdk: ^1.0.0" to clipboard
izipay_sdk: ^1.0.0 copied to clipboard

Flutter plugin for the official Izipay Android and iOS SDKs. Supports card payments and Yape on both platforms.

izipay_sdk #

Flutter plugin for the official Izipay Android and iOS SDKs.
Supports card payments and Yape on both platforms.

Platform Status SDK Version
Android 2.3.0 (patched AAR)
iOS 2.3.0 (xcframework)

Features #

  • payWithCard — opens the SDK showing only the card payment form
  • payWithYape — opens the SDK showing only the Yape form
  • openFormToSaveCard — tokenizes a card without charging (experimental)
  • Stream-based result API — resultStream emits success/failure with card data

Installation #

dependencies:
  izipay_sdk: ^2.2.0

Android setup #

In android/settings.gradle add the Hilt plugin:

plugins {
    id 'com.google.dagger.hilt.android' version '2.56.2' apply false
}

In android/app/build.gradle:

plugins {
    id 'kotlin-kapt'
    id 'com.google.dagger.hilt.android'
}

android {
    buildFeatures { viewBinding true }
    buildTypes {
        release {
            minifyEnabled false      // Izipay SDK is not R8-compatible
            shrinkResources false
        }
    }
}

dependencies {
    implementation "com.google.dagger:hilt-android:2.56.2"
    kapt "com.google.dagger:hilt-compiler:2.56.2"
}

Create an Application class annotated with @HiltAndroidApp and register it in AndroidManifest.xml:

@HiltAndroidApp
class MyApplication : Application()
<application android:name=".MyApplication" ... />

iOS setup #

No additional configuration needed. Frameworks are embedded automatically via CocoaPods.

To force Light Mode (recommended for Izipay hybrid integrations), add to ios/Runner/Info.plist:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

Usage #

Authentication (SDK v2.3.0) #

The SDK v2.3.0 requires a session JWT instead of a static public key.
Your backend generates it via generateTokenPayV2PW2. The JWT contains merchantCode, transactionId, orderNumber and amount — decode it on the mobile side to build the request.

Pass the JWT as the publicKey field in IziPayConfig.

Pay with Yape #

final izipay = FlutterIzipay();

// Subscribe to results BEFORE launching the payment
final sub = izipay.resultStream.listen((result) {
  if (result.success) {
    print('Token: ${result.card.cardToken}');
    print('PAN:   ${result.card.cardPan}');
    print('Brand: ${result.card.cardBrand}');
  } else {
    print('Failed — code: ${result.code}');
  }
});

await izipay.payWithYape(
  config: (
    environment: 'SBOX',          // 'SBOX' | 'PROD'
    merchantCode: merchantCode,
    publicKey: jwtToken,           // session JWT from backend
    transactionId: transactionId,
  ),
  transactionId: transactionId,
  orderNumber: orderNumber,
  amount: '50.00',
  user: (
    userId: userId,
    firstName: 'Juan',
    lastName: 'Perez',
    email: 'juan@example.com',
    phoneNumber: '999999999',
    documentType: 'DNI',
    documentNumber: '12345678',
  ),
  address: (
    street: 'Av. Ejemplo 123',
    city: 'Lima',
    state: 'Lima',
    country: 'PE',
    postalCode: '15001',
  ),
  theme: (logoUrl: 'https://your-cdn.com/logo.png'),
);

// Cancel subscription when done
sub.cancel();

Pay with card #

await izipay.payWithCard(
  config: (
    environment: 'PROD',
    merchantCode: merchantCode,
    publicKey: jwtToken,
    transactionId: transactionId,
  ),
  transactionId: transactionId,
  amount: '100.00',
  user: (...),
  address: (...),
  theme: (logoUrl: '...'),
);

Response codes #

Code Meaning
00 Success
021 User closed the form
Others See Izipay response codes

Android SDK patch #

The Izipay Android SDK v2.3.0 has a bug where PaymentsFragment renders both the card and Yape containers as visible simultaneously. The AAR bundled in this plugin has a bytecode patch applied via ASM that hides the inactive container.

The original unpatched AAR is kept as android/libs/izipay-sdk-2.3.0.aar.backup. To regenerate the patched AAR:

PATCHES=android/patches
LIBS=android/libs
ASM=~/.gradle/caches/modules-2/files-2.1/org.ow2.asm
ASM_JAR=$(find $ASM/asm/9.6 -name "asm-9.6.jar" ! -name "*sources*")
ASM_TREE_JAR=$(find $ASM/asm-tree/9.6 -name "asm-tree-9.6.jar" ! -name "*sources*")

javac -cp "$ASM_JAR:$ASM_TREE_JAR" $PATCHES/IzipayPatcher.java -d /tmp/patcher_out
java -cp "/tmp/patcher_out:$ASM_JAR:$ASM_TREE_JAR" IzipayPatcher \
    $LIBS/izipay-sdk-2.3.0.aar.backup \
    $LIBS/izipay-sdk-2.3.0.aar

Resources #

1
likes
0
points
112
downloads

Publisher

verified publisherdarkcodex.dev

Weekly Downloads

Flutter plugin for the official Izipay Android and iOS SDKs. Supports card payments and Yape on both platforms.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on izipay_sdk

Packages that implement izipay_sdk