Skip to main content

Payment Gateway :- RazorPay PaymentGateway integration in Getx flutter

step 1. Create Account on Razorpay payment Get way . Step 2. create new project on Getx Flutter Step 3 Add razorpay dependency from this link https://pub.dev/packages/razorpay_flutter. step 4 create View Code :- import 'package:add_payment/app/constants/app_colors.dart'; import 'package:add_payment/app/modules/widgets/custom_text_fields.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controllers/dashboard_controller.dart'; class DashboardView extends GetView {
const DashboardView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'RazorPay Payment Gateway',
style: Get.textTheme.displayLarge!.copyWith(
color: AppColors.appBlueColor,
fontWeight: FontWeight.w600,
),
),
centerTitle: true,
),
body: Padding(
padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 20),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'Pay with Razorpay',
),
const SizedBox(
height: 20,
),
const Row(
children: [
Text(
'Name of User',
),
],
),
const SizedBox(
height: 20,
),
UniversalTextField(
controller: controller.nameTextController,
keyboardType: TextInputType.name,
hintText: '',
validatorErrorText: '',
validationMessageOnBlankText: ''),
const SizedBox(
height: 20,
),
const Row(
children: [
Text(
'Amount',
),
],
),
const SizedBox(
height: 20,
),
UniversalTextField(
controller: controller.amountTextController,
keyboardType: TextInputType.number,
hintText: '',
validatorErrorText: '',
validationMessageOnBlankText: ''),
const SizedBox(
height: 20,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
controller.getPayment();
},
child: const Text("Pay with Razorpay")),
],
),
],
),
));
}
}
Step 5 :- craete view controller class- import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:razorpay_flutter/razorpay_flutter.dart';
class DashboardController extends GetxController {
final razorpay = Razorpay();
late TextEditingController amountTextController;
late TextEditingController nameTextController;
@override
void onInit() {
amountTextController = TextEditingController();
nameTextController = TextEditingController();
razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, _handlePaymentSuccess);
razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, _handlePaymentError);
razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);
super.onInit();
}
@override
void onClose() {
amountTextController.dispose();
nameTextController.dispose();
razorpay.clear();
super.onClose();
}
void _handlePaymentSuccess(PaymentSuccessResponse response) {
Get.snackbar("Payment Successful", "Payment ID: ${response.paymentId}");
// Do something when payment succeeds
}
void _handlePaymentError(PaymentFailureResponse response) {
Get.snackbar("Payment Failed",
"Code: ${response.code}\nDescription: ${response.message}\nMetadata:${response.error.toString()}");
// Do something when payment fails
}
void _handleExternalWallet(ExternalWalletResponse response) {
Get.snackbar("External Wallet Selected", "${response.walletName}");
// Do something when an external wallet was selected
}
void getPayment() async {
Razorpay razorpay = Razorpay();
var options = {
'key': '*********************', // copy from api key of razorpay
'amount': amountTextController.text,
'name': nameTextController.text,
'description': 'Fine T-Shirt',
'retry': {'enabled': true, 'max_count': 1},
'send_sms_hash': true,
'prefill': {'contact': '8*******11', 'email': 'xxx.gmail.com'},
'external': {
'wallets': ['paytm']
}
};
try {
razorpay.open(options);
} catch (e) {
print("error $e");
}
nameTextController.clear();
amountTextController.clear();
}
}

Comments

Popular posts from this blog

API Integration in Flutter - A Step-by-Step Guide

API Integration in Flutter - A Step-by-Step Guide API Integration in Flutter - A Step-by-Step Guide Learn how to integrate APIs into your Flutter app with this easy-to-follow tutorial. Step 1: Add Dependencies Start by adding the necessary dependencies for HTTP requests and JSON handling in your pubspec.yaml file. dependencies: flutter: sdk: flutter http: ^0.13.3 Run flutter pub get to install the dependencies. Step 2: Create a Service Class for API Calls Next, create a Dart file (e.g., api_service.dart ) to handle your API logic. Below is an example of a simple GET request function: import 'dart:convert'; import 'package:http/http.dart' as http; class ApiService { final String baseUrl; ApiService({required this.baseUrl...

Flutter Interview Preparation Topics

Flutter Interview Preparation Flutter Interview Preparation 1. Core Flutter Concepts **Widgets**: - StatelessWidget vs. StatefulWidget. - InheritedWidget and InheritedModel. - Custom Widgets (Creating reusable components). **State Management**: - Provider, Riverpod, Bloc/Cubit, Redux, or GetX. - Compare and contrast state management approaches. - Handling global and local state. **Navigation and Routing**: - `Navigator 1.0` vs. `Navigator 2.0`. - Named routes and deep linking. - Implementing nested navigation. **Lifecycle**: - App lifecycle (`AppLifecycleState`). - Widget lifecycle (`initState`, `dispose`, etc.). 2. Advanced Flutter Development **Performance Optimization**: - Efficient...

How, Purpose, and When to Use Google ML Kit in Flutter

How, Purpose, and When to Use Google ML Kit in Flutter How, Purpose, and When to Use Google ML Kit in Flutter Purpose of Google ML Kit in Flutter Google ML Kit simplifies adding AI features to mobile applications. Its primary purposes include: On-Device Machine Learning: Perform AI tasks without requiring an internet connection, ensuring low latency, privacy, and faster processing. Pre-trained Models: Use Google's robust, pre-trained models without needing ML expertise. Versatile AI Features: Enable functionalities like: Text recognition Barcode scanning Image labeling Face detection Pose detection Language identification Translation Entity extraction Smart replies When to Use Google ML Kit You should use Google ML Kit when: You need pre-built AI features withou...