create method
Future<Response<RazorpayPaymentLink> >
create({
- required dynamic params,
- void callback(
- RazorpayApiException?,
- Response<
RazorpayPaymentLink> ?
Create payment link (standard or with advanced options)
@param params - Check doc for required params. Accepts RazorpayPaymentLinkCreateRequestBody or models representing advanced options.
Implementation
Future<Response<RazorpayPaymentLink>> create({
required dynamic params, // Use dynamic for flexibility
void Function(RazorpayApiException?, Response<RazorpayPaymentLink>?)?
callback,
}) async {
const url = BASE_URL;
Map<String, dynamic> requestData;
// Basic type checking - expand if needed for advanced options
if (params is RazorpayPaymentLinkCreateRequestBody) {
requestData = params.toJson();
}
// Add checks for advanced option types here if models are defined
// else if (params is RazorpayTransferPaymentOption) { ... }
else {
// Assuming dynamic params is already a map for advanced options
// This might need better handling based on how advanced options are modeled.
if (params is Map<String, dynamic>) {
requestData = params;
} else {
throw ArgumentError(
'Invalid type for params. Expected a RequestBody or Map.',
);
}
}
return api.post<RazorpayPaymentLink>(
{
'url': url,
'data': requestData,
},
fromJsonFactory: RazorpayPaymentLink.fromJson,
callback: callback,
);
}