buildMerchantArgsFromAmount function
Convenience helper: build merchantArgs from common form fields like an amount string and optional summary items. This keeps callers from reimplementing amount-to-cents and ensures the package remains the single source of truth for merchant args construction.
Implementation
Map<String, dynamic>? buildMerchantArgsFromAmount({
required String amount,
String? merchantId,
String? merchantName,
String? merchantInfo,
List<SummaryLineItem>? extraSummaryItems,
Map<String, dynamic>? builder,
}) {
final a = double.tryParse(amount.replaceAll(',', '')) ?? 0.0;
final cents = (a * 100).round();
final summary = <SummaryLineItem>[];
// Primary order line
summary.add(SummaryLineItem(label: 'Order', amountCents: cents));
// Append any additional lines provided by the caller
if (extraSummaryItems != null && extraSummaryItems.isNotEmpty) {
summary.addAll(extraSummaryItems);
}
return buildMerchantArgs(
merchantId: merchantId,
merchantName: merchantName,
merchantInfo: merchantInfo,
summaryItems: summary,
builder: (builder == null)
? {'amountCents': cents}
: {...builder, 'amountCents': cents},
);
}