Documentation ¶
Overview ¶
****************************************************************************************** Copyright © 2019 Xiippy.ai. All rights reserved. Australian patents awarded. PCT patent pending.
NOTES:
- No payment gateway SDK function is consumed directly. Interfaces are defined out of such interactions and then the interface is implemented for payment gateways. Design the interface with the most common members and data structures between different gateways. A proper factory or provider must instantiate an instance of the interface that is interacted with. - Any major change made to SDKs should begin with the c# SDK with the mindset to keep the high-level syntax, structures and class names the same to minimise porting efforts to other languages. Do not use language specific features that don't exist in other languages. We are not in the business of doing the same thing from scratch multiple times in different forms. - Pascal Case for naming conventions should be used for all languages - No secret or passwords or keys must exist in the code when checked in
******************************************************************************************
****************************************************************************************** Copyright © 2019 Xiippy.ai. All rights reserved. Australian patents awarded. PCT patent pending.
NOTES:
- No payment gateway SDK function is consumed directly. Interfaces are defined out of such interactions and then the interface is implemented for payment gateways. Design the interface with the most common members and data structures between different gateways. A proper factory or provider must instantiate an instance of the interface that is interacted with. - Any major change made to SDKs should begin with the c# SDK with the mindset to keep the high-level syntax, structures and class names the same to minimise porting efforts to other languages. Do not use language specific features that don't exist in other languages. We are not in the business of doing the same thing from scratch multiple times in different forms. - Pascal Case for naming conventions should be used for all languages - No secret or passwords or keys must exist in the code when checked in
****************************************************************************************** using SQLite;
****************************************************************************************** Copyright © 2019 Xiippy.ai. All rights reserved. Australian patents awarded. PCT patent pending.
NOTES:
- No payment gateway SDK function is consumed directly. Interfaces are defined out of such interactions and then the interface is implemented for payment gateways. Design the interface with the most common members and data structures between different gateways. A proper factory or provider must instantiate an instance of the interface that is interacted with. - Any major change made to SDKs should begin with the c# SDK with the mindset to keep the high-level syntax, structures and class names the same to minimise porting efforts to other languages. Do not use language specific features that don't exist in other languages. We are not in the business of doing the same thing from scratch multiple times in different forms. - Pascal Case for naming conventions should be used for all languages - No secret or passwords or keys must exist in the code when checked in
******************************************************************************************
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CashPaymentPersisted ¶
type CashPaymentPersisted struct { RandomStatementID string `json:"RandomStatementID"` Purchase float32 `json:"Purchase"` TotalPaid float32 `json:"TotalPaid"` AmountReturned float32 `json:"AmountReturned"` Currency string `json:"Currency"` }
func NewCashPaymentPersisted ¶
func NewCashPaymentPersisted() *CashPaymentPersisted
type ElectronicPaymentPersisted ¶
type ElectronicPaymentPersisted struct { ElectronicPaymentID int64 `json:"ElectronicPaymentID"` RandomStatementID string `json:"RandomStatementID"` Bank string `json:"Bank"` MerchantAccountOwnerDetail string `json:"MerchantAccountOwnerDetail"` Terminal string `json:"Terminal"` Reference string `json:"Reference"` CardNO string `json:"CardNO"` AccountType string `json:"AccountType"` CardExpiry string `json:"CardExpiry"` Aid string `json:"Aid"` Atc string `json:"Atc"` Tvr string `json:"Tvr"` Csn string `json:"Csn"` AuthNo string `json:"AuthNo"` PosRefNo string `json:"PosRefNo"` MAccountNumber string `json:"MAccountNumber"` Mrrn string `json:"Mrrn"` Mauth string `json:"Mauth"` PaymentType string `json:"PaymentType"` MLocationCode string `json:"MLocationCode"` MAccountType string `json:"MAccountType"` Apsn string `json:"Apsn"` Arqc string `json:"Arqc"` CurrencyCode string `json:"CurrencyCode"` ExtraInfo1 string `json:"ExtraInfo1"` ExtraInfo2 string `json:"ExtraInfo2"` ExtraInfo3 string `json:"ExtraInfo3"` ExtraInfo4 string `json:"ExtraInfo4"` ExtraInfo5 string `json:"ExtraInfo5"` ExtraInfo6 string `json:"ExtraInfo6"` ExtraInfo7 string `json:"ExtraInfo7"` ExtraInfo8 string `json:"ExtraInfo8"` ExtraInfo9 string `json:"ExtraInfo9"` ExtraInfo10 string `json:"ExtraInfo10"` Purchase float32 `json:"Purchase"` Total float32 `json:"Total"` TransactionType string `json:"TransactionType"` StatusId string `json:"StatusId"` TxnStatusId string `json:"TxnStatusId"` Complete string `json:"Complete"` StatementText string `json:"StatementText"` ApprovedFlag bool `json:"ApprovedFlag"` ExpectedSettlementDate string `json:"ExpectedSettlementDate"` ExpectedSettlementDateTimeZone string `json:"ExpectedSettlementDateTimeZone"` DateOfTransaction string `json:"DateOfTransaction"` DateOfTransactionTimeZone string `json:"DateOfTransactionTimeZone"` Stan string `json:"Stan"` DpsBillingId string `json:"DpsBillingId"` ResponseCode string `json:"ResponseCode"` ResponseText string `json:"ResponseText"` AmtSurcgarge float32 `json:"AmtSurcgarge"` AmtTip float32 `json:"AmtTip"` AmtCashOut float32 `json:"AmtCashOut"` CardType string `json:"CardType"` MetaDataExtras map[string]string `json:"MetaDataExtras"` Tsi string `json:"Tsi"` DedicatedFileName string `json:"DedicatedFileName"` Cvm string `json:"Cvm"` AuthorizationCode string `json:"AuthorizationCode"` ApplicationPreferredName string `json:"ApplicationPreferredName"` }
type IssuerStatementRecord ¶
type IssuerStatementRecord struct { RandomStatementID string `json:"RandomStatementID"` StatementItems []StatementItem `json:"StatementItems"` ElectronicPayments []ElectronicPaymentPersisted `json:"ElectronicPayments"` CashPayments []CashPaymentPersisted `json:"CashPayments"` TotalBillVariations []TotalBillVariation `json:"TotalBillVariations"` ShiftID string `json:"ShiftID"` StatementTimeStamp string `json:"StatementTimeStamp"` IssuersPrivateMetadata map[string]string `json:"IssuersPrivateMetadata"` ShortStatementID string `json:"ShortStatementID"` StatementCreationDate string `json:"StatementCreationDate"` StatementText string `json:"StatementText"` Description string `json:"Description"` PersonResponsible string `json:"PersonResponsible"` IssuerLogoUrl string `json:"IssuerLogoUrl"` DetailsInHeader string `json:"DetailsInHeader"` TotalAmount float32 `json:"TotalAmount"` TotalTaxAmount float32 `json:"TotalTaxAmount"` DetailsInBodyBeforeItems string `json:"DetailsInBodyBeforeItems"` DetailsInBodyAfterItems string `json:"DetailsInBodyAfterItems"` StatementIdentifier string `json:"StatementIdentifier"` StatementIdentifier2 string `json:"StatementIdentifier2"` StatementIdentifier3 string `json:"StatementIdentifier3"` ExtraInfo1 string `json:"ExtraInfo1"` ExtraInfo2 string `json:"ExtraInfo2"` ExtraInfo3 string `json:"ExtraInfo3"` ExtraInfo4 string `json:"ExtraInfo4"` ExtraInfo5 string `json:"ExtraInfo5"` ExtraInfo6 string `json:"ExtraInfo6"` ExtraInfo7 string `json:"ExtraInfo7"` ExtraInfo8 string `json:"ExtraInfo8"` ExtraInfo9 string `json:"ExtraInfo9"` ExtraInfo10 string `json:"ExtraInfo10"` AttachmentPageTop []byte `json:"AttachmentPageTop"` AttachmentPageTopMimeType string `json:"AttachmentPageTopMimeType"` AttachmentItemsTop []byte `json:"AttachmentItemsTop"` AttachmentItemsTopMimeType string `json:"AttachmentItemsTopMimeType"` AttachmentItemsBottom []byte `json:"AttachmentItemsBottom"` AttachmentItemsBottomMimeType string `json:"AttachmentItemsBottomMimeType"` AttachmentPageBottom []byte `json:"AttachmentPageBottom"` AttachmentPageBottomMimeType string `json:"AttachmentPageBottomMimeType"` TotalLoyaltyPoints float32 `json:"TotalLoyaltyPoints"` PaymentProcessingResult uint `json:"PaymentProcessingResult"` PaymentProcessingMsg string `json:"PaymentProcessingMsg"` UniqueStatementID string `json:"UniqueStatementID"` PaymentNameAddressRequestObject PaymentNameAddressRequest `json:"PaymentNameAddressRequestObject"` RetailerGroupID string `json:"RetailerGroupID"` MetaDataExtras map[string]string `json:"MetaDataExtras"` }
type PaymentNameAddressRequest ¶
type PaymentNameAddressRequest struct { PaymentRequestAmount float64 `json:"PaymentRequest_Amount"` PaymentRequestCurrency string `json:"PaymentRequest_Currency"` AllowedCardNetworks []string `json:"allowedCardNetworks"` PaymentRecordClientAuthenticator string `json:"PaymentRecordClientAuthenticator"` IncludePhoneNumberInResponse bool `json:"IncludePhoneNumberInResponse"` IncludeNameInResponse bool `json:"IncludeNameInResponse"` IncludeEmailAddressInResponse bool `json:"IncludeEmailAddressInResponse"` IncludeBillingAddressInResponse bool `json:"IncludeBillingAddressInResponse"` IncludeShippingAddressInResponse bool `json:"IncludeShippingAddressInResponse"` IsViaTerminal bool `json:"IsViaTerminal"` AllowFuturePayments bool `json:"AllowFuturePayments"` }
PaymentNameAddressRequest represents a request for payment and address information.
type PaymentProcessingRequest ¶
type PaymentProcessingRequest struct { MerchantGroupID string `json:"MerchantGroupID"` MerchantID string `json:"MerchantID"` Amount float64 `json:"Amount"` Currency string `json:"Currency"` Customer *PaymentRecordCustomer `json:"Customer"` ExternalUniqueID string `json:"ExternalUniqueID"` IsViaTerminal bool `json:"IsViaTerminal"` IsPreAuth bool `json:"IsPreAuth"` IssuerStatementRecord *IssuerStatementRecord `json:"IssuerStatementRecord"` }
PaymentProcessingRequest represents a request for processing a payment.
type PaymentProcessingResponse ¶
type PaymentProcessingResponse struct { ClientSecret string `json:"ClientSecret"` ClientAuthenticator string `json:"ClientAuthenticator"` RandomStatementID string `json:"RandomStatementID"` StatementTimeStamp string `json:"StatementTimeStamp"` ExternalUniqueID string `json:"ExternalUniqueID"` //Data map[string]string `json:"Data"` PaymentProcessingResponseID string `json:"PaymentProcessingResponseID"` }
type PaymentRecordCustomer ¶
type PaymentRecordCustomer struct { CustomerAddress PaymentRecordCustomerAddress `json:"CustomerAddress"` CustomerName string `json:"CustomerName"` CustomerEmail string `json:"CustomerEmail"` CustomerIP string `json:"CustomerIP"` CustomerPhone string `json:"CustomerPhone"` CustomerAddressID string `json:"CustomerAddressID"` }
type PaymentRecordCustomerAddress ¶
type PaymentRecordCustomerAddress struct { PaymentRecordCustomerAddressID string `json:"PaymentRecordCustomerAddressID"` Line1 string `json:"Line1"` Line2 string `json:"Line2"` CityOrSuburb string `json:"CityOrSuburb"` StateOrPrivince string `json:"StateOrPrivince"` PostalCode string `json:"PostalCode"` Country string `json:"Country"` PhoneNumber string `json:"PhoneNumber"` FullName string `json:"FullName"` }
type StatementItem ¶
type StatementItem struct { StatementItemID int `json:"StatementItemID"` RandomStatementID string `json:"RandomStatementID"` Description string `json:"Description"` Identifier string `json:"Identifier"` Url string `json:"Url"` Quantity float64 `json:"Quantity"` UnitPrice float64 `json:"UnitPrice"` TotalPrice float64 `json:"TotalPrice"` Tax float64 `json:"Tax"` ExtraInfo1 string `json:"ExtraInfo1"` ExtraInfo2 string `json:"ExtraInfo2"` ExtraInfo3 string `json:"ExtraInfo3"` ExtraInfo4 string `json:"ExtraInfo4"` ExtraInfo5 string `json:"ExtraInfo5"` ExtraInfo6 string `json:"ExtraInfo6"` UnitTitle string `json:"UnitTitle"` UnitLoyaltyPoint float64 `json:"UnitLoyaltyPoint"` LoyaltyPoint float64 `json:"LoyaltyPoint"` ItemClassification string `json:"ItemClsassification"` ItemCategoryID string `json:"ItemCategoryID"` ItemCategoryTitle string `json:"ItemCategoryTitle"` AddedMoment time.Time `json:"AddedMoment"` WarrantyExpiryMomentISO8601 string `json:"WarrantyExpiryMomentISO8601"` LoyaltyPointsExpiryMomentISO8601 string `json:"LoyaltyPointsExpiryMomentISO8601"` }
type TotalBillVariation ¶
type TotalBillVariation struct { TotalBillVariationID string `json:"TotalBillVariationID"` RandomStatementID string `json:"RandomStatementID"` Description string `json:"Description"` TotalAmountVariationCoefficientAfterTax *float32 `json:"TotalAmountVariationCoefficientAfterTax"` TotalAmountVariationCoefficientAfterTaxInputValueCap *float32 `json:"TotalAmountVariationCoefficientAfterTaxInputValueCap"` TotalAmountVariationCoefficientBeforeTax *float32 `json:"TotalAmountVariationCoefficientBeforeTax"` TotalAmountVariationCoefficientBeforeCap *float32 `json:"TotalAmountVariationCoefficientBeforeCap"` TotalAmountVariationFixedAmountAfterTax *float32 `json:"TotalAmountVariationFixedAmountAfterTax"` TotalAmountVariationFixedAmountAfterTaxCap *float32 `json:"TotalAmountVariationFixedAmountAfterTaxCap"` TotalAmountVariationFixedAmountBeforeTax *float32 `json:"TotalAmountVariationFixedAmountBeforeTax"` TotalAmountVariationFixedAmountBeforeTaxCap *float32 `json:"TotalAmountVariationFixedAmountBeforeTaxCap"` }