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"); }
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)); }
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"); } }
/// <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); }