toJson method
Implementation
Map<String, dynamic> toJson() {
final json = <String, dynamic>{
'customer_reference': customerReference,
'amount': amount,
'currency': currency.toLowerCase(),
'payment_method': paymentMethod,
'user_info': userInfo,
'payment_method_info': paymentMethodInfo,
'fee_covered_by': feeCoveredBy,
'delivery_behaviour': deliveryBehaviour,
'notify_url': notifyUrl,
};
// Add optional fields
if (successRedirectUrl != null) json['success_redirect_url'] = successRedirectUrl;
if (failRedirectUrl != null) json['fail_redirect_url'] = failRedirectUrl;
if (merchant != null) json['merchant'] = merchant!.toJson();
if (cfgSystemCountryId != null) json['cfg_system_country_id'] = cfgSystemCountryId;
// Add user info fields if provided
if (phoneNumber != null) json['phone_number'] = phoneNumber;
if (email != null) json['email'] = email;
if (firstName != null) json['first_name'] = firstName;
if (lastName != null) json['last_name'] = lastName;
// Add wallet fields if provided
if (walletNumber != null) json['wallet_number'] = walletNumber;
if (walletPin != null) json['wallet_pin'] = walletPin;
// Add flash fields if provided
if (flashNumber != null) json['flash_number'] = flashNumber;
if (flashPin != null) json['flash_pin'] = flashPin;
// Add card fields if provided
if (cardNumber != null) json['card_number'] = cardNumber;
if (cardExpiryDate != null) json['card_expiry_date'] = cardExpiryDate;
if (cardCvv != null) json['card_cvv'] = cardCvv;
if (cardHolderName != null) json['card_holder_name'] = cardHolderName;
// Add mobile money fields if provided
if (mobileMoneyPhoneNumber != null) json['mobile_money_phone_number'] = mobileMoneyPhoneNumber;
// Add mastercard payment method if provided
if (mastercardPaymentMethod != null) json['mastercard_payment_method'] = mastercardPaymentMethod;
// Add metadata if provided
if (metadata != null) json['metadata'] = metadata;
return json;
}