create method

  1. @override
Future<PaymentBridgeResponse> create({
  1. double amount = 0,
  2. String name = '',
  3. String description = '',
  4. String mobile = '',
  5. String email = '',
})
override

Implementation

@override
Future<PaymentBridgeResponse> create({
  double amount = 0,
  String name = '',
  String description = '',
  String mobile = '',
  String email = '',
}) {
  var completer = Completer<PaymentBridgeResponse>();

  options['amount'] = amount * 100;
  options['name'] = name;
  options['description'] = description;
  options['prefill']['contact'] = mobile;
  options['prefill']['email'] = email;

  if (kIsWeb) {
    var razorpay = payment.Razorpay();
    razorpay.open(options);
  } else {
    var razorpay = Razorpay();

    razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS,
        (PaymentSuccessResponse response) {
      completer.complete(PaymentBridgeSuccess(
        id: response.paymentId,
        amount: amount,
        orderId: response.orderId,
        signature: response.signature,
      ));
    });

    razorpay.on(Razorpay.EVENT_PAYMENT_ERROR,
        (PaymentFailureResponse response) {
      completer.completeError(PaymentBridgeError(
        code: response.code,
        message: response.message,
      ));
    });

    razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET,
        (ExternalWalletResponse response) {
      // Do something when an external wallet was selected
    });

    razorpay.open(options);
  }

  return completer.future;
}