Screenshots
There are few steps you need to follow to implement PayUMoney SDK:
-
Open file android/app/build.gradle in your flutter project and update minSdkVersion under "defaultConfig" to 21 (if greater than leave)
-
Open AndroidManifest.xml located at android/app/src/main and add following code:
xmlns:tools="http://schemas.android.com/tools"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" <--- paste here
package="yourPackageName">
also add this code:
tools:replace="android:label"
<application
android:name="io.flutter.app.FlutterApplication"
android:label="YourAppName"
tools:replace="android:label" <-- Paste here
android:icon="@mipmap/ic_launcher">
<-- No additional steps required for iOS -->
Run this command in project terminal to add dependency
flutter pub add payumoney_pro_unofficial
or add manually to pubspecs.yaml
payumoney_pro_unofficial: ^0.0.9
Get latest packages
flutter pub get
Import package to by adding this line at the top
import 'package:payumoney_pro_unofficial/payumoney_pro_unofficial.dart';
Copy and paste this code
Future<void> initializePayment() async{
final response= await PayumoneyProUnofficial.payUParams(
email: '<Customer Email>',
firstName: '<Customer Name>',
merchantName: '<Merchant Name>',
isProduction: true,
merchantKey: '<Merchant Key>',
merchantSalt: '<Merchant Salt Version 1>',
amount: '<Amount in Rs>',
hashUrl:'<Checksum URL to generate dynamic hashes>', //nodejs code is included. Host the code and update its url here.
productInfo: '<Product Name>',
transactionId: '<Unique ID>',
showExitConfirmation:true,
showLogs:false, // true for debugging, false for production
userCredentials:'<Merchant Key>:' + '<Customer Email or User ID>',
userPhoneNumber: phone
);
if (response['status'] == PayUParams.success)
handlePaymentSuccess();
if (response['status'] == PayUParams.failed)
handlePaymentFailure(response['message']);
}
handlePaymentSuccess(){
//Implement Your Success Logic
}
handlePaymentFailure(String errorMessage){
print(errorMessage);
//Implement Your Failed Payment Logic
}
Tested Devices:
Device Name | Status |
---|---|
iPhoneX | ✅ |
iPhone 11 | ✅ |
iPhone 12 | ✅ |
iPhone 12 mini | ✅ |
Google Pixel | ✅ |
Android Emulator(v10) | ✅ |
-
Always make sure you validate Phone number(Must be 10 Digits) else payment page might not appear.
-
Avoid hardcoded credentials.
-
Always generate unique transaction id for each transaction.
-
Store Transaction & Details to database for later analysis or usage.
For any issue please write to contact@orangewp.com
To Connect on Instagram | Youtube | Business Inqury