public void CompleteThreeDsFail(string receiptId, ThreeDResultModel threeDResult, string responseData) { var httpClient = Substitute.For <IHttpClient>(); var response = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(responseData) }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var responseTask = new TaskCompletionSource <HttpResponseMessage>(); responseTask.SetResult(response); httpClient.SendAsync(Arg.Any <HttpRequestMessage>()).Returns(responseTask.Task); var client = new Client(new Connection(httpClient, DotNetLoggerFactory.Create, "http://judo.com")); var judo = new JudoPayApi(DotNetLoggerFactory.Create, client); var paymentReceiptResult = judo.ThreeDs.Complete3DSecure(receiptId, threeDResult).Result; Assert.NotNull(paymentReceiptResult); Assert.IsTrue(paymentReceiptResult.HasError); }
public async Task <IResult <ITransactionResult> > CompleteDSecure(string receiptID, string paRes, string md) { try { ThreeDResultModel model = new ThreeDResultModel(); model.PaRes = paRes; Task <IResult <PaymentReceiptModel> > task = _judoAPI.ThreeDs.Complete3DSecure(receiptID, model); return(await task); } catch (Exception e) { var error = new JudoError() { Exception = e, ApiError = new JudoPayDotNet.Errors.JudoApiErrorModel() { ErrorMessage = e.InnerException.ToString() } }; throw error; } }
public Task <IResult <PaymentReceiptModel> > Complete3DSecure(string receiptId, ThreeDResultModel model) { var validationError = Validate <ThreeDResultModel, PaymentReceiptModel>(_threeDResultValidator, model); var address = string.Format("{0}/{1}", CompleteThreeDAuthorizationAddress, receiptId); return(validationError ?? PutInternal <ThreeDResultModel, PaymentReceiptModel>(address, model)); }