/// <summary> /// This method allows you void an authorized but not captured payment. In this case a Void button will be visible on the /// order details page in admin area. Note that an order should be authorized and SupportVoid property should return true. /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public VoidPaymentResult Void(VoidPaymentRequest voidPaymentRequest) { var result = new VoidPaymentResult(); Order order = voidPaymentRequest.Order; if (int.TryParse(order.AuthorizationTransactionId, out int transactionNumber)) { PayexInterface payex = GetPayexInterface(); CancelResult cancelResult = payex.Cancel(transactionNumber).GetAwaiter().GetResult(); if (cancelResult.IsRequestSuccessful) { result.NewPaymentStatus = PaymentStatus.Voided; } else { result.AddError(cancelResult.GetErrorDescription()); } } else { result.AddError( string.Format( "The order did not contain a valid TransactionNumber in the AuthorizationTransactionId field ('{0}').", order.AuthorizationTransactionId)); } return(result); }
public static CancelResult ParseCancelResult(string xmlText) { var result = new CancelResult { RawXml = xmlText }; var root = result.GetRootElement(); ParseTransactionResult(result, root); return(result); }
private static void Main(string[] args) { // Declare credentials to be used with the Stage Transaction Request string credentialsName = "TEST MERCHANT"; string credentialsSiteID = "XXXXXXXX"; string credentialsKey = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"; string ipAddress = "192.168.0.123"; // Build Transport request details Console.WriteLine("Staging Transaction{0}", Environment.NewLine); TransportServiceSoapClient transportServiceSoapClient = new TransportServiceSoapClient(); TransportRequest transportRequest = new TransportRequest { TransactionType = "sale", Amount = 1.01M, ClerkId = "1", OrderNumber = "1126", Dba = "Test DBA", SoftwareName = "Test Software", SoftwareVersion = "1.0", TransactionId = "102911", TerminalId = "01", PoNumber = "PO12345", ForceDuplicate = true, }; // Stage Transaction TransportResponse transportResponse = transportServiceSoapClient.CreateTransaction(credentialsName, credentialsSiteID, credentialsKey, transportRequest); string transportKey = transportResponse.TransportKey; Console.WriteLine("TransportKey Received = {0}{1}", transportKey, Environment.NewLine); // Initiate transaction thread with received TransportKey Task <object> transactionResultTask = GeniusRequest($"http://{ipAddress}:8080/v2/pos?TransportKey={transportKey}&Format=XML", typeof(TransactionResult)); // Wait 5 seconds Console.WriteLine("Waiting 5 seconds before canceling transaction"); Thread.Sleep(5000); CancelResult cancelResult = (CancelResult)GeniusRequest($"http://{ipAddress}:8080/pos?Action=Cancel&Format=XML", typeof(CancelResult)).Result; Console.WriteLine("Cancel Result: {0}", cancelResult.Status); // Wait for Transaction Results then output transactionResultTask.Wait(); TransactionResult transactionResult = (TransactionResult)transactionResultTask.Result; Console.WriteLine("Transaction Result: {0}", transactionResult.Status); Console.WriteLine("Amount: {0}", transactionResult.AmountApproved); Console.WriteLine("AuthCode: {0}", transactionResult.AuthorizationCode); Console.WriteLine("Token: {0}", transactionResult.Token); Console.WriteLine("Account Number: {0}", transactionResult.AccountNumber); // Close application Console.WriteLine("Press Any Key to Close"); Console.ReadKey(); }
/// <summary> /// Returns the current state. /// If the state == <see cref="State.InArena"/> /// then the arena is not cancelled. /// Call LeaveArena to cancel that. /// </summary> /// <returns></returns> public CancelResult Cancel() { lock (mutex) { var result = new CancelResult { match_decl = match_player_decl }; if (state == State.InArena) { result.new_state = State.InArena; return(result); } state = State.NotQueued; result.new_state = State.NotQueued; return(result); } }
private static void Main(string[] args) { string ipAddress = "192.168.0.123"; // Initiate Cancel WebRequest webReq = WebRequest.Create($"http://{ipAddress}:8080/pos?Action=Cancel&Format=XML"); using (WebResponse webResp = webReq.GetResponse()) { using (Stream responseStream = webResp.GetResponseStream()) { // Validate XML to Genius XSD class StreamReader streamReader = new StreamReader(responseStream); XmlSerializer xmlSerializer = new XmlSerializer(typeof(CancelResult)); CancelResult transactionResult = (CancelResult)xmlSerializer.Deserialize(streamReader); Console.WriteLine("Cancel Result: {0}", transactionResult.Status); Console.WriteLine("Response Message: {0}", transactionResult.ResponseMessage); } } // Close application Console.WriteLine("Press Any Key to Close"); Console.ReadKey(); }
public CancelArgs(CancelResult result) { Result = result; }
/// <summary> /// Cancel a scheduled SMS /// </summary> /// <param name="messageId"></param> /// <returns></returns> public CancelResult CancelScheduledMessage(int messageId) { IRestResponse response = this.Request(RestSharp.Method.DELETE, $"mtsms/{messageId}"); return(CancelResult.ParseResponse(messageId, response.StatusCode)); }