public void PurchaseTestCall()
        {
            /*Init appliction configuration*/
            ApplicationConfig config = ObjectFactory.config;

            // TOKENIZE
            Dictionary <String, String> inputParams = new Dictionary <string, string>();

            inputParams.Add("number", "5424180279791732");
            inputParams.Add("nameOnCard", "mastercard");
            inputParams.Add("expiryYear", "2021");
            inputParams.Add("expiryMonth", "04");

            TokenizeCall tokenizeCall = new TokenizeCall(config, inputParams);
            Dictionary <String, String> tokenizeResult = tokenizeCall.Execute();

            // PURCHASE
            Dictionary <String, String> purchaseParams = new Dictionary <String, String>();

            purchaseParams.Add("amount", "20.0");
            purchaseParams.Add("channel", Channel.ECOM.GetCode());
            purchaseParams.Add("country", CountryCode.US.GetCode());
            purchaseParams.Add("currency", CurrencyCode.USD.GetCode());
            purchaseParams.Add("paymentSolutionId", "500");
            purchaseParams.Add("customerId", tokenizeResult["customerId"]);
            purchaseParams.Add("specinCreditCardToken", tokenizeResult["cardToken"]);
            purchaseParams.Add("specinCreditCardCVV", "111");
            purchaseParams.Add("merchantNotificationUrl", "http://localhost:8080/api/TransactionResultCallback");

            PurchaseCall call = new PurchaseCall(config, purchaseParams);
            Dictionary <String, String> result = call.Execute();

            Assert.AreEqual(result["result"], "success");
        }
Esempio n. 2
0
        public async Task <object> Post()

        {
            /* Get request paramters from HttpContent object, parse it to dictionary format*/
            HttpContent requestContent = Request.Content;
            string      res            = requestContent.ReadAsStringAsync().Result;
            Dictionary <String, String> requestData = Tools.requestToDictionary(res);

            /*Init appliction configuration, get a config object*/
            string merchantID = Properties.Settings.Default.merchantId;
            string password   = Properties.Settings.Default.password;
            string merchantNotificationUrl = Properties.Settings.Default.merchantNotificationUrl;
            string allowOriginUrl          = Properties.Settings.Default.allowOriginUrl;
            string merchantLandingPageUrl  = Properties.Settings.Default.merchantLandingPageUrl;
            string environment             = Properties.Settings.Default.TurnkeySdkConfig;

            ApplicationConfig config = new ApplicationConfig(merchantID, password, allowOriginUrl, merchantNotificationUrl,
                                                             merchantLandingPageUrl, environment);

            /*Execute the action call and get the response*/
            PurchaseCall purchase = new PurchaseCall(config, requestData);
            Dictionary <string, string> response = purchase.Execute();

            //return the response data to web page
            return(Request.CreateResponse(HttpStatusCode.OK, response));
        }
Esempio n. 3
0
        public void PurchaseToRefundTestCall()
        {
            /*Init appliction configuration*/
            ApplicationConfig config = ObjectFactory.config;

            // TOKENIZE
            Dictionary <String, String> tokenizeParams = new Dictionary <string, string>();

            tokenizeParams.Add("number", "5424180279791732");
            tokenizeParams.Add("nameOnCard", "mastercard");
            tokenizeParams.Add("expiryYear", "2021");
            tokenizeParams.Add("expiryMonth", "04");

            TokenizeCall tokenizeCall = new TokenizeCall(config, tokenizeParams);
            Dictionary <String, String> tokenizeResult = tokenizeCall.Execute();

            //Purchase
            Dictionary <String, String> authParams = new Dictionary <String, String>();

            authParams.Add("amount", "20.0");
            authParams.Add("channel", Channel.ECOM.GetCode());
            authParams.Add("country", CountryCode.PL.GetCode());
            authParams.Add("currency", CurrencyCode.PLN.GetCode());
            authParams.Add("paymentSolutionId", "500");
            authParams.Add("customerId", tokenizeResult["customerId"]);
            authParams.Add("specinCreditCardToken", tokenizeResult["cardToken"]);
            authParams.Add("specinCreditCardCVV", "111");
            authParams.Add("merchantNotificationUrl", "http://localhost:8080/api/TransactionResultCallback");

            PurchaseCall purchaseCall = new PurchaseCall(config, authParams);
            Dictionary <String, String> purchaseResult = purchaseCall.Execute();

            Assert.AreEqual(purchaseResult["result"], "success");

            if (purchaseResult["result"] == "success" && (purchaseResult["status"] == "SET_FOR_CAPTURE" || purchaseResult["status"] == "CAPTURED"))
            {
                string status = string.Empty;
                while (status != "CAPTURED")
                {
                    Dictionary <String, String> statusParam = new Dictionary <String, String>();
                    statusParam.Add("txId", purchaseResult["txId"]);

                    StatusCheckCall             statusCall   = new StatusCheckCall(config, statusParam);
                    Dictionary <String, String> statusResult = statusCall.Execute();
                    status = statusResult["status"];
                }

                Dictionary <String, String> refundParams = new Dictionary <String, String>();
                refundParams.Add("originalMerchantTxId", purchaseResult["merchantTxId"]);
                refundParams.Add("amount", "20.0");

                RefundCall cCall = new RefundCall(config, refundParams);
                Dictionary <String, String> cptrueResult = cCall.Execute();

                Assert.AreEqual(cptrueResult["result"], "success");
                Assert.AreEqual(cptrueResult["status"], "SET_FOR_REFUND");
            }
        }
Esempio n. 4
0
        /// <summary>
        /// To initiate a recurring transaction by completing an purchase transaction with card on file required parameters
        /// For Recurring Payments this must be “PURCHASE” or “VERIFY”
        /// Fields mmrpCustomerPresent, mmrpContractNumber ,mmrpExistingDebt,mmrpCurrentInstallmentNumber,mmrpOriginalMerchantTransactionId are required when mmrpBillPayment is set to "Recurring"
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        private Dictionary <String, String> COFInitiateRecurringTran_Purchase(ApplicationConfig config, string merchantTrxID)
        {
            Dictionary <String, String> inputParams = new Dictionary <string, string>();

            inputParams.Add("number", "5424180279791732");
            inputParams.Add("nameOnCard", "mastercard");
            inputParams.Add("expiryYear", "2021");
            inputParams.Add("expiryMonth", "04");

            //Card on file parameter
            inputParams.Add("cardOnFileType", "Repeat");
            inputParams.Add("cardOnFileInitiator", "Merchant");
            inputParams.Add("cardOnFileInitialTransactionId", merchantTrxID);

            //Recurring parameter
            inputParams.Add("mmrpBillPayment", "Recurring");
            inputParams.Add("mmrpCustomerPresent", "BillPayment");
            inputParams.Add("mmrpContractNumber", "12345678");
            inputParams.Add("mmrpExistingDebt", "NotExistingDebt");
            inputParams.Add("mmrpCurrentInstallmentNumber", "1");
            inputParams.Add("mmrpOriginalMerchantTransactionId", merchantTrxID);

            TokenizeCall tokenizeCall = new TokenizeCall(config, inputParams);
            Dictionary <String, String> tokenizeResult = tokenizeCall.Execute();

            Dictionary <String, String> authParams = new Dictionary <String, String>();

            authParams.Add("amount", "20.0");
            authParams.Add("channel", Channel.ECOM.GetCode());
            authParams.Add("country", CountryCode.PL.GetCode());
            authParams.Add("currency", CurrencyCode.PLN.GetCode());
            authParams.Add("paymentSolutionId", "500");
            authParams.Add("customerId", tokenizeResult["customerId"]);
            authParams.Add("specinCreditCardToken", tokenizeResult["cardToken"]);
            authParams.Add("specinCreditCardCVV", "111");
            authParams.Add("merchantNotificationUrl", "http://localhost:8080/api/TransactionResultCallback");

            PurchaseCall call = new PurchaseCall(config, authParams);
            Dictionary <String, String> result = call.Execute();

            return(result);
        }