unsafe static int RunReport(IntPtr *conn) { IntPtr id; int retval; int rows, cols, i, j; string line; Console.WriteLine("Running report...."); id = Monetra.M_TransNew(conn); Monetra.M_TransKeyVal(conn, id, "username", "vitale"); Monetra.M_TransKeyVal(conn, id, "password", "test"); Monetra.M_TransKeyVal(conn, id, "action", "admin"); Monetra.M_TransKeyVal(conn, id, "admin", "gut"); if (Monetra.M_TransSend(conn, id) == 0) { Console.WriteLine("Failed to send trans: " + Monetra.M_ConnectionError(conn)); return(1); } retval = Monetra.M_ReturnStatus(conn, id); if (retval != Monetra.M_SUCCESS) { Console.WriteLine("Bad return status: " + retval); } Monetra.M_ParseCommaDelimited(conn, id); rows = Monetra.M_NumRows(conn, id); cols = Monetra.M_NumColumns(conn, id); Console.WriteLine("Report Data (" + rows + " rows, " + cols + " cols):"); line = ""; for (i = 0; i < cols; i++) { if (i != 0) { line = line + "|"; } line = line + Monetra.M_GetHeader(conn, id, i); } Console.WriteLine(line); for (i = 0; i < rows; i++) { line = ""; for (j = 0; j < cols; j++) { if (j != 0) { line = line + "|"; } line = line + Monetra.M_GetCellByNum(conn, id, j, i); } Console.WriteLine(line); } Monetra.M_DeleteTrans(conn, id); Console.WriteLine("Report Done"); return(0); }
static void disconnect_test() { Monetra conn = new Monetra(); if (method == 1) { conn.SetSSL(host, port); conn.VerifySSLCert(false); } else { conn.SetIP(host, port); } if (!conn.Connect()) { Console.WriteLine("Connection Failed: " + conn.ConnectionError()); return; } Console.WriteLine("Connected, you have 20s either shut down monetra or kill the link to monetra"); conn.SetBlocking(true); for (int i = 20; i >= 0; i--) { Console.Write(i.ToString() + "..."); System.Threading.Thread.Sleep(1000); /* Check in realtime for a disconnect event */ if (!conn.Monitor()) { Console.WriteLine(""); Console.WriteLine("Disconnect detected: " + conn.ConnectionError()); return; } } Console.WriteLine(""); int id = conn.TransNew(); conn.TransKeyVal(id, "username", username); conn.TransKeyVal(id, "password", password); conn.TransKeyVal(id, "action", "chkpwd"); if (!conn.TransSend(id)) { Console.WriteLine("Connection Failed: " + conn.ConnectionError()); return; } Console.WriteLine(" * Got a response, looks like you didn't disconnect"); conn.DeleteTrans(id); Console.WriteLine("Disconnecting..."); conn.DestroyConn(); conn = null; }
unsafe static int RunTrans(IntPtr *conn) { int retval; IntPtr id; IntPtr keys; string key; int num_keys; int i; Console.WriteLine("Running transaction..."); id = Monetra.M_TransNew(conn); Monetra.M_TransKeyVal(conn, id, "username", "vitale"); Monetra.M_TransKeyVal(conn, id, "password", "test"); Monetra.M_TransKeyVal(conn, id, "action", "sale"); Monetra.M_TransKeyVal(conn, id, "account", "4012888888881"); Monetra.M_TransKeyVal(conn, id, "expdate", "0512"); Monetra.M_TransKeyVal(conn, id, "amount", "12.00"); if (Monetra.M_TransSend(conn, id) == 0) { Console.WriteLine("Failed to send trans: " + Monetra.M_ConnectionError(conn)); return(1); } retval = Monetra.M_ReturnStatus(conn, id); if (retval != Monetra.M_SUCCESS) { Console.WriteLine("Bad return status: " + retval); } /* print results ... */ Console.WriteLine("code: " + Monetra.M_ResponseParam(conn, id, "code")); Console.WriteLine("verbiage: " + Monetra.M_ResponseParam(conn, id, "verbiage")); keys = Monetra.M_ResponseKeys(conn, id, &num_keys); Console.WriteLine("All " + num_keys + " repsonse parameters:"); for (i = 0; i < num_keys; i++) { key = Monetra.M_ResponseKeys_index(keys, num_keys, i); Console.WriteLine(key + "=" + Monetra.M_ResponseParam(conn, id, key)); } Monetra.M_FreeResponseKeys(keys, num_keys); Monetra.M_DeleteTrans(conn, id); Console.WriteLine("Transaction Done"); return(0); }
unsafe static int Main(string[] args) { IntPtr conn; Monetra.M_InitEngine(null); Monetra.M_InitConn(&conn); Monetra.M_SetSSL(&conn, "testbox.monetra.com", 8665); Monetra.M_SetBlocking(&conn, 1); if (Monetra.M_Connect(&conn) == 0) { Console.WriteLine("Failed to connect: " + Monetra.M_ConnectionError(&conn)); return(1); } RunTrans(&conn); RunReport(&conn); Monetra.M_DestroyConn(&conn); Monetra.M_DestroyEngine(); return(0); }
static unsafe void unsafeapiref(bool do_report) { IntPtr conn = (IntPtr)0; Monetra.M_InitConn(ref conn); if (method == 1) { Monetra.M_SetSSL(ref conn, host, port); Monetra.M_VerifySSLCert(ref conn, 0); } else { Monetra.M_SetIP(ref conn, host, port); } if (Monetra.M_Connect(ref conn) == 0) { Console.WriteLine("Connection Failed: " + Monetra.M_ConnectionError(ref conn)); return; } Console.WriteLine("Connected, Sending Sale TXN..."); Monetra.M_SetBlocking(ref conn, 1); IntPtr id; id = Monetra.M_TransNew(ref conn); Monetra.M_TransKeyVal(ref conn, id, "username", username); Monetra.M_TransKeyVal(ref conn, id, "password", password); Monetra.M_TransKeyVal(ref conn, id, "action", "sale"); Monetra.M_TransKeyVal(ref conn, id, "account", "4012888888881881"); Monetra.M_TransKeyVal(ref conn, id, "expdate", "0525"); Monetra.M_TransKeyVal(ref conn, id, "amount", "12.00"); Monetra.M_TransKeyVal(ref conn, id, "zip", "32606"); Monetra.M_TransKeyVal(ref conn, id, "comments", "Multiline Comment \"Test\"\nTest Me"); if (Monetra.M_TransSend(ref conn, id) == 0) { Console.WriteLine("Connection Failed: " + Monetra.M_ConnectionError(ref conn)); return; } Console.WriteLine("Response:"); int num_responsekeys = 0; IntPtr responsekeys = Monetra.M_ResponseKeys(ref conn, id, ref num_responsekeys); for (int i = 0; i < num_responsekeys; i++) { string key = Monetra.M_ResponseKeys_index(responsekeys, num_responsekeys, i); Console.WriteLine(key + " : " + Monetra.M_ResponseParam(ref conn, id, key)); } Monetra.M_FreeResponseKeys(responsekeys, num_responsekeys); Monetra.M_DeleteTrans(ref conn, id); if (do_report) { Console.WriteLine("Sending Unsettled Report Request..."); id = Monetra.M_TransNew(ref conn); Monetra.M_TransKeyVal(ref conn, id, "username", username); Monetra.M_TransKeyVal(ref conn, id, "password", password); Monetra.M_TransKeyVal(ref conn, id, "action", "admin"); Monetra.M_TransKeyVal(ref conn, id, "admin", "GUT"); if (Monetra.M_TransSend(ref conn, id) == 0) { Console.WriteLine("Connection Failed: " + Monetra.M_ConnectionError(ref conn)); return; } if (Monetra.M_ReturnStatus(ref conn, id) != Monetra.M_SUCCESS) { Console.WriteLine("GUT failed: " + Monetra.M_ResponseParam(ref conn, id, "verbiage")); } else { Console.WriteLine("Response:"); Monetra.M_ParseCommaDelimited(ref conn, id); int rows = Monetra.M_NumRows(ref conn, id); int columns = Monetra.M_NumColumns(ref conn, id); Console.WriteLine("Rows: " + rows.ToString() + " Cols: " + columns.ToString()); for (int i = 0; i < columns; i++) { if (i != 0) { Console.Write("|"); } Console.Write(Monetra.M_GetHeader(ref conn, id, i)); } Console.WriteLine(""); for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { if (j != 0) { Console.Write("|"); } Console.Write(Monetra.M_GetCellByNum(ref conn, id, j, i)); } Console.WriteLine(""); } Console.WriteLine(""); } Monetra.M_DeleteTrans(ref conn, id); } Console.WriteLine("Disconnecting..."); Monetra.M_DestroyConn(ref conn); }
static void traditionalapi() { Monetra.M_CONN conn = Monetra.M_InitConn(); if (method == 1) { Monetra.M_SetSSL(conn, host, port); Monetra.M_VerifySSLCert(conn, false); } else { Monetra.M_SetIP(conn, host, port); } if (!Monetra.M_Connect(conn)) { Console.WriteLine("Connection Failed: " + Monetra.M_ConnectionError(conn)); return; } Console.WriteLine("Connected, Sending Sale TXN..."); Monetra.M_SetBlocking(conn, true); int id; id = Monetra.M_TransNew(conn); Monetra.M_TransKeyVal(conn, id, "username", username); Monetra.M_TransKeyVal(conn, id, "password", password); Monetra.M_TransKeyVal(conn, id, "action", "sale"); Monetra.M_TransKeyVal(conn, id, "account", "4012888888881881"); Monetra.M_TransKeyVal(conn, id, "expdate", "0525"); Monetra.M_TransKeyVal(conn, id, "amount", "12.00"); Monetra.M_TransKeyVal(conn, id, "zip", "32606"); Monetra.M_TransKeyVal(conn, id, "comments", "Multiline Comment \"Test\"\nTest Me"); if (!Monetra.M_TransSend(conn, id)) { Console.WriteLine("Connection Failed: " + Monetra.M_ConnectionError(conn)); return; } Console.WriteLine("Response:"); string[] responsekeys = Monetra.M_ResponseKeys(conn, id); for (int i = 0; i < responsekeys.Length; i++) { Console.WriteLine(responsekeys[i] + " : " + Monetra.M_ResponseParam(conn, id, responsekeys[i])); } Monetra.M_DeleteTrans(conn, id); Console.WriteLine("Sending Unsettled Report Request..."); id = Monetra.M_TransNew(conn); Monetra.M_TransKeyVal(conn, id, "username", username); Monetra.M_TransKeyVal(conn, id, "password", password); Monetra.M_TransKeyVal(conn, id, "action", "admin"); Monetra.M_TransKeyVal(conn, id, "admin", "GUT"); if (!Monetra.M_TransSend(conn, id)) { Console.WriteLine("Connection Failed: " + Monetra.M_ConnectionError(conn)); return; } if (Monetra.M_ReturnStatus(conn, id) != Monetra.M_SUCCESS) { Console.WriteLine("GUT failed: " + Monetra.M_ResponseParam(conn, id, "verbiage")); } else { Console.WriteLine("Response:"); Monetra.M_ParseCommaDelimited(conn, id); int rows = Monetra.M_NumRows(conn, id); int columns = Monetra.M_NumColumns(conn, id); Console.WriteLine("Rows: " + rows.ToString() + " Cols: " + columns.ToString()); for (int i = 0; i < columns; i++) { if (i != 0) { Console.Write("|"); } Console.Write(Monetra.M_GetHeader(conn, id, i)); } Console.WriteLine(""); for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { if (j != 0) { Console.Write("|"); } Console.Write(Monetra.M_GetCellByNum(conn, id, j, i)); } Console.WriteLine(""); } Console.WriteLine(""); } Monetra.M_DeleteTrans(conn, id); Console.WriteLine("Disconnecting..."); Monetra.M_DestroyConn(conn); }