public async Task <IActionResult> PayBolton(PayBoltonViewModel data)
        {
            try
            {
                var telOperator = TelecomOperator.GetList().SingleOrDefault(x => x.Id == data.TelecomOperatorId);
                if (telOperator == null)
                {
                    throw new Exception("TelecomOperator not found");
                }
                var simType = SimType.GetList().SingleOrDefault(x => x.Id == data.SimTypeId);
                if (simType == null)
                {
                    throw new Exception("SimType not found");
                }
                var boltonData = new TelecomeBoltonData(data.DestinationMobile, telOperator, simType, data.ProductId);
                var tokenModel = await _services.GenerateTelecomeBoltonToken(data.Amount, GenerateCallbackUrl(Request), boltonData, data.Mobile);

                return(View("Pay", tokenModel));
            }
            catch (Exception exc)
            {
                return(View("Error", new ErrorViewModel
                {
                    Message = exc.Message
                }));
            }
        }
Ejemplo n.º 2
0
        public GenerateTokenRequest SetTelecomeCharge(TelecomeBoltonData boltonData)
        {
            AddAdditionalData(nameof(boltonData.DestinationMobile), boltonData.DestinationMobile);
            AddAdditionalData(nameof(boltonData.ProductId), boltonData.ProductId);
            AddAdditionalData(nameof(boltonData.SimTypeId), boltonData.SimTypeId);

            return(SetServiceType(boltonData.TelecomOperator.BoltonServiceType));
        }
Ejemplo n.º 3
0
        public async Task <GenerateTokenResponse> GenerateTelecomeBoltonToken(ulong amountInRials, string callbackURL, TelecomeBoltonData boltonData, string mobileNumber = null)
        {
            if (boltonData == null)
            {
                throw new ArgumentNullException(nameof(boltonData));
            }

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

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