/// <summary> /// Capture Credit Card Async. /// </summary> /// <returns>ANetCaptureCreateTransactionResponse instance</returns> /// <param name="transaction">TransactionRequest.</param> /// <param name="refId">Reference identifier.</param> public async Task <ANetCaptureTransactionResponse> CaptureAsync(ANetCaptureTransactionRequest transaction, string refId) { var createRequest = new ANetCaptureCreateTransactionRequest(); var requestBody = new ANetCaptureTransactionRequestBody(); var merchantAuthentication = getMerchantAuthentication(); transaction.TransactionType = ANetTransactionType.priorAuthCaptureTransaction; requestBody.MerchantAuthentication = merchantAuthentication; requestBody.RefId = refId; requestBody.TransactionRequest = transaction; createRequest.CreateTransactionRequest = requestBody; return(await captureAsync(createRequest)); }
private async Task <ANetCaptureTransactionResponse> captureAsync(ANetCaptureCreateTransactionRequest request) { var json = JSON.SerializeObject(request); var strResult = await _endPoint.PostStringAsync(json).ReceiveString(); var entity = JSON.DeserializeObject <ANetCaptureCreateTransactionResponse>(strResult); if (entity.TransactionResponse != null) { return(entity.TransactionResponse); } else { //return a new transactionResponse object with the message list var errorEntity = new ANetCaptureTransactionResponse(); var messages = JSON.DeserializeObject <ANetCreateResponseMessages>(strResult); errorEntity.ResponseCode = ANetResponseCodeType.Error; errorEntity.Messages = messages.ToMessageEnumerable(); return(errorEntity); } }