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*/ CaptureCall capture = new CaptureCall(config, requestData); Dictionary <string, string> response = capture.Execute(); //return the response data to web page return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public void CaptureToVoidExTestCall() { /*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(); 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"); AuthCall authCall = new AuthCall(config, authParams); Dictionary <String, String> authResult = authCall.Execute(); Assert.AreEqual(authResult["result"], "success"); if (authResult["result"] == "success" && authResult["status"] == "NOT_SET_FOR_CAPTURE") { // CAPTURE Dictionary <String, String> captrueInputParams = new Dictionary <String, String>(); captrueInputParams.Add("originalMerchantTxId", authResult["merchantTxId"]); captrueInputParams.Add("amount", "20.0"); CaptureCall captureCall = new CaptureCall(config, captrueInputParams); Dictionary <String, String> captureResult = captureCall.Execute(); if (captureResult["result"] == "success") { // VOID Dictionary <String, String> inputParams = new Dictionary <String, String>(); inputParams.Add("originalMerchantTxId", authResult["merchantTxId"]); //inputParams.Add("country", "FR"); //inputParams.Add("currency", "EUR"); VoidCall call = new VoidCall(config, inputParams); Dictionary <String, String> result = call.Execute(); Assert.AreEqual(result["result"], "success"); } } }
public void AuthToRefundTestCall() { /*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(); //AUTH 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"); AuthCall authCall = new AuthCall(config, authParams); Dictionary <String, String> authResult = authCall.Execute(); Assert.AreEqual(authResult["result"], "success"); // CAPTURE if (authResult["result"] == "success" && authResult["status"] == "NOT_SET_FOR_CAPTURE") { Dictionary <String, String> captureParams = new Dictionary <String, String>(); captureParams.Add("originalMerchantTxId", authResult["merchantTxId"]); captureParams.Add("amount", "20.0"); CaptureCall call = new CaptureCall(config, captureParams); Dictionary <String, String> result = call.Execute(); if (result["result"] == "success" && (result["status"] == "SET_FOR_CAPTURE" || result["status"] == "CAPTURED")) { string status = string.Empty; while (status != "CAPTURED") { Dictionary <String, String> statusParam = new Dictionary <String, String>(); statusParam.Add("txId", authResult["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", result["originalMerchantTxId"]); 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"); } } }