Exemple #1
0
        private async Task CreatePartnerPaymentRequestAsync(string customerId)
        {
            _log.Info("Sending payment request to customer", new { customerId });

            var partnerRes = await _partnerManagementClient.Partners.GetAsync(
                new PartnerListRequestModel
            {
                CurrentPage = 1,
                PageSize    = 1,
                Vertical    = Vertical.Hospitality
            });

            var partnerId = partnerRes.PartnersDetails.First().Id;
            var location  = await _partnerManagementClient.Partners.GetByIdAsync(partnerId);

            var externalLocationId = location.Locations.First().ExternalId;

            var request = new PaymentsCreateRequestModel
            {
                CustomerId         = customerId,
                Currency           = _paymentRequestSettings.Currency,
                PartnerId          = partnerId.ToString(),
                ExternalLocationId = externalLocationId,
                //PosId = _paymentRequestSettings.PosId,
                ExpirationTimeoutInSeconds = _paymentRequestSettings.CustomerExpirationInSeconds,
                PaymentInfo = _paymentRequestSettings.PaymentInfo,
                PaymentProcessedCallbackUrl = null,
                RequestAuthToken            = null,
                TotalFiatAmount             = _paymentRequestSettings.TotalFiatAmount
            };

            if (_paymentRequestSettings.FiatAmount.HasValue)
            {
                request.FiatAmount = _paymentRequestSettings.FiatAmount;
            }
            else if (!string.IsNullOrWhiteSpace(_paymentRequestSettings.TokensAmount))
            {
                request.TokensAmount = _tokensAmount;
            }

            var paymentRequestResult = await _partnersIntegrationClient.PaymentsApi.CreatePaymentRequestAsync(request);

            if (paymentRequestResult.Status != PaymentCreateStatus.OK)
            {
                _log.Error(message: $"Couldn't create payment request - {paymentRequestResult.Status}", context: request);
            }
        }
        public async Task <PaymentsCreateResponseModel> CreatePaymentRequestAsync([FromBody] PaymentsCreateRequestModel model)
        {
            var responseContract = await _paymentsService.CreatePaymentRequestAsync(_mapper.Map <PaymentsCreateRequest>(model));

            return(_mapper.Map <PaymentsCreateResponseModel>(responseContract));
        }