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 })); } }
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)); }
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)); }