Beispiel #1
0
        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"));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
		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;
			}
		}