diff --git a/app/src/main/java/com/pax/ecr/app/NexoMessages.kt b/app/src/main/java/com/pax/ecr/app/NexoMessages.kt index ef30736..cec89a1 100644 --- a/app/src/main/java/com/pax/ecr/app/NexoMessages.kt +++ b/app/src/main/java/com/pax/ecr/app/NexoMessages.kt @@ -1,5 +1,6 @@ package com.pax.ecr.app +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import java.math.BigDecimal import java.nio.charset.Charset @@ -120,17 +121,17 @@ object NexoMessages { @Serializable data class CardholderReceipt( - val Cardholder: Cardholder, + @SerialName("Cardholder") val cardholder: Cardholder, ) { fun toReceiptData(items: Map = emptyMap()): String { return """ - Customer Receipt - Check out the integration guide for examples - ${Cardholder.Mandatory.Outcome.AuthorisationResponder} ${Cardholder.Mandatory.Outcome.DebitStatus} ${Cardholder.Mandatory.Outcome.ApprovalCode} ${Cardholder.Mandatory.Outcome.AuthorisationResponseCode} - ${Cardholder.Mandatory.TimeStamp.TimeOfPayment} ${Cardholder.Mandatory.TimeStamp.DateOfPayment} - - - ${if (items.isNotEmpty()) { + Customer Receipt + Check out the integration guide for examples + ${cardholder.mandatory.outcome.authorisationResponder} ${cardholder.mandatory.outcome.debitStatus} ${cardholder.mandatory.outcome.approvalCode} ${cardholder.mandatory.outcome.authorisationResponseCode} + ${cardholder.mandatory.timeStamp.timeOfPayment} ${cardholder.mandatory.timeStamp.dateOfPayment} + + + ${if (items.isNotEmpty()) { items.keys.mapIndexed { index, key, @@ -140,117 +141,115 @@ data class CardholderReceipt( } else { "" }} - - - - - ${Cardholder.Mandatory.Payment.PaymentAmount} ${Cardholder.Mandatory.Payment.Currency} - - - - - - - + + + + + ${cardholder.mandatory.payment.paymentAmount} ${cardholder.mandatory.payment.currency} + + + + + """.trimIndent() } } @Serializable data class Cardholder( - val Mandatory: Mandatory, - val Optional: Optional? = null, + @SerialName("Mandatory") val mandatory: Mandatory, + @SerialName("Optional") val optional: Optional? = null, ) @Serializable data class Mandatory( - val Acquirer: Acquirer, - val CardAcceptor: CardAcceptor, - val CardDetails: CardDetails, - val Outcome: Outcome, - val Payment: Payment, - val TimeStamp: TimeStamp, + @SerialName("Acquirer") val acquirer: Acquirer, + @SerialName("CardAcceptor") val cardAcceptor: CardAcceptor, + @SerialName("CardDetails") val cardDetails: CardDetails, + @SerialName("Outcome") val outcome: Outcome, + @SerialName("Payment") val payment: Payment, + @SerialName("TimeStamp") val timeStamp: TimeStamp, ) @Serializable data class Acquirer( - val CardAcceptorNumber: String, - val TerminalID: String, + @SerialName("CardAcceptorNumber") val cardAcceptorNumber: String, + @SerialName("TerminalID") val terminalID: String, ) @Serializable data class CardAcceptor( - val Address1: String, - val BankAgentName: String, - val Name: String, - val OperatorNumber: String, - val OrganisationNumber: String, - val PostZipCode: String, - val TownCity: String, + @SerialName("Address1") val address1: String, + @SerialName("BankAgentName") val bankAgentName: String, + @SerialName("Name") val name: String, + @SerialName("OperatorNumber") val operatorNumber: String, + @SerialName("OrganisationNumber") val organisationNumber: String, + @SerialName("PostZipCode") val postZipCode: String, + @SerialName("TownCity") val townCity: String, ) @Serializable data class CardDetails( - val ApplicationIdentifier: String, - val CardSchemeName: CardSchemeName, - val PrimaryAccountNumber: String, - val TerminalVerificationResult: String, - val TransactionStatusInformation: String, + @SerialName("ApplicationIdentifier") val applicationIdentifier: String, + @SerialName("CardSchemeName") val cardSchemeName: CardSchemeName, + @SerialName("PrimaryAccountNumber") val primaryAccountNumber: String, + @SerialName("TerminalVerificationResult") val terminalVerificationResult: String, + @SerialName("TransactionStatusInformation") val transactionStatusInformation: String, ) @Serializable data class CardSchemeName( - val ApplicationLabel: String, + @SerialName("ApplicationLabel") val applicationLabel: String, ) @Serializable data class Outcome( - val ApprovalCode: String? = null, - val AuthorisationResponder: String, - val AuthorisationResponseCode: String? = null, - val DebitStatus: String, + @SerialName("ApprovalCode") val approvalCode: String? = null, + @SerialName("AuthorisationResponder") val authorisationResponder: String, + @SerialName("AuthorisationResponseCode") val authorisationResponseCode: String? = null, + @SerialName("DebitStatus") val debitStatus: String, ) @Serializable data class Payment( - val AuthorisationChannel: String, - val CardholderVerificationMethod: String, - val Currency: String, - val FinancialInstitution: String, - val PaymentAmount: String, - val ReceiptNumber: String, - val SignatureBlock: Boolean, - val TotalAmount: String, - val TransactionSource: String, - val TransactionType: String, + @SerialName("AuthorisationChannel") val authorisationChannel: String, + @SerialName("CardholderVerificationMethod") val cardholderVerificationMethod: String, + @SerialName("Currency") val currency: String, + @SerialName("FinancialInstitution") val financialInstitution: String, + @SerialName("PaymentAmount") val paymentAmount: String, + @SerialName("ReceiptNumber") val receiptNumber: String, + @SerialName("SignatureBlock") val signatureBlock: Boolean, + @SerialName("TotalAmount") val totalAmount: String, + @SerialName("TransactionSource") val transactionSource: String, + @SerialName("TransactionType") val transactionType: String, ) @Serializable data class TimeStamp( - val DateOfPayment: String, - val TimeOfPayment: String, + @SerialName("DateOfPayment") val dateOfPayment: String, + @SerialName("TimeOfPayment") val timeOfPayment: String, ) @Serializable data class Optional( - val CardAcceptor: OptionalCardAcceptor? = null, - val CardDetails: OptionalCardDetails? = null, - val Payment: OptionalPayment? = null, - val ReceiptString: List? = null, + @SerialName("CardAcceptor") val cardAcceptor: OptionalCardAcceptor? = null, + @SerialName("CardDetails") val cardDetails: OptionalCardDetails? = null, + @SerialName("Payment") val payment: OptionalPayment? = null, + @SerialName("ReceiptString") val receiptString: List? = null, ) @Serializable data class OptionalCardAcceptor( - val CountryName: String, + @SerialName("CountryName") val countryName: String, ) @Serializable data class OptionalCardDetails( - val CardIssuerNumber: String, - val CardSchemeName: CardSchemeName, + @SerialName("CardIssuerNumber") val cardIssuerNumber: String, + @SerialName("CardSchemeName") val cardSchemeName: CardSchemeName, ) @Serializable data class OptionalPayment( - val Reference: String, + @SerialName("Reference") val reference: String, )