コード例 #1
0
        public string GetTransactionRequest(NewMandateRequest newMandateRequest, string containedData)
        {
            VerifyExpirationPeriod(newMandateRequest.ExpirationPeriod);

            var containedDocument = new XmlDocument();

            containedDocument.LoadXml(containedData);

            var acquirerTrxReq = new AcquirerTrxReq
            {
                createDateTimestamp = Now(),
                productID           = this.LocalInstrumentCode == Instrumentation.Core ? ProductId_CORE : ProductId_B2B,
                version             = "1.0.0",

                Merchant = new AcquirerTrxReqMerchant
                {
                    merchantID        = Configuration.Contract.Id,
                    subID             = Configuration.Contract.SubId.ToString(CultureInfo.InvariantCulture),
                    merchantReturnURL = Configuration.Merchant.ReturnUrl
                },

                Issuer = new AcquirerTrxReqIssuer
                {
                    issuerID = newMandateRequest.DebtorBankId
                },

                Transaction = new AcquirerTrxReqTransaction
                {
                    entranceCode = newMandateRequest.EntranceCode,

                    expirationPeriod = newMandateRequest.ExpirationPeriod.HasValue ? XmlConvert.ToString(newMandateRequest.ExpirationPeriod.Value) : null,
                    language         = newMandateRequest.Language.ToString(),
                    container        = new Transactioncontainer
                    {
                        Any = new [] { containedDocument.DocumentElement }
                    }
                }
            };

            return(ProcessDateTimes(acquirerTrxReq.Serialize()));
        }
コード例 #2
0
        public string GetNewMandate(NewMandateRequest newMandateRequest)
        {
            VerifyMaxAmount(newMandateRequest.MaxAmount);

            var eMandate = new p09.Document
            {
                MndtInitnReq = new p09.MandateInitiationRequestV04
                {
                    GrpHdr = new p09.GroupHeader47
                    {
                        MsgId   = newMandateRequest.MessageId,
                        CreDtTm = Now(),
                    },
                    Mndt = new[]
                    {
                        new p09.Mandate7
                        {
                            MndtId    = newMandateRequest.EMandateId,
                            MndtReqId = "NOTPROVIDED",
                            Tp        = new p09.MandateTypeInformation1
                            {
                                SvcLvl = new p09.ServiceLevel8Choice
                                {
                                    ItemElementName = p09.ItemChoiceType4.Cd,
                                    Item            = "SEPA"
                                },
                                LclInstrm = new p09.LocalInstrument2Choice
                                {
                                    ItemElementName = p09.ItemChoiceType5.Cd,
                                    Item            = Enum.GetName(typeof(Instrumentation), this.LocalInstrumentCode).ToUpper()
                                }
                            },
                            Ocrncs = new p09.MandateOccurrences3
                            {
                                SeqTp = (p09.SequenceType2Code)newMandateRequest.SequenceType
                                        // TODO: not allowed yet
                                        //Frqcy = new p09.Frequency21Choice
                                        //{
                                        //    Item = new p09.FrequencyPeriod1
                                        //    {
                                        //        Tp = p09.Frequency6Code.YEAR,
                                        //        CntPerPrd = 1.0
                                        //    }
                                        //}
                            },
                            MaxAmt = (this.LocalInstrumentCode == Instrumentation.B2B && newMandateRequest.MaxAmount.HasValue)?
                                     new p09.ActiveCurrencyAndAmount {
                                Ccy = "EUR", Value = newMandateRequest.MaxAmount.Value
                            } : null,
                            Rsn = newMandateRequest.EMandateReason != null? new p09.MandateSetupReason1Choice
                            {
                                ItemElementName = p09.ItemChoiceType6.Prtry,
                                Item            = newMandateRequest.EMandateReason != null? newMandateRequest.EMandateReason : String.Empty
                            } : null,
                            Cdtr = new p09.PartyIdentification43
                            {
                            },
                            Dbtr = new p09.PartyIdentification43
                            {
                                Id = newMandateRequest.DebtorReference != null? new p09.Party11Choice
                                {
                                    Item = new p09.PersonIdentification5()
                                    {
                                        Othr = new[]
                                        {
                                            new p09.GenericPersonIdentification1
                                            {
                                                Id = newMandateRequest.DebtorReference
                                            }
                                        }
                                    }
                                } : null,
                            },
                            DbtrAgt = new p09.BranchAndFinancialInstitutionIdentification5
                            {
                                FinInstnId = new p09.FinancialInstitutionIdentification8
                                {
                                    BICFI = newMandateRequest.DebtorBankId
                                }
                            },
                            RfrdDoc = newMandateRequest.PurchaseId != null? new []
                            {
                                new p09.ReferredDocumentInformation6
                                {
                                    Tp = new p09.ReferredDocumentType4
                                    {
                                        CdOrPrtry = new p09.ReferredDocumentType3Choice
                                        {
                                            Item = newMandateRequest.PurchaseId
                                        }
                                    }
                                }
                            } : null,
                        }
                    }
                }
            };

            return(ProcessDateTimes(eMandate.Serialize()));
        }