/// <summary>
        /// Gets merchant account transactions.
        /// Privatbank API reference: <https://api.privatbank.ua/#p24/orders>.
        /// </summary>
        /// <param name="password">Private merchant password.</param>
        /// <param name="merchantId">Merchant id.</param>
        /// <param name="cardNumber">Merchant assossiated card number.</param>
        /// <param name="from">Statement start date.</param>
        /// <param name="to">Statement end date.</param>
        /// <returns></returns>
        public async Task <PrivatbankAccountStatement> GetMerchantAccountStatementAsync(
            string password, string merchantId, string cardNumber, DateTime from, DateTime to)
        {
            AccountTransactionsRequest request  = new AccountTransactionsRequest(password, merchantId, cardNumber, from, to);
            HttpResponseMessage        response = await _privatbankClient.GetMerchantDataAsync("rest_fiz", request.Xml);

            string xml = await response.Content.ReadAsStringAsync();

            AccountStatementParser     parser    = new AccountStatementParser();
            PrivatbankAccountStatement statement = parser.Parse(xml);

            return(statement);
        }
コード例 #2
0
        public async Task <IReadOnlyCollection <ExternalAccountTransactionModel> > GetAccountTransactionsAsync(AccountStatementRequestParams requestParams)
        {
            PrivatbankAccountStatement statement = await _accountService.GetMerchantAccountStatementAsync(
                requestParams.Token, requestParams.BankClientId, requestParams.Account, requestParams.From, requestParams.To);

            if (statement == null || statement.Items == null)
            {
                return(new List <ExternalAccountTransactionModel>());
            }

            List <ExternalAccountTransactionModel> transactions = statement.Items
                                                                  .Select(i => new ExternalAccountTransactionModel(
                                                                              i.AppCode,
                                                                              i.TransactionDate,
                                                                              i.Description,
                                                                              i.TransactionAmount.Currency,
                                                                              i.TransactionAmount.Value,
                                                                              i.AccountBalance.Value))
                                                                  .ToList();

            return(transactions);
        }