public void CompleteThreeDsWithSuccess(long receiptId, ThreeDResultModel threeDResult, string responseData) { var httpClient = Substitute.For<IHttpClient>(); var response = new HttpResponseMessage(HttpStatusCode.OK) {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://something.com")); var judo = new JudoPayApi(DotNetLoggerFactory.Create, client); var paymentReceiptResult = judo.ThreeDs.Complete3DSecure(receiptId, threeDResult).Result; Assert.NotNull(paymentReceiptResult); Assert.IsFalse(paymentReceiptResult.HasError); Assert.NotNull(paymentReceiptResult.Response); Assert.That(paymentReceiptResult.Response.ReceiptId, Is.EqualTo(134567)); Assert.That(paymentReceiptResult.Response.ThreeDSecure.Result, Is.EqualTo("done")); }
public Task<IResult<PaymentReceiptModel>> Complete3DSecure(long 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); }
public async Task<IResult<ITransactionResult>> Complete3DSecure(long 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.ModelError() { Message = e.InnerException.ToString() } }; throw error; } }