upi_pay_x

Plugin to pay using upi

Getting Started

Add into your pubspec.yaml
==========================
upi_pay_x:

Replace Info.plist code with below code into ios runner folder

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CADisableMinimumFrameDurationOnPhone</key>
    	<true/>
    	<key>CFBundleDevelopmentRegion</key>
    	<string>$(DEVELOPMENT_LANGUAGE)</string>
    	<key>CFBundleExecutable</key>
    	<string>$(EXECUTABLE_NAME)</string>
    	<key>CFBundleIdentifier</key>
    	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    	<key>CFBundleInfoDictionaryVersion</key>
    	<string>6.0</string>
    	<key>CFBundleName</key>
    	<string>upi_pay_example</string>
    	<key>CFBundlePackageType</key>
    	<string>APPL</string>
    	<key>CFBundleShortVersionString</key>
    	<string>$(FLUTTER_BUILD_NAME)</string>
    	<key>CFBundleSignature</key>
    	<string>????</string>
    	<key>CFBundleVersion</key>
    	<string>$(FLUTTER_BUILD_NUMBER)</string>
    	<key>LSApplicationQueriesSchemes</key>
    	<array>
    		<string>Bandhan</string>
    		<string>BHIM</string>
    		<string>CanaraMobility</string>
    		<string>CentUPI</string>
    		<string>com.amazon.mobile.shopping</string>
    		<string>com.ausmallfinancebank.aupay.bhimupi</string>
    		<string>com.jkbank.bhimjkbankupi</string>
    		<string>com.rbl.rblimplicitjourney</string>
    		<string>com.syndicate.syndupi</string>
    		<string>com.vijayabank.UPI</string>
    		<string>cred</string>
    		<string>dbin</string>
    		<string>freecharge</string>
    		<string>gpay</string>
    		<string>hdfcnewbb</string>
    		<string>imobileapp</string>
    		<string>in.cointab.app</string>
    		<string>in.fampay.app</string>
    		<string>kvb.app.upiapp</string>
    		<string>lotza</string>
    		<string>mobikwik</string>
    		<string>money.bullet</string>
    		<string>myairtel</string>
    		<string>myJio</string>
    		<string>paytm</string>
    		<string>payzapp</string>
    		<string>phonepe</string>
    		<string>truecaller</string>
    		<string>ucoupi</string>
    		<string>upi</string>
    		<string>upibillpay</string>
    		<string>whatsapp</string>
    		<string>www.citruspay.com</string>
    	</array>
    	<key>LSRequiresIPhoneOS</key>
    	<true/>
    	<key>UILaunchStoryboardName</key>
    	<string>LaunchScreen</string>
    	<key>UIMainStoryboardFile</key>
    	<string>Main</string>
    	<key>UISupportedInterfaceOrientations</key>
    	<array>
    		<string>UIInterfaceOrientationPortrait</string>
    		<string>UIInterfaceOrientationLandscapeLeft</string>
    		<string>UIInterfaceOrientationLandscapeRight</string>
    	</array>
    	<key>UISupportedInterfaceOrientations~ipad</key>
    	<array>
    		<string>UIInterfaceOrientationPortrait</string>
    		<string>UIInterfaceOrientationPortraitUpsideDown</string>
    		<string>UIInterfaceOrientationLandscapeLeft</string>
    		<string>UIInterfaceOrientationLandscapeRight</string>
    	</array>
    	<key>UIViewControllerBasedStatusBarAppearance</key>
    	<false/>
</dict>
</plist>

Parameters

final a = await UpiPay.initiateTransaction(
      amount: _amountController.text,
      app: app.upiApplication,
      receiverName: 'Amir Rahi',
      receiverUpiAddress: _upiAddressController.text,
      transactionRef: transactionRef,
      transactionNote: 'UPI Payment',
      // merchantCode: '7372',
    );

To show android apps

Widget _androidApps() {
    return Container(
      margin: EdgeInsets.only(top: 32, bottom: 32),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          Container(
            margin: EdgeInsets.only(bottom: 12),
            child: Text(
              'Pay Using',
              style: Theme.of(context).textTheme.bodyText1,
            ),
          ),
          if (_apps != null) _appsGrid(_apps!.map((e) => e).toList()),
        ],
      ),
    );
  }

To show IOS apps

 Widget _iosApps() {
  return Container(
    margin: EdgeInsets.only(top: 32, bottom: 32),
    child: Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Container(
          margin: EdgeInsets.only(bottom: 24),
          child: Text(
            'One of these will be invoked automatically by your phone to '
                'make a payment',
            style: Theme.of(context).textTheme.bodyText2,
          ),
        ),
        Container(
          margin: EdgeInsets.only(bottom: 12),
          child: Text(
            'Detected Installed Apps',
            style: Theme.of(context).textTheme.bodyText1,
          ),
        ),
        if (_apps != null) _discoverableAppsGrid(),
        Container(
          margin: EdgeInsets.only(top: 12, bottom: 12),
          child: Text(
            'Other Supported Apps (Cannot detect)',
            style: Theme.of(context).textTheme.bodyText1,
          ),
        ),
        if (_apps != null) _nonDiscoverableAppsGrid(),
      ],
    ),
  );
}

Libraries

upi_pay