refund method
Future<Response<RazorpayRefund> >
refund({
- required String paymentId,
- required dynamic params,
- void callback(
- RazorpayApiException?,
- Response<
RazorpayRefund> ?
Create a normal/instant refund or refund with transfer reversal.
@param paymentId - The unique identifier of the payment. @param params - Accepts RazorpayRefundCreateRequestBody or RazorpayRefundPaymentLinkAccountCreateRequestBody.
Implementation
Future<Response<RazorpayRefund>> refund({
required String paymentId,
required dynamic params, // Use dynamic for union type
void Function(RazorpayApiException?, Response<RazorpayRefund>?)? callback,
}) async {
if (paymentId.isEmpty) {
throw ArgumentError(ID_REQUIRED_MSG);
}
Map<String, dynamic> requestData;
if (params is RazorpayRefundCreateRequestBody ||
params is RazorpayRefundPaymentLinkAccountCreateRequestBody) {
requestData = params is RazorpayRefundCreateRequestBody
? params.toJson()
: params is RazorpayRefundPaymentLinkAccountCreateRequestBody
? params.toJson()
: {};
} else {
throw ArgumentError('Invalid params type for refund.');
}
return api.post<RazorpayRefund>(
{
'url': '$BASE_URL/$paymentId/refund',
'data': requestData,
},
fromJsonFactory: RazorpayRefund.fromJson,
callback: callback,
);
}