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