Implemented Razorpay Payment Gateway integration - April 17, 2026, 5:56 PM
This commit is contained in:
1 parent
ece167ea75
commit
41d7cfa8c6
11 files changed
+826
-425
No files matched your search
@@ -0,0 +1,70 @@
|
||||
import 'package:razorpay_flutter/razorpay_flutter.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
class RazorpayService {
|
||||
late Razorpay _razorpay;
|
||||
final Function(PaymentSuccessResponse)? onSuccess;
|
||||
final Function(PaymentFailureResponse)? onFailure;
|
||||
final Function(ExternalWalletResponse)? onExternalWallet;
|
||||
|
||||
RazorpayService({
|
||||
this.onSuccess,
|
||||
this.onFailure,
|
||||
this.onExternalWallet,
|
||||
}) {
|
||||
_razorpay = Razorpay();
|
||||
_razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, _handlePaymentSuccess);
|
||||
_razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, _handlePaymentError);
|
||||
_razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);
|
||||
}
|
||||
|
||||
void _handlePaymentSuccess(PaymentSuccessResponse response) {
|
||||
debugPrint("✅ Razorpay Payment Success: ${response.paymentId}");
|
||||
onSuccess?.call(response);
|
||||
}
|
||||
|
||||
void _handlePaymentError(PaymentFailureResponse response) {
|
||||
debugPrint("❌ Razorpay Payment Error: ${response.code} - ${response.message}");
|
||||
onFailure?.call(response);
|
||||
}
|
||||
|
||||
void _handleExternalWallet(ExternalWalletResponse response) {
|
||||
debugPrint("💰 Razorpay External Wallet: ${response.walletName}");
|
||||
onExternalWallet?.call(response);
|
||||
}
|
||||
|
||||
void openCheckout({
|
||||
required String key,
|
||||
required dynamic amount,
|
||||
required String orderId,
|
||||
required String description,
|
||||
String? contact,
|
||||
String? email,
|
||||
}) {
|
||||
var options = {
|
||||
'key': key,
|
||||
'amount': amount,
|
||||
'name': 'Taxglide',
|
||||
'order_id': orderId,
|
||||
'description': description,
|
||||
'theme': {'color': '#61277A'},
|
||||
'prefill': {
|
||||
'contact': contact ?? '',
|
||||
'email': email ?? '',
|
||||
},
|
||||
'external': {
|
||||
'wallets': ['paytm']
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
_razorpay.open(options);
|
||||
} catch (e) {
|
||||
debugPrint("❌ Error opening Razorpay: $e");
|
||||
}
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
_razorpay.clear();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user