Omniware Payment Gateway Totalxsoftware - Flutter Plugin
Developed by Totalx Software
About
The Omniware Payment Gateway Totalxsoftware Flutter plugin provides seamless integration with the Omniware payment gateway, enabling secure and efficient payment processing for Flutter applications.
Features
- Simple Integration: Easily integrate Omniware payment gateway into your Flutter apps.
- Customizable: Supports various payment modes, currencies, and user profiles.
- Save in Firebase: Optionally save payment data in Firebase for easy tracking.
- Secure Payments: Ensures encryption and secure payment processing.
Installation
- Add the dependency to your
pubspec.yaml
file:
dependencies:
omniware_payment_gateway_totalxsoftware: ^1.0.0
-
Run flutter pub get to install the package.
-
Import the plugin in your Dart file:
import 'package:omniware_payment_gateway_totalxsoftware/omniware_payment_gateway_totalxsoftware.dart';
Platform-Specific Setup
Android Integration
- Update
AndroidManifest.xml
: Add the namespace for tools and update the app label:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:label="@string/totalxsoftwareapp"
... >
...
</application>
</manifest>
// add
<!-- ++ xmlns:tools="http://schemas.android.com/tools
++ android:label="@string/totalxsoftwareapp" -->
- Add Colors in
res/values/colors.xml
:
<resources>
<color name="colorPrimary">#FF6200EE</color>
<color name="colorPrimaryDark">#FF3700B3</color>
<color name="colorAccent">#FF03DAC5</color>
</resources>
- Add Strings in
res/values/strings.xml
:
<resources>
<string name="app_name">Kurikkal Business Park</string>
<string name="totalxsoftwareapp">Kurikkal Business Park</string>
</resources>
- Add Styles in
res/values/styles.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
// add
<!-- ++ <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
++ <item name="colorPrimary">@color/colorPrimary</item>
++ <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
++ <item name="colorAccent">@color/colorAccent</item>
++ </style> -->
- Update
settings.gradle
: Add your plugin:
...
include ":app"
include ":payment_gateway_plugin"
...
- Update
app/build.gradle
: Ensure necessary dependencies are included:
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.0'
// Other dependencies
...
}
iOS Integration
- Update
Info.plist
: Add supported UPI and payment apps:
<dict>
...
<key>LSApplicationQueriesSchemes</key>
<array>
<string>upi</string>
<string>credpay</string>
<string>gpay</string>
<string>phonepe</string>
<string>paytmmp</string>
<string>mobikwik</string>
<string>com.amazon.mobile.shopping</string>
<string>bharatpe</string>
<string>freecharge</string>
<string>payzapp</string>
<string>myjio</string>
<string>bhim</string>
<string>slice</string>
...
</array>
...
</dict>
List of Request Parameters
Parameter Name | Description | Required | Datatype |
---|---|---|---|
api_key |
Unique 40-digit merchant key assigned to your business/login account. Each login account will have its own api_key . |
Mandatory | String (Max: 40) |
order_id |
Merchant reference number. Must be unique for every transaction. Duplicate order_id s for the same merchant are not allowed. |
Mandatory | String (Max: 30) |
mode |
Payment mode (TEST or LIVE ). |
Optional | String (Max: 4) |
amount |
Payment amount. | Mandatory | Max 15 digits before decimal + Max 2 |
currency |
3-digit currency code, e.g., INR . |
Mandatory | String (Max: 3) |
description |
Brief description of the product or service being charged. | Mandatory | String (Max: 200) |
name |
Customer's name. | Mandatory | String (Max: 200) |
email |
Customer's email address. | Mandatory | String (Max: 200) |
phone |
Customer's phone number. | Mandatory | String (Max: 30) |
address_line_1 |
Customer's address line 1. | Optional | String (Max: 255) |
address_line_2 |
Customer's address line 2. | Optional | String (Max: 255) |
city |
Customer's city. | Mandatory | String (Max: 50) |
state |
Customer's state. | Optional | String (Max: 50) |
country |
Customer's country. | Mandatory | String (Max: 10) |
zip_code |
Customer's ZIP code. | Mandatory | Integer (Min: 0, Max: 1000) |
return_url |
URL for success - POST request will be made to this URL after a successful transaction. | Mandatory | String (Max: 200) |
For further details on the Omniware payment gateway integration, refer to the official Omniware Integration Guide.
Example
Here’s a sample implementation in Flutter:
OmniwarePaymentGatewayTotalxsoftware.pay(
context,
saveInFirebase: true,
appName: 'totalxsoftwareapp',
platform: Platform.isAndroid ? 'android' : 'ios',
//
paymentMode: PaymentMode.LIVE, // LIVE or TEXT
amount: 100,
apiKey: 'YOUR_API_KEY', // Replace with your actual API key
merchantId: 'YOUR_MERCHANT_ID', // Replace with your actual Merchant ID
salt: 'YOUR_SALT', // Replace with your actual Salt value
description:
'Brief description of product or service being charged for', // Replace with your product description
currency: Currency.INR, // Change currency as required
returnUrl: 'https://totalx.in', // Replace with your return URL
//
userProfile: OmniwareUserProfile(
uid: 'user_unique_id', // Replace with the user's unique ID
name: 'Customer Name', // Replace with the customer's name
email: 'customer@example.com', // Replace with the customer's email
phoneNumber: '1234567890', // Replace with the customer's phone number
city: 'City Name', // Replace with the customer's city
state: 'State Name', // Replace with the customer's state
country: 'Country Code', // Replace with the country code (e.g., IND)
zipcode: '123456', // Replace with the customer's zip code
// addressline_1: 'Address Line 1', // Uncomment and replace as needed
// addressline_2: 'Address Line 2', // Uncomment and replace as needed
),
success: (response, orderId) {
log('Payment Success: $response');
log('Order ID: $orderId');
},
failure: (response, orderId) {
log('Payment Failure: $response');
log('Order ID: $orderId');
},
error: (response) {
log('Payment Error: $response');
},
);
Explore more about TotalX at www.totalx.in - Your trusted software development company!
🌐 Connect with Totalx Software
Join the vibrant Flutter Firebase Kerala community for updates, discussions, and support: