@@ -20,7 +20,6 @@ public class PaymentMapper {
2020 let amountMoney = paymentParameters [ " amountMoney " ] as? [ String : Any ] ,
2121 let amount = amountMoney [ " amount " ] as? UInt ,
2222 let currencyCode = amountMoney [ " currencyCode " ] as? String ,
23- let idempotencyKey = paymentParameters [ " idempotencyKey " ] as? String ,
2423 let processingMode = paymentParameters [ " processingMode " ] as? Int
2524 else {
2625 fatalError ( " Error: Missing or invalid required payment parameters " )
@@ -32,13 +31,26 @@ public class PaymentMapper {
3231 // Create the amountMoney object
3332 let money = Money ( amount: amount, currency: currency)
3433
35- // Initialize PaymentParameters with required fields
36- var paymentParams = PaymentParameters (
37- idempotencyKey: idempotencyKey,
38- amountMoney: money,
39- processingMode: ProcessingMode ( rawValue: processingMode) !
40- )
34+ var paymentParams : PaymentParameters ? = nil
35+ if let paymentAttemptID = paymentParameters [ " paymentAttemptId " ] as? String {
36+ paymentParams = PaymentParameters (
37+ paymentAttemptID: paymentAttemptID,
38+ amountMoney: money,
39+ processingMode: ProcessingMode ( rawValue: processingMode) !
40+ )
41+ }
42+ else if let idempotencyKey = paymentParameters [ " idempotencyKey " ] as? String {
43+ paymentParams = PaymentParameters (
44+ idempotencyKey: idempotencyKey,
45+ amountMoney: money,
46+ processingMode: ProcessingMode ( rawValue: processingMode) !
47+ )
48+ }
4149
50+ guard let paymentParams
51+ else {
52+ fatalError ( " Error: Missing or invalid required payment parameters " )
53+ }
4254 // Optional: appFeeMoney
4355 if let appFeeMoney = paymentParameters [ " appFeeMoney " ] as? [ String : Any ] ,
4456 let appFeeAmount = appFeeMoney [ " amount " ] as? UInt ,
0 commit comments