internal static AcquirerTrxReq CreateAcquirerRequest( string merchantId, InitiateTransactionSettings settings) { settings.Validate(); string xmlExpirationPeriod = settings.ExpirationPeriod.HasValue ? XmlConvert.ToString(settings.ExpirationPeriod.Value) : default; return(new AcquirerTrxReq { Issuer = new Issuer { IssuerId = settings.IssuerId, }, Merchant = new Merchant { MerchantId = merchantId, SubId = settings.SubId, MerchantReturnURL = settings.ReturnUrl.OriginalString, }, Transaction = new Transaction { Language = settings.Language, EntranceCode = settings.EntranceCode, ExpirationPeriod = xmlExpirationPeriod, Container = XmlContainerBuilder.CreateAuthnRequestContainer( settings.MerchantReference, merchantId, settings.ReturnUrl.AbsoluteUri, settings.ServiceIds), }, }); }
/// <summary> /// Initiates a transaction. /// </summary> /// <param name="settings">The initiate transaction request settings.</param> /// <param name="cancellationToken">Cancellation token.</param> /// <returns>The transaction result.</returns> public async Task <TransactionResult> InitiateTransactionAsync( InitiateTransactionSettings settings, CancellationToken cancellationToken = default) { var request = RequestBuilder.CreateAcquirerRequest( merchantId, settings); var response = await SendObjectAsXmlAsync( request, cancellationToken); return(ResultParser.ParseTransactionResult(response)); }