public static ANetApiResponse PostData <TQ, TS>(AuthorizeNet.Environment env, TQ request)
            where TQ : ANetApiRequest
            where TS : ANetApiResponse
        {
            ANetApiResponse response = null;

            if (null == request)
            {
                throw new ArgumentNullException("request");
            }
            Logger.LogDebug("MerchantInfo->LoginId/TransactionKey: '{0}':'{1}'->{2}", request.merchantAuthentication.name, request.merchantAuthentication.ItemElementName, request.merchantAuthentication.Item);

            var    postUrl          = GetPostUrl(env);
            var    requestType      = typeof(TQ);
            string responseAsString = null;

            using (var clientHandler = new HttpClientHandler())
            {
                //TODO: clientHandler.Proxy = SetProxyIfRequested(clientHandler.Proxy);
                using (var client = new HttpClient(clientHandler))
                {
                    //set the http connection timeout
                    var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout);
                    client.Timeout = TimeSpan.FromMilliseconds(httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout);

                    //set the time out to read/write from stream
                    //var httpReadWriteTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpReadWriteTimeout);
                    //client.ReadWriteTimeout = (httpReadWriteTimeout != 0 ? httpReadWriteTimeout : Constants.HttpReadWriteDefaultTimeout);

                    var content     = new StringContent(XmlUtility.Serialize(request), Encoding.UTF8, "text/xml");
                    var webResponse = client.PostAsync(postUrl, content).Result;
                    Logger.LogDebug("Retrieving Response from Url: '{0}'", postUrl);
                    // Get the response
                    Logger.LogDebug("Received Response: '{0}'", webResponse);
                    responseAsString = webResponse.Content.ReadAsStringAsync().Result;
                    Logger.LogDebug("Response from Stream: '{0}'", responseAsString);
                }
            }
            if (null != responseAsString)
            {
                try
                {
                    // try deserializing to the expected response type
                    response = XmlUtility.Deserialize <TS>(responseAsString);
                }
                catch (Exception)
                {
                    // probably a bad response, try if this is an error response
                    response = XmlUtility.Deserialize <ANetApiResponse>(responseAsString);
                }

                //if error response
                if (response is ErrorResponse)
                {
                    response = response as ErrorResponse;
                }
            }

            return(response);
        }
Esempio n. 2
0
 protected void BtnSubmit_Click(object sender, EventArgs e)
 {
     if (amount != 0.00m)
     {
         //ANetApiResponse res = Run("2hUJrx4D6S", "68jgK54v4jD3W5rL", amount); //testing
         ANetApiResponse res = Run("4XZ9RqmC8k6", "4U466w8dBYdwsM5f", amount);//production
         if (paymentStatus == "success")
         {
             String             id      = TxtEmail.Text + Guid.NewGuid().ToString("N");
             HotelDBApp.Payment payment = new HotelDBApp.Payment()
             {
                 Amount = amount, SubscriptionEndDate = expiryDate, PaymentDate = DateTime.Now, Email = TxtEmail.Text, HotelId = hotelid, Id = id, URL = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/')) + "/"
             };
             String paymentId = HotelDBApp.Payment.AddPayment(payment);
             if (string.IsNullOrEmpty(hotelid))
             {
                 Email email = CreateEmail(paymentId, payment.Email, payment.URL);
                 SendEmail(email);
             }
             LblPrice.Text      = "Your transaction was successful";
             LblPrice.ForeColor = System.Drawing.Color.Green;
         }
         else
         {
             LblPrice.Text      = "Your transaction was unsuccessful";
             LblPrice.ForeColor = System.Drawing.Color.Red;
         }
     }
     else
     {
         LblPrice.Text      = "Please select one of the Subscription Plans";
         LblPrice.ForeColor = System.Drawing.Color.Red;
     }
 }
Esempio n. 3
0
        public void MockdeleteCustomerProfileTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <deleteCustomerProfileRequest, deleteCustomerProfileResponse>();
            var mockRequest    = new deleteCustomerProfileRequest
            {
                merchantAuthentication = new merchantAuthenticationType {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
            };
            var mockResponse = new deleteCustomerProfileResponse
            {
                refId        = "1234",
                sessionToken = "sessiontoken",
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <deleteCustomerProfileRequest, deleteCustomerProfileResponse, deleteCustomerProfileController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);
        }
        /// <summary>
        /// w/ card exp date in format YYYY-MM
        /// </summary>
        /// <param name="profileId"></param>
        /// <param name="paymentProfile"></param>
        /// <returns></returns>
        public ANetApiResponse UpdatePaymentProfile(string profileId, PaymentProfile paymentProfile)
        {
            if (string.IsNullOrWhiteSpace(profileId))
            {
                throw new ArgumentNullException("profileId", ErrorMessages.ProfileIdNullErrorCode + ErrorMessages.ProfileIdNullErrorMessage);
            }

            if (paymentProfile == null)
            {
                throw new ArgumentNullException("paymentProfile", ErrorMessages.PaymentProfileNullErrorCode + ErrorMessages.PaymentProfileNullErrorMessage);
            }

            ANetApiResponse result = null;

            try
            {
                result = Gateway.UpdatePaymentProfile(profileId, paymentProfile);
                return(result);
            }
            catch
            {
                throw;
            }
            finally
            {
                OnUpdatePaymentProfile(result, profileId, paymentProfile);
            }
        }
Esempio n. 5
0
        public void MockauthenticateTestTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <authenticateTestRequest, authenticateTestResponse>();
            var mockRequest    = new authenticateTestRequest
            {
                merchantAuthentication = new merchantAuthenticationType()
                {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
            };
            var mockResponse = new authenticateTestResponse
            {
                refId        = "1234",
                sessionToken = "sessiontoken",
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <authenticateTestRequest, authenticateTestResponse, authenticateTestController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

//		    Assert.IsNotNull(controllerResponse.);
            LogHelper.info(Logger, "authenticateTest: Details:{0}", controllerResponse);
        }
Esempio n. 6
0
        public void TestChargeCreditCardAmount()
        {
            foreach (string values in GenerateRandomString(1, 5))
            {
                transactionRequest.amount = Convert.ToDecimal(values);
                response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
                Assert.IsNotNull(response);
                Assert.AreEqual(response.messages.resultCode, messageTypeEnum.Ok);
            }
            foreach (string values in GenerateNegativeString(1, 5))
            {
                if (values != "")
                {
                    transactionRequest.amount = Convert.ToDecimal(values);
                }
                else
                {
                    transactionRequest.amount = 0;
                }

                response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
                Assert.IsNotNull(response);
                Assert.AreNotEqual(response.messages.resultCode, messageTypeEnum.Ok);
            }
        }
Esempio n. 7
0
        public void TestAllSampleCodes()
        {
            string       fileName   = Constants.CONFIG_FILE;
            StreamReader reader     = File.OpenText(fileName);
            TestRunner   tr         = new TestRunner();
            var          numRetries = 3;

            string line;

            while ((line = reader.ReadLine()) != null)
            {
                string[] items = line.Split('\t');

                string apiName      = items[0];
                string isDependent  = items[1];
                string shouldApiRun = items[2];

                if (!shouldApiRun.Equals("1"))
                {
                    continue;
                }

                Console.WriteLine(new String('-', 20));
                Console.WriteLine("Running test case for :: " + apiName);
                Console.WriteLine(new String('-', 20));
                ANetApiResponse response = null;
                for (int i = 0; i < numRetries; ++i)
                {
                    try
                    {
                        if (isDependent.Equals("0"))
                        {
                            response = InvokeRunMethod(apiName);
                        }
                        else
                        {
                            response = (ANetApiResponse)typeof(TestRunner).GetMethod("Test" + apiName).Invoke(tr, new Object[] { });
                        }

                        if ((response != null) && (response.messages.resultCode == messageTypeEnum.Ok))
                        {
                            break;
                        }
                    }
                    catch (Exception ex)

                    {
                        //Console.WriteLine(apiName);
                        Console.WriteLine(ex.ToString());
                    }

                    Assert.IsNotNull(response);
                    Assert.AreEqual(response.messages.resultCode, messageTypeEnum.Ok);
                }
            }
        }
        public ActionResult <AcceptResponse> AcceptJs(string apiLoginId, string apiTransactionKey, string token)
        {
            AcceptResponse objAcceptResponse = new AcceptResponse();

            try
            {
                ProxyMethod();

                ANetApiResponse profileResponse = CreateAnAcceptPaymentTransaction.Run(apiLoginId, apiTransactionKey, token);


                if (profileResponse != null)
                {
                    if (profileResponse.messages.resultCode.ToString().ToLower() == "ok")
                    {
                        objAcceptResponse.status       = true;
                        objAcceptResponse.successValue = ((AuthorizeNet.Api.Contracts.V1.createTransactionResponse)profileResponse)
                                                         .transactionResponse.transId;
                    }
                    else
                    {
                        objAcceptResponse.status = false;

                        if (profileResponse.messages.resultCode.ToString().ToLower() == "error")
                        {
                            objAcceptResponse.errorMessage = profileResponse.messages.message[0].code + " " +
                                                             profileResponse.messages.message[0].text;
                        }
                        else
                        {
                            objAcceptResponse.errorMessage = ((AuthorizeNet.Api.Contracts.V1.createTransactionResponse)profileResponse)
                                                             .transactionResponse
                                                             .errors[0].errorCode +
                                                             ((AuthorizeNet.Api.Contracts.V1.createTransactionResponse)profileResponse)
                                                             .transactionResponse.errors[0].errorText;
                        }
                    }
                }
                else
                {
                    objAcceptResponse.status = false;
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                objAcceptResponse.status = false;

                objAcceptResponse.errorMessage = "Error occured while executing payment. " + e.Message;
            }


            return(objAcceptResponse);
        }
        public void MockARBGetSubscriptionListTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <ARBGetSubscriptionListRequest, ARBGetSubscriptionListResponse>();
            var mockRequest    = new ARBGetSubscriptionListRequest
            {
                merchantAuthentication = new merchantAuthenticationType {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
                refId      = RefId,
                searchType = ARBGetSubscriptionListSearchTypeEnum.subscriptionActive,
                paging     = new Paging {
                    limit = 100, offset = 1
                },
                sorting = new ARBGetSubscriptionListSorting
                {
                    orderBy         = ARBGetSubscriptionListOrderFieldEnum.id,
                    orderDescending = false
                },
            };
            var subscriptionDetail = new SubscriptionDetail
            {
                id            = 1234,
                accountNumber = "1234",
                amount        = SetValidTransactionAmount(Counter) / 100,
            };
            var subscriptionDetails = new List <SubscriptionDetail> {
                subscriptionDetail
            };
            var mockResponse = new ARBGetSubscriptionListResponse
            {
                refId               = "1234",
                sessionToken        = "sessiontoken",
                subscriptionDetails = subscriptionDetails.ToArray(),
                totalNumInResultSet = subscriptionDetails.Count,
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <ARBGetSubscriptionListRequest, ARBGetSubscriptionListResponse, ARBGetSubscriptionListController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

            Assert.IsNotNull(controllerResponse.subscriptionDetails);
            LogHelper.info(Logger, "ARBGetSubscriptionList: Count:{0}, Details:{1}", controllerResponse.totalNumInResultSet, controllerResponse.subscriptionDetails);
        }
Esempio n. 10
0
        private static TS ExecuteTestRequest <TQ, TS, TT>(bool successExpected, TQ request, AuthorizeNet.Environment execEnvironment = null)
            where TQ : ANetApiRequest
            where TS : ANetApiResponse
            where TT : ApiOperationBase <TQ, TS>
        {
            LogHelper.debug(Logger, "Created {0} Request: '{1}'", request.GetType(), request);

            TS response   = null;
            TT controller = null;

            _errorResponse = null;
            var controllerClass = typeof(TT);

            try {
                var parameters       = new object[] { request };
                var controllerObject = Activator.CreateInstance(controllerClass, parameters);
                if (controllerObject is TT)
                {
                    controller = (TT)controllerObject;
                }
                if (null != controller)
                {
                    ANetApiResponse baseResponse = controller.ExecuteWithApiResponse(execEnvironment);
                    LogHelper.info(Logger, "{0} ResultCode: {1}", controllerClass, controller.GetResultCode());
                    LogHelper.info(Logger, "{0} Results:    {1}", controllerClass, controller.GetResults());
                    response = (TS)baseResponse;
                }
                else
                {
                    LogHelper.error(Logger, "Unable to instantiate Controller: '{0}'", controllerClass);
                }
            } catch (Exception e) {
                LogHelper.error(Logger, "Exception : '{0}' during {1}", e.Message, controllerClass);
            }
            if (successExpected)
            {
                ProcessFailureResult <TQ, TS, TT>(true, controller, response);
                ValidateSuccess <TQ, TS, TT>(controller, response);
            }
            else
            {
                ValidateFailure <TQ, TS, TT>(controller, response);
            }
            if (null == response && null != controller && null != controller.GetErrorResponse())
            {
                _errorResponse = controller.GetErrorResponse();
            }

            return(response);
        }
        /// <summary>
        /// Determine the type of the response object and process accordingly.
        /// Since this is just sample code the only processing being done here is to write a few
        /// bits of information to the console window.
        /// </summary>
        /// <param name="response"></param>
        private void CheckResponseForErrors(object response)
        {
            // Every response is based on ANetApiResponse so you can always do this sort of type casting.
            ANetApiResponse baseResponse = (ANetApiResponse)response;

            // If the result code is "Ok" then the request was successfully processed.
            if (baseResponse.messages.resultCode == messageTypeEnum.Error)
            {
                // Write error messages to console window
                string exceptionMessage = String.Join("\r\n", baseResponse.messages.message.Select(a => (String.Format("[{0}] {1}", a.code, a.text))).ToArray());
                //Array.ForEach(baseResponse.messages.message, a => exceptionMessage += (String.Format("[{0}] {1}\r\n", a.code, a.text)));

                throw new PaymentException(PaymentException.ErrorType.ProviderError, baseResponse.messages.message.Length > 0 ? baseResponse.messages.message[0].code : String.Empty, exceptionMessage);
            }
        }
        public void MockcreateFingerPrintTest()
        {
            var fingerPrintSupportInformation = new fingerPrintSupportInformationType
            {
                amount       = SetValidTransactionAmount(Counter) / 100,
                currencyCode = "INR",
                sequence     = CounterStr,
                timestamp    = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture),
            };
            //define all mocked objects as final
            var mockController = GetMockController <createFingerPrintRequest, createFingerPrintResponse>();
            var mockRequest    = new createFingerPrintRequest
            {
                merchantAuthentication = new merchantAuthenticationType()
                {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
                supportInformation = fingerPrintSupportInformation,
            };
            var mockResponse = new createFingerPrintResponse
            {
                refId              = "1234",
                sessionToken       = "sessiontoken",
                supportInformation = fingerPrintSupportInformation,
                fingerPrint        = new fingerPrintType
                {
                    sequence  = fingerPrintSupportInformation.sequence,
                    timestamp = fingerPrintSupportInformation.timestamp,
                    hashValue = CounterStr,
                },
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <createFingerPrintRequest, createFingerPrintResponse, createFingerPrintController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

            Assert.IsNotNull(controllerResponse.fingerPrint);
            LogHelper.info(Logger, "createFingerPrint: Details:{0}", controllerResponse.fingerPrint);
        }
Esempio n. 13
0
 protected static void DisplayResponse(ANetApiResponse response, String source)
 {
     LogHelper.info(Logger, "Source '{0}' ", source);
     if (null != response)
     {
         var messageType = response.messages;
         if (null != messageType)
         {
             LogHelper.info(Logger, "MessageCode: '{0}' ", messageType.resultCode.ToString());
             foreach (var aMessage in messageType.message)
             {
                 LogHelper.info(Logger, "Message: '{0}':'{1}' ", aMessage.code, aMessage.text);
             }
         }
     }
 }
Esempio n. 14
0
        public void TestAllSampleCodes()
        {
            string       fileName = Constants.CONFIG_FILE;
            StreamReader reader   = File.OpenText(fileName);
            TestRunner   tr       = new TestRunner();

            string line;

            while ((line = reader.ReadLine()) != null)
            {
                string[] items = line.Split('\t');

                string apiName      = items[0];
                string isDependent  = items[1];
                string shouldApiRun = items[2];

                Console.WriteLine(apiName);
                if (!shouldApiRun.Equals("1"))
                {
                    continue;
                }

                ANetApiResponse response = null;
                try
                {
                    if (isDependent.Equals("0"))
                    {
                        response = InvokeRunMethod(apiName);
                    }
                    else
                    {
                        response = (ANetApiResponse)typeof(TestRunner).GetMethod("Test" + apiName).Invoke(tr, new Object[] { });
                    }

                    //Console.WriteLine(apiName);
                    Assert.IsNotNull(response);
                    Assert.AreEqual(response.messages.resultCode, messageTypeEnum.Ok);
                }
                catch (Exception e)
                {
                    Console.WriteLine(apiName);
                    Console.WriteLine(e.ToString());
                    Assert.IsNotNull(response);
                }
            }
        }
Esempio n. 15
0
        public ActionResult <AcceptResponse> AcceptHosted(string apiLoginId, string apiTransactionKey, string iFrameCommunicatorUrl, string customerId = null)
        {
            AcceptResponse objAcceptResponse = new AcceptResponse();

            try
            {
                ProxyMethod();

                // generates a token by calling the sample code API
                ANetApiResponse response = GetAnAcceptPaymentPage.Run(apiLoginId, apiTransactionKey, iFrameCommunicatorUrl, customerId);


                if (response != null)
                {
                    if (response.messages.resultCode.ToString().ToLower() == "ok")
                    {
                        objAcceptResponse.status       = true;
                        objAcceptResponse.successValue =
                            ((getHostedPaymentPageResponse)response).token;
                    }
                    else
                    {
                        objAcceptResponse.status       = false;
                        objAcceptResponse.errorMessage = "Failed to get hosted payment page Error: " +
                                                         response.messages.message[0].code + "  " +
                                                         response.messages.message[0].text;
                    }
                }
                else
                {
                    objAcceptResponse.status = false;
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                objAcceptResponse.status = false;

                objAcceptResponse.errorMessage = "Error occured while executing payment. " + e.Message;
            }


            return(objAcceptResponse);
        }
Esempio n. 16
0
        public ActionResult <AcceptResponse> ValidateCustomer(string apiLoginId, string apiTransactionKey, string customerId)
        {
            AcceptResponse objAcceptResponse = new AcceptResponse();

            try
            {
                ProxyMethod();

                // validates customer by calling the sample code API
                ANetApiResponse response = GetCustomerProfile.Run(apiLoginId, apiTransactionKey, customerId);


                if (response != null)
                {
                    if (response.messages.resultCode.ToString().ToLower() == "ok")
                    {
                        objAcceptResponse.status       = true;
                        objAcceptResponse.successValue = response.messages.message[0].code + " " + response.messages.message[0].text;
                    }
                    else
                    {
                        objAcceptResponse.status       = false;
                        objAcceptResponse.errorMessage = "Error: " +
                                                         response.messages.message[0].code + "  " +
                                                         response.messages.message[0].text;
                    }
                }
                else
                {
                    objAcceptResponse.status = false;
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                objAcceptResponse.status = false;

                objAcceptResponse.errorMessage = "Error . " + e.Message;
            }


            return(objAcceptResponse);
        }
        public ActionResult <AcceptResponse> AcceptHosted(string apiLoginId, string apiTransactionKey, string iFrameCommunicatorUrl)
        {
            AcceptResponse objAcceptResponse = new AcceptResponse();

            try
            {
                ProxyMethod();

                ANetApiResponse response = GetAnAcceptPaymentPage.Run(apiLoginId, apiTransactionKey, iFrameCommunicatorUrl);


                if (response != null)
                {
                    if (response.messages.resultCode.ToString() == "Ok")
                    {
                        objAcceptResponse.Status = true;
                        objAcceptResponse.Value  =
                            ((AuthorizeNet.Api.Contracts.V1.getHostedPaymentPageResponse)response).token;
                    }
                    else
                    {
                        objAcceptResponse.Status  = false;
                        objAcceptResponse.Message = "Failed to get hosted payment page Error: " +
                                                    response.messages.message[0].code + "  " +
                                                    response.messages.message[0].text;
                    }
                }
                else
                {
                    objAcceptResponse.Status = false;
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                objAcceptResponse.Status = false;

                objAcceptResponse.Message = "Error occured while executing payment. " + e.Message;
            }


            return(objAcceptResponse);
        }
Esempio n. 18
0
        public void TestChargeCreditCardTerminalNumber()
        {
            foreach (string values in GenerateRandomString(4, 5000))
            {
                transactionRequest.terminalNumber = values;

                response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
                Assert.IsNotNull(response);
                Assert.AreEqual(response.messages.resultCode, messageTypeEnum.Ok);
            }
            foreach (string values in GenerateNegativeString(1, 50))
            {
                transactionRequest.solution.id = values;

                response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
                Assert.IsNotNull(response);
                Assert.AreNotEqual(response.messages.resultCode, messageTypeEnum.Ok);
            }
        }
Esempio n. 19
0
        public void TestChargeCreditCardCreditCardNumber()
        {
            string[] possibleValues = { "41111111111111111", "411111111111" };
            foreach (string values in possibleValues)
            {
                transactionRequest.payment = new paymentType
                {
                    Item = new creditCardType
                    {
                        cardNumber     = values,
                        expirationDate = "0718",
                        cardCode       = "123"
                    }
                };

                response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
                Assert.IsNotNull(response);
                Assert.AreNotEqual(response.messages.resultCode, messageTypeEnum.Ok);
            }
        }
        public void MockcreateCustomerProfileTransactionTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <createCustomerProfileTransactionRequest, createCustomerProfileTransactionResponse>();
            var mockRequest    = new createCustomerProfileTransactionRequest
            {
                merchantAuthentication = new merchantAuthenticationType {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
                transaction = new profileTransactionType
                {
                    Item = new profileTransAuthCaptureType(),
                },
            };
            var transactionResponse = new transactionResponse()
            {
                accountNumber = "1234",
            };
            var mockResponse = new createCustomerProfileTransactionResponse
            {
                refId               = "1234",
                sessionToken        = "sessiontoken",
                transactionResponse = transactionResponse,
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <createCustomerProfileTransactionRequest, createCustomerProfileTransactionResponse, createCustomerProfileTransactionController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

            Assert.IsNotNull(controllerResponse.transactionResponse);
            LogHelper.info(Logger, "createCustomerProfileTransaction: Details:{0}", controllerResponse.transactionResponse);
        }
Esempio n. 21
0
 public void TestChargeCreditInvoiceNumber()
 {
     foreach (string values in GenerateRandomString(2, 20))
     {
         transactionRequest.order = new orderType {
             invoiceNumber = values
         };
         response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
         Assert.IsNotNull(response);
         Assert.AreEqual(response.messages.resultCode, messageTypeEnum.Ok);
     }
     foreach (string values in GenerateNegativeString(1, 20))
     {
         transactionRequest.order = new orderType {
             invoiceNumber = values
         };
         response = ChargeCreditCard.Run(apiLoginId, transactionKey, GetAmount(), transactionRequest);
         Assert.IsNotNull(response);
         Assert.AreNotEqual(response.messages.resultCode, messageTypeEnum.Ok);
     }
 }
Esempio n. 22
0
 private void CheckForErrors(ANetApiResponse response)
 {
     if (response.GetType() == typeof(createCustomerProfileTransactionResponse))
     {
         var createCustomerProfileTransactionResponse = (createCustomerProfileTransactionResponse)response;
         createCustomerProfileTransactionResponse.directResponse =
             _xmlDoc.ChildNodes[1].ChildNodes[1].InnerText;
         response = createCustomerProfileTransactionResponse;
         return;
     }
     if (response.messages.message.Length > 0 && response.messages.resultCode == messageTypeEnum.Error)
     {
         var stringBuilder = new StringBuilder();
         for (var i = 0; i < response.messages.message.Length; i++)
         {
             stringBuilder.AppendFormat("Error processing request: {0} - {1}",
                                        response.messages.message[i].code, response.messages.message[i].text);
         }
         throw new InvalidOperationException(stringBuilder.ToString());
     }
 }
Esempio n. 23
0
        protected void SetMockControllerExpectations <TQ, TS, TT> (
            IApiOperation <TQ, TS> mockController,
            TQ mockRequest,
            TS mockResponse,
            ANetApiResponse errorResponse,
            List <String> results,
            messageTypeEnum messageType)
            where TQ : ANetApiRequest
            where TS : ANetApiResponse
            where TT : IApiOperation <TQ, TS>
        {
            var mockEnvironment = AuthorizeNet.Environment.CUSTOM;

            //using (MockContext.Unordered())
            {
                //Expect.On(mockController).Any.Method(i => i.Execute(mockEnvironment));
                Expect.On(mockController).Any.Method(i => i.Execute(mockEnvironment)).With(mockEnvironment);
                Expect.On(mockController).Any.Method(i => i.GetApiResponse()).WillReturn(mockResponse);
                //Expect.On(mockController).Between(0, 10).Method(i => i.ExecuteWithApiResponse(mockEnvironment)).WillReturn(mockResponse);
                Expect.On(mockController).Any.Method(i => i.ExecuteWithApiResponse(mockEnvironment)).With(mockEnvironment).WillReturn(mockResponse);
                Expect.On(mockController).Any.Method(i => i.GetResults()).WillReturn(results);
                Expect.On(mockController).Any.Method(i => i.GetResultCode()).WillReturn(messageType);
                Expect.On(mockController).Any.Method(i => i.GetErrorResponse()).WillReturn(errorResponse);
            }

            if (null != mockRequest && null != mockResponse)
            {
                mockResponse.refId = mockRequest.refId;
            }
            var realController = Activator.CreateInstance(typeof(TT), mockRequest);

            Assert.IsNotNull(realController);

            LogHelper.info(Logger, "Request: {0}", mockRequest);
            ShowProperties(mockRequest);
            LogHelper.info(Logger, "Response: {0}", mockResponse);
            ShowProperties(mockResponse);
        }
        public void MockmobileDeviceLoginTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <mobileDeviceLoginRequest, mobileDeviceLoginResponse>();
            var mockRequest    = new mobileDeviceLoginRequest
            {
                merchantAuthentication = new merchantAuthenticationType {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
            };
            var transRetailInfoType = new transRetailInfoType
            {
                deviceType = "android",
                marketType = "marketplace",
            };
            var mockResponse = new mobileDeviceLoginResponse
            {
                refId           = "1234",
                sessionToken    = "sessiontoken",
                merchantAccount = transRetailInfoType,
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <mobileDeviceLoginRequest, mobileDeviceLoginResponse, mobileDeviceLoginController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

            Assert.IsNotNull(controllerResponse.merchantAccount);
            LogHelper.info(Logger, "mobileDeviceLogin: Details:{0}", controllerResponse.merchantAccount);
        }
Esempio n. 25
0
        public void MockcreateCustomerProfileTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <createCustomerProfileRequest, createCustomerProfileResponse>();
            var mockRequest    = new createCustomerProfileRequest
            {
                merchantAuthentication = new merchantAuthenticationType {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
            };
            var mockResponse = new createCustomerProfileResponse
            {
                refId                         = "1234",
                sessionToken                  = "sessiontoken",
                customerProfileId             = "1234",
                customerPaymentProfileIdList  = new [] { "12345" },
                customerShippingAddressIdList = new[] { "12345" },
                validationDirectResponseList  = new string[] {},
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <createCustomerProfileRequest, createCustomerProfileResponse, createCustomerProfileController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

            Assert.IsNotNull(controllerResponse.customerProfileId);
            LogHelper.info(Logger, "createCustomerProfile: Details:{0}", controllerResponse.customerProfileId);
        }
Esempio n. 26
0
        public static ANetApiResponse PostData <TQ, TS>(AuthorizeNet.Environment env, TQ request)
            where TQ : ANetApiRequest
            where TS : ANetApiResponse
        {
            ANetApiResponse response = null;

            if (null == request)
            {
                throw new ArgumentNullException("request");
            }
            Logger.debug(string.Format("MerchantInfo->LoginId/TransactionKey: '{0}':'{1}'->{2}",
                                       request.merchantAuthentication.name, request.merchantAuthentication.ItemElementName, request.merchantAuthentication.Item));

            var postUrl    = GetPostUrl(env);
            var webRequest = (HttpWebRequest)WebRequest.Create(postUrl);

            webRequest.Method      = "POST";
            webRequest.ContentType = "text/xml";
            webRequest.KeepAlive   = true;
            webRequest.Proxy       = SetProxyIfRequested(webRequest.Proxy);

            //set the http connection timeout
            var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout);

            webRequest.Timeout = (httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout);

            //set the time out to read/write from stream
            var httpReadWriteTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpReadWriteTimeout);

            webRequest.ReadWriteTimeout = (httpReadWriteTimeout != 0 ? httpReadWriteTimeout : Constants.HttpReadWriteDefaultTimeout);

            var requestType = typeof(TQ);
            var serializer  = new XmlSerializer(requestType);

            using (var writer = new XmlTextWriter(webRequest.GetRequestStream(), Encoding.UTF8))
            {
                serializer.Serialize(writer, request);
            }

            // Get the response
            String responseAsString = null;

            Logger.debug(string.Format("Retreiving Response from Url: '{0}'", postUrl));
            using (var webResponse = webRequest.GetResponse())
            {
                Logger.debug(string.Format("Received Response: '{0}'", webResponse));

                using (var responseStream = webResponse.GetResponseStream())
                {
                    if (null != responseStream)
                    {
                        using (var reader = new StreamReader(responseStream))
                        {
                            responseAsString = reader.ReadToEnd();
                        }
                        Logger.debug(string.Format("Response from Stream: '{0}'", responseAsString));
                    }
                }
            }
            if (null != responseAsString)
            {
                using (var memoryStreamForResponseAsString = new MemoryStream(Encoding.UTF8.GetBytes(responseAsString)))
                {
                    var responseType = typeof(TS);
                    var deSerializer = new XmlSerializer(responseType);

                    Object deSerializedObject;
                    try
                    {
                        // try deserializing to the expected response type
                        deSerializedObject = deSerializer.Deserialize(memoryStreamForResponseAsString);
                    }
                    catch (Exception)
                    {
                        // probably a bad response, try if this is an error response
                        memoryStreamForResponseAsString.Seek(0, SeekOrigin.Begin); //start from beginning of stream
                        var genericDeserializer = new XmlSerializer(typeof(ANetApiResponse));
                        deSerializedObject = genericDeserializer.Deserialize(memoryStreamForResponseAsString);
                    }

                    //if error response
                    if (deSerializedObject is ErrorResponse)
                    {
                        response = deSerializedObject as ErrorResponse;
                    }
                    else
                    {
                        //actual response of type expected
                        if (deSerializedObject is TS)
                        {
                            response = deSerializedObject as TS;
                        }
                        else if (deSerializedObject is ANetApiResponse) //generic response
                        {
                            response = deSerializedObject as ANetApiResponse;
                        }
                    }
                }
            }

            return(response);
        }
Esempio n. 27
0
        public TransactionResponse ChargeCredit(PaymentModel payment)
        {
            // determine run Environment to SANDBOX for developemnt level
            ApiOperationBase <ANetApiRequest, ANetApiResponse> .RunEnvironment = AuthorizeNet.Environment.SANDBOX;


            // define the merchant information (authentication / transaction id)
            ApiOperationBase <ANetApiRequest, ANetApiResponse> .MerchantAuthentication = new merchantAuthenticationType()
            {
                name            = apiLoginId,
                ItemElementName = ItemChoiceType.transactionKey,
                Item            = transactionKey,
            };
            var creditCard = new creditCardType
            {
                cardNumber     = payment.CardNumber,
                expirationDate = payment.Month + payment.Year,
                cardCode       = payment.CardCode,
            };
            var bilingAddress = new customerAddressType
            {
                firstName = payment.FirstName,
                lastName  = payment.LastName,
                city      = payment.Address1,
                address   = payment.Address2,
                zip       = payment.PostCode
            };
            //standard api call to retrieve response
            var paymentType = new paymentType {
                Item = creditCard
            };

            //getting payment that student paying
            var studentAmount = new PaymentModel();

            var studentID = new Student();
            //Add line Items you pay to obtain these

            var lineItems = new lineItemType[1];

            lineItems[0] = new lineItemType {
                itemId = studentID.ID.ToString(), name = "Tution Fees", quantity = 1, unitPrice = studentAmount.Amount, taxRate = 7.5M, totalAmount = studentAmount.Amount
            };

            var transactionRequest = new transactionRequestType
            {
                transactionType = transactionTypeEnum.authCaptureTransaction.ToString(),// charge the card
                amount          = Convert.ToDecimal(payment.Amount),
                payment         = paymentType,
                billTo          = bilingAddress,
                lineItems       = lineItems
            };

            var request = new createTransactionRequest {
                transactionRequest = transactionRequest
            };

            // instantiate the contoller that will call the service
            var controller = new createTransactionController(request);

            controller.Execute();

            var resCode = controller.GetResultCode();
            var resAll  = controller.GetResults();

            //get the response from the service (errors contained if any)
            var response = controller.GetApiResponse();



            //validate
            TransactionResponse result = new TransactionResponse();

            if (response != null)
            {
                result.ResultCode = response.messages.resultCode;
                if (response.messages.resultCode == messageTypeEnum.Ok)
                {
                    if (response.transactionResponse.messages != null)
                    {
                        result.TransId      = response.transactionResponse.transId;
                        result.ResponseCode = response.transactionResponse.responseCode;
                        result.MessageCode  = response.transactionResponse.messages[0].code;
                        result.Description  = response.transactionResponse.messages[0].description;
                        result.AuthCode     = response.transactionResponse.authCode;
                        result.AmountPaid   = payment.Amount;
                    }
                    else
                    {
                        if (response.transactionResponse.errors != null)
                        {
                            result.ErrorCode = response.transactionResponse.errors[0].errorCode;
                            result.ErrorText = response.transactionResponse.errors[0].errorText;
                        }
                    }
                }
                else
                {
                    if (response.transactionResponse != null && response.transactionResponse.errors != null)
                    {
                        result.ErrorCode = response.transactionResponse.errors[0].errorCode;
                        result.ErrorText = response.transactionResponse.errors[0].errorText;
                    }
                    else
                    {
                        result.ErrorCode = response.messages.message[0].code;
                        result.ErrorText = response.messages.message[0].text;
                    }
                }
            }
            else
            {
                //result.errorCode = "NONE";
                //result.errorText = "Failed Transaction, Unknown Error";

                ANetApiResponse errorResponse = controller.GetErrorResponse();
                result.ErrorText  = errorResponse.messages.message[0].text;
                result.ErrorCode  = errorResponse.messages.message[0].code;
                result.ResultCode = messageTypeEnum.Error;
            }
            return(result);
        }
        public static ANetApiResponse Run(String ApiLoginID, String ApiTransactionKey)
        {
            Console.WriteLine("Create a ChasePay Transaction Sample");

            ApiOperationBase <ANetApiRequest, ANetApiResponse> .RunEnvironment = AuthorizeNet.Environment.SANDBOX;

            // define the merchant information (authentication / transaction id)
            ApiOperationBase <ANetApiRequest, ANetApiResponse> .MerchantAuthentication = new merchantAuthenticationType()
            {
                name            = ApiLoginID,
                ItemElementName = ItemChoiceType.transactionKey,
                Item            = ApiTransactionKey,
            };

            var creditCard = new creditCardType
            {
                cardNumber     = "4111111111111111",
                expirationDate = "0725",
                cardCode       = "999",
                // Set the token specific info
                isPaymentToken = true,
                // Set this to the value of the cryptogram received from the token provide
                cryptogram         = "EjRWeJASNFZ4kBI0VniQEjRWeJA=",
                tokenRequestorName = "CHASE_PAY",
                tokenRequestorId   = "12345678901",
                tokenRequestorEci  = "07"
            };

            //standard api call to retrieve response
            var paymentType = new paymentType {
                Item = creditCard
            };

            var transactionRequest = new transactionRequestType
            {
                transactionType = transactionTypeEnum.authCaptureTransaction.ToString(),
                amount          = 133.45m,
                payment         = paymentType
            };

            var request = new createTransactionRequest {
                transactionRequest = transactionRequest
            };

            // instantiate the controller that will call the service
            var controller = new createTransactionController(request);

            controller.Execute();

            // get the response from the service (errors contained if any)
            var response = controller.GetApiResponse();

            // validate response
            if (response != null)
            {
                if (response.messages.resultCode == messageTypeEnum.Ok)
                {
                    if (response.transactionResponse.messages != null)
                    {
                        Console.WriteLine("Successfully created transaction with Transaction ID: " + response.transactionResponse.transId);
                        Console.WriteLine("Response Code: " + response.transactionResponse.responseCode);
                        Console.WriteLine("Message Code: " + response.transactionResponse.messages[0].code);
                        Console.WriteLine("Description: " + response.transactionResponse.messages[0].description);
                        Console.WriteLine("Hash Code: " + response.transactionResponse.transHash);
                        Console.WriteLine("Success, Auth Code : " + response.transactionResponse.authCode);
                    }
                    else
                    {
                        Console.WriteLine("Failed Transaction.");
                        if (response.transactionResponse.errors != null)
                        {
                            Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode);
                            Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Failed Transaction.");
                    if (response.transactionResponse != null && response.transactionResponse.errors != null)
                    {
                        Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode);
                        Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText);
                    }
                    else
                    {
                        Console.WriteLine("Error Code: " + response.messages.message[0].code);
                        Console.WriteLine("Error message: " + response.messages.message[0].text);
                    }
                }
            }
            else
            {
                // Display the error code and message when response is null
                ANetApiResponse errorResponse = controller.GetErrorResponse();
                Console.WriteLine("Failed to get response");
                if (!string.IsNullOrEmpty(errorResponse.messages.message.ToString()))
                {
                    Console.WriteLine("Error Code: " + errorResponse.messages.message[0].code);
                    Console.WriteLine("Error message: " + errorResponse.messages.message[0].text);
                }
            }

            return(response);
        }
Esempio n. 29
0
        public void MockARBGetSubscriptionTest()
        {
            //define all mocked objects as final
            var mockController = GetMockController <ARBGetSubscriptionRequest, ARBGetSubscriptionResponse>();
            var mockRequest    = new ARBGetSubscriptionRequest
            {
                merchantAuthentication = new merchantAuthenticationType()
                {
                    name = "mocktest", Item = "mockKey", ItemElementName = ItemChoiceType.transactionKey
                },
                subscriptionId = "1234"
            };

            var customerPaymentProfileMaskedType = new customerPaymentProfileMaskedType
            {
                customerPaymentProfileId = "1234",
            };

            Random rnd = new Random(DateTime.Now.Millisecond);
            var    SubscriptionMaskedType = new ARBSubscriptionMaskedType()
            {
                name            = "Test",
                paymentSchedule = new paymentScheduleType
                {
                    interval = new paymentScheduleTypeInterval
                    {
                        length = 1,
                        unit   = ARBSubscriptionUnitEnum.months,
                    },
                    startDate        = DateTime.UtcNow,
                    totalOccurrences = 12
                },
                amount               = 9.99M,
                amountSpecified      = true,
                trialAmount          = 100,
                trialAmountSpecified = true,
                status               = ARBSubscriptionStatusEnum.active,
                statusSpecified      = true,
                profile              = new subscriptionCustomerProfileType()
                {
                    paymentProfile = customerPaymentProfileMaskedType,
                },
                order = new orderType {
                    description = string.Format("member monthly {0}", rnd.Next(99999))
                }
            };

            var mockResponse = new ARBGetSubscriptionResponse
            {
                refId        = "1234",
                sessionToken = "sessiontoken",
                subscription = SubscriptionMaskedType
            };

            var errorResponse = new ANetApiResponse();
            var results       = new List <String>();
            const messageTypeEnum messageTypeOk = messageTypeEnum.Ok;

            SetMockControllerExpectations <ARBGetSubscriptionRequest, ARBGetSubscriptionResponse, ARBGetSubscriptionController>(
                mockController.MockObject, mockRequest, mockResponse, errorResponse, results, messageTypeOk);
            mockController.MockObject.Execute(AuthorizeNet.Environment.CUSTOM);
            //mockController.MockObject.Execute();
            // or var controllerResponse = mockController.MockObject.ExecuteWithApiResponse(AuthorizeNet.Environment.CUSTOM);
            var controllerResponse = mockController.MockObject.GetApiResponse();

            Assert.IsNotNull(controllerResponse);

            Assert.IsNotNull(controllerResponse.subscription);
            LogHelper.info(Logger, "ARBGetSubscription: Details:{0}", controllerResponse.subscription);
        }
Esempio n. 30
0
 private void SetErrorResponse(ANetApiResponse errorResponse)
 {
     _errorResponse = errorResponse;
 }