Пример #1
0
        public GenerateTokenRequest SetTelecomeCharge(TelecomeChargeData chargeData)
        {
            AddAdditionalData(nameof(chargeData.DestinationMobile), chargeData.DestinationMobile);
            AddAdditionalData(nameof(chargeData.ProductId), chargeData.ProductId);

            return(SetServiceType(chargeData.TelecomOperator.ChargeServiceType));
        }
        public async Task <IActionResult> PayCharge(PayChargeViewModel data)
        {
            try
            {
                var telOperator = TelecomOperator.GetList().SingleOrDefault(x => x.Id == data.TelecomOperatorId);
                if (telOperator == null)
                {
                    throw new Exception("TelecomOperator not found");
                }
                var chargeData = new TelecomeChargeData(data.DestinationMobile, telOperator, data.ProductId);
                var tokenModel = await _services.GenerateTelecomeChargeToken(data.Amount, GenerateCallbackUrl(Request), chargeData, data.Mobile);

                return(View("Pay", tokenModel));
            }
            catch (Exception exc)
            {
                return(View("Error", new ErrorViewModel
                {
                    Message = exc.Message
                }));
            }
        }
Пример #3
0
        public async Task <GenerateTokenResponse> GenerateTelecomeChargeToken(ulong amountInRials, string callbackURL, TelecomeChargeData chargeData, string mobileNumber = null)
        {
            if (chargeData == null)
            {
                throw new ArgumentNullException(nameof(chargeData));
            }

            var request = new GenerateTokenRequest(_config.MerchantConfigurationId, await _localInvoiceIdGenerator.GetNext(), amountInRials, callbackURL)
                          .SetTelecomeCharge(chargeData);

            if (!string.IsNullOrWhiteSpace(mobileNumber))
            {
                request.SetMobileNumber(mobileNumber);
            }
            return(await GenerateToken(request));
        }