From: Brad House Date: Tue, 6 Aug 2002 16:36:05 +0000 (+0000) Subject: sync to libmcve-3.0 X-Git-Tag: dev~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d5ec9a9886f5b7e867f0bbadee0ff2f026004d95;p=php sync to libmcve-3.0 --- diff --git a/ext/mcve/mcve.c b/ext/mcve/mcve.c index 420c723228..0c243a48a0 100644 --- a/ext/mcve/mcve.c +++ b/ext/mcve/mcve.c @@ -33,7 +33,7 @@ static int le_conn; /* connection resource */ static int le_user; /* store add/edit/get user information */ -static int mcve_init; /* For Safe Memory Dealocation */ +static int mcve_init; /* For Safe Memory Deallocation */ /* }}} */ /* {{{ extension definition structures */ @@ -48,7 +48,17 @@ function_entry php_mcve_functions[] = { PHP_FE(mcve_setip, NULL) PHP_FE(mcve_setssl, NULL) PHP_FE(mcve_settimeout, NULL) + PHP_FE(mcve_verifyconnection, NULL) + PHP_FE(mcve_verifysslcert, NULL) + PHP_FE(mcve_maxconntimeout, NULL) + PHP_FE(mcve_connectionerror, NULL) + PHP_FE(mcve_deletetrans, NULL) PHP_FE(mcve_connect, NULL) + PHP_FE(mcve_transnew, NULL) + PHP_FE(mcve_transparam, NULL) + PHP_FE(mcve_transsend, NULL) + PHP_FE(mcve_ping, NULL) + PHP_FE(mcve_responseparam, NULL) PHP_FE(mcve_returnstatus, NULL) PHP_FE(mcve_returncode, NULL) PHP_FE(mcve_transactionssent, NULL) @@ -144,8 +154,95 @@ PHP_MINIT_FUNCTION(mcve) le_conn = zend_register_list_destructors_ex(_free_mcve_conn, NULL, "mcve connection", module_number); + /* Key definitions for Transaction Parameters */ + REGISTER_LONG_CONSTANT("MC_TRANTYPE", MC_TRANTYPE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USERNAME", MC_USERNAME, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_PASSWORD", MC_PASSWORD, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ACCOUNT", MC_ACCOUNT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRACKDATA", MC_TRACKDATA, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_EXPDATE", MC_EXPDATE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_STREET", MC_STREET, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ZIP", MC_ZIP, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_CV", MC_CV, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_COMMENTS", MC_COMMENTS, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_CLERKID", MC_CLERKID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_STATIONID", MC_STATIONID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_APPRCODE", MC_APPRCODE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_AMOUNT", MC_AMOUNT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_PTRANNUM", MC_PTRANNUM, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TTID", MC_TTID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER", MC_USER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_PWD", MC_PWD, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ACCT", MC_ACCT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_BDATE", MC_BDATE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_EDATE", MC_EDATE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_BATCH", MC_BATCH, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_FILE", MC_FILE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN", MC_ADMIN, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_AUDITTYPE", MC_AUDITTYPE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_CUSTOM", MC_CUSTOM, MCVE_CONST); + + /* Args for adding a user */ + REGISTER_LONG_CONSTANT("MC_USER_PROC", MC_USER_PROC, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_USER", MC_USER_USER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_PWD", MC_USER_PWD, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_INDCODE", MC_USER_INDCODE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_MERCHID", MC_USER_MERCHID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_BANKID", MC_USER_BANKID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_TERMID", MC_USER_TERMID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_CLIENTNUM", MC_USER_CLIENTNUM, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_STOREID", MC_USER_STOREID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_AGENTID", MC_USER_AGENTID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_CHAINID", MC_USER_CHAINID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_ZIPCODE", MC_USER_ZIPCODE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_TIMEZONE", MC_USER_TIMEZONE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_MERCHCAT", MC_USER_MERCHCAT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_MERNAME", MC_USER_MERNAME, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_MERCHLOC", MC_USER_MERCHLOC, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_STATECODE", MC_USER_STATECODE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_USER_PHONE", MC_USER_PHONE, MCVE_CONST); + + /* Value definitions for Transaction Types */ + REGISTER_LONG_CONSTANT("MC_TRAN_SALE", MC_TRAN_SALE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_PREAUTH", MC_TRAN_PREAUTH, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_VOID", MC_TRAN_VOID, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_PREAUTHCOMPLETE", MC_TRAN_PREAUTHCOMPLETE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_FORCE", MC_TRAN_FORCE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_OVERRIDE", MC_TRAN_OVERRIDE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_RETURN", MC_TRAN_RETURN, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_SETTLE", MC_TRAN_SETTLE, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_ADMIN", MC_TRAN_ADMIN, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_PING", MC_TRAN_PING, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_CHKPWD", MC_TRAN_CHKPWD, MCVE_CONST); + + /* Engine Admin Transaction Types */ + REGISTER_LONG_CONSTANT("MC_TRAN_CHNGPWD", MC_TRAN_CHKPWD, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_LISTSTATS", MC_TRAN_LISTSTATS, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_LISTUSERS", MC_TRAN_LISTUSERS, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_GETUSERINFO", MC_TRAN_GETUSERINFO, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_ADDUSER", MC_TRAN_ADDUSER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_EDITUSER", MC_TRAN_EDITUSER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_DELUSER", MC_TRAN_DELUSER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_ENABLEUSER", MC_TRAN_ENABLEUSER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_DISABLEUSER", MC_TRAN_DISABLEUSER, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_IMPORT", MC_TRAN_IMPORT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_TRAN_EXPORT", MC_TRAN_EXPORT, MCVE_CONST); + + /* Value definitions for Admin Types */ + REGISTER_LONG_CONSTANT("MC_ADMIN_GUT", MC_ADMIN_GUT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_GL", MC_ADMIN_GL, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_GFT", MC_ADMIN_GFT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_BT", MC_ADMIN_BT, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_UB", MC_ADMIN_UB, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_QC", MC_ADMIN_QC, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_RS", MC_ADMIN_RS, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_CTH", MC_ADMIN_CTH, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_CFH", MC_ADMIN_CFH, MCVE_CONST); + REGISTER_LONG_CONSTANT("MC_ADMIN_FORCESETTLE", MC_ADMIN_FORCESETTLE, MCVE_CONST); + /* set up the mcve defines */ REGISTER_LONG_CONSTANT("MCVE_UNUSED", MCVE_UNUSED, MCVE_CONST); + REGISTER_LONG_CONSTANT("MCVE_NEW", MCVE_NEW, MCVE_CONST); REGISTER_LONG_CONSTANT("MCVE_PENDING", MCVE_PENDING, MCVE_CONST); REGISTER_LONG_CONSTANT("MCVE_DONE", MCVE_DONE, MCVE_CONST); @@ -202,12 +299,6 @@ PHP_MINFO_FUNCTION(mcve) { php_info_print_table_start(); php_info_print_table_row(2, "mcve support", "enabled"); - php_info_print_table_row(2, "mcve ssl support", -#ifdef ENABLE_SSL - "enabled"); -#else - "disabled"); -#endif php_info_print_table_row(2, "version", PHP_MCVE_VERSION); php_info_print_table_end(); } @@ -261,7 +352,7 @@ PHP_FUNCTION(mcve_deleteresponse) if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) WRONG_PARAM_COUNT; - + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", le_conn); @@ -273,6 +364,28 @@ PHP_FUNCTION(mcve_deleteresponse) } /* }}} */ +/* {{{ proto bool mcve_deletetrans(resource conn, int identifier) + Delete specified transaction from MCVE_CONN structure */ +PHP_FUNCTION(mcve_deletetrans) +{ + MCVE_CONN *conn; + zval **arg1, **arg2; + + if (ZEND_NUM_ARGS() != 2 || + zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + MCVE_DeleteTrans(conn, Z_LVAL_PP(arg2)); + + RETURN_TRUE; +} +/* }}} */ + /* {{{ proto void mcve_destroyconn(resource conn) Destroy the connection and MCVE_CONN structure */ PHP_FUNCTION(mcve_destroyconn) @@ -343,7 +456,6 @@ PHP_FUNCTION(mcve_setip) Set the connection method to SSL */ PHP_FUNCTION(mcve_setssl) { -#ifdef ENABLE_SSL MCVE_CONN *conn; int retval; zval **arg1, **arg2, **arg3; @@ -361,9 +473,6 @@ PHP_FUNCTION(mcve_setssl) retval = MCVE_SetSSL(conn, Z_STRVAL_PP(arg2), Z_LVAL_PP(arg3)); RETURN_LONG(retval); -#else - RETURN_LONG(MCVE_FAIL); -#endif } /* }}} */ @@ -391,6 +500,99 @@ PHP_FUNCTION(mcve_settimeout) } /* }}} */ +/* {{{ proto int mcve_setblocking(resource conn, int tf) + Set blocking/non-blocking mode for connection +*/ +PHP_FUNCTION(mcve_setblocking) +{ + MCVE_CONN *conn; + int retval; + zval **arg1, **arg2; + + if (ZEND_NUM_ARGS() != 2 || + zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + retval = MCVE_SetBlocking(conn, Z_LVAL_PP(arg2)); + + RETURN_LONG(retval); +} +/* }}} */ + +/* {{{ proto bool mcve_verifyconnection(resource conn, int tf) + Set whether or not to PING upon connect to verify connection +*/ +PHP_FUNCTION(mcve_verifyconnection) +{ + MCVE_CONN *conn; + zval **arg1, **arg2; + + if (ZEND_NUM_ARGS() != 2 || + zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + MCVE_VerifyConnection(conn, Z_LVAL_PP(arg2)); + + RETURN_TRUE; +} +/* }}} */ + +/* {{{ proto bool mcve_verifysslcert(resource conn, int tf) + Set whether or not to verify the server ssl certificate +*/ +PHP_FUNCTION(mcve_verifysslcert) +{ + MCVE_CONN *conn; + zval **arg1, **arg2; + + if (ZEND_NUM_ARGS() != 2 || + zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + MCVE_VerifySSLCert(conn, Z_LVAL_PP(arg2)); + + RETURN_TRUE; +} +/* }}} */ + +/* {{{ proto bool mcve_maxconntimeout(resource conn, int secs) + The maximum amount of time the API will attempt a connection to MCVE +*/ +PHP_FUNCTION(mcve_maxconntimeout) +{ + MCVE_CONN *conn; + zval **arg1, **arg2; + + if (ZEND_NUM_ARGS() != 2 || + zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + MCVE_MaxConnTimeout(conn, Z_LVAL_PP(arg2)); + + RETURN_TRUE; +} +/* }}} */ + /* {{{ proto int mcve_connect(resource conn) Establish the connection to MCVE */ PHP_FUNCTION(mcve_connect) @@ -411,6 +613,30 @@ PHP_FUNCTION(mcve_connect) } /* }}} */ +/* {{{ proto string mcve_connectionerror(resource conn) + Get a textual representation of why a connection failed */ +PHP_FUNCTION(mcve_connectionerror) +{ + MCVE_CONN *conn; + char *retval; + zval **arg; + + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg, -1, "mcve connection", + le_conn); + + retval = MCVE_ConnectionError(conn); + + if (retval == NULL) { + RETVAL_STRING("",1); + } else { + RETVAL_STRING(retval, 1); + } +} +/* }}} */ + /* {{{ proto int mcve_transactionssent(resource conn) Check to see if outgoing buffer is clear */ PHP_FUNCTION(mcve_transactionssent) @@ -431,6 +657,158 @@ PHP_FUNCTION(mcve_transactionssent) } /* }}} */ +/* {{{ proto int mcve_ping(resource conn) + Send a ping request to MCVE */ +PHP_FUNCTION(mcve_ping) +{ + MCVE_CONN *conn; + int retval; + zval **arg; + + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg, -1, "mcve connection", + le_conn); + + retval = MCVE_Ping(conn); + + RETURN_LONG(retval); +} +/* }}} */ + +/* {{{ proto long mcve_transnew(resource conn) + Start a new transaction */ +PHP_FUNCTION(mcve_transnew) +{ + MCVE_CONN *conn; + int retval; + zval **arg; + + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg, -1, "mcve connection", + le_conn); + + retval = MCVE_TransNew(conn); + + RETURN_LONG(retval); +} +/* }}} */ + +/* {{{ proto int mcve_transparam(resource conn, long identifier, int key, ...) + Add a parameter to a transaction */ +PHP_FUNCTION(mcve_transparam) +{ + MCVE_CONN *conn; + int retval; + int key; + zval **arg1, **arg2, **arg3, **arg4, **arg5; + + if (ZEND_NUM_ARGS() == 4) { + if (zend_get_parameters_ex(4, &arg1, &arg2, &arg3, &arg4) == FAILURE) + WRONG_PARAM_COUNT; + } else if (ZEND_NUM_ARGS() == 5) { + if (zend_get_parameters_ex(5, &arg1, &arg2, &arg3, &arg4, &arg5) == FAILURE) + WRONG_PARAM_COUNT; + } else { + WRONG_PARAM_COUNT; + } + + convert_to_long_ex(arg3); + + key = Z_LVAL_PP(arg3); + + if (key == MC_CUSTOM && ZEND_NUM_ARGS() != 5) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + switch (key) { + case MC_TRANTYPE: + case MC_PTRANNUM: + case MC_TTID: + case MC_ADMIN: + case MC_AUDITTYPE: + convert_to_long_ex(arg4); + retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_LVAL_PP(arg4)); + break; + + case MC_AMOUNT: + convert_to_double_ex(arg4); + retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_DVAL_PP(arg4)); + break; + + case MC_CUSTOM: + convert_to_string_ex(arg4); + convert_to_string_ex(arg5); + retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4), Z_STRVAL_PP(arg5)); + break; + + default: + convert_to_string_ex(arg4); + retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4)); + break; + } + + RETURN_LONG(retval); +} +/* }}} */ + +/* {{{ proto int mcve_transsend(resource conn, long identifier) + Finalize and send the transaction */ +PHP_FUNCTION(mcve_transsend) +{ + MCVE_CONN *conn; + int retval; + zval **arg1, **arg2; + + if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + + retval = MCVE_TransSend(conn, Z_LVAL_PP(arg2)); + + RETURN_LONG(retval); +} +/* }}} */ + +/* {{{ proto string mcve_responseparam(resource conn, long identifier, string key) + Get a custom response parameter */ +PHP_FUNCTION(mcve_responseparam) +{ + MCVE_CONN *conn; + char *retval; + zval **arg1, **arg2, **arg3; + + if (ZEND_NUM_ARGS() != 3 || + zend_get_parameters_ex(3, &arg1, &arg2, &arg3) == FAILURE) + WRONG_PARAM_COUNT; + + ZEND_FETCH_RESOURCE(conn, MCVE_CONN *, arg1, -1, "mcve connection", + le_conn); + + convert_to_long_ex(arg2); + convert_to_string_ex(arg3); + + retval = MCVE_ResponseParam(conn, Z_LVAL_PP(arg2), Z_STRVAL_PP(arg3)); + + if (retval == NULL) { + RETVAL_STRING("",1); + } else { + RETVAL_STRING(retval, 1); + } +} +/* }}} */ + /* {{{ proto int mcve_returnstatus(resource conn, int identifier) Check to see if the transaction was successful */ PHP_FUNCTION(mcve_returnstatus) diff --git a/ext/mcve/php_mcve.h b/ext/mcve/php_mcve.h index 83e3c57200..6847538c36 100644 --- a/ext/mcve/php_mcve.h +++ b/ext/mcve/php_mcve.h @@ -1,7 +1,6 @@ /* * basic mcve php module * - * $Id$ */ #ifndef _PHP_MCVE_H @@ -18,7 +17,7 @@ extern zend_module_entry php_mcve_module_entry; //#endif -#define PHP_MCVE_VERSION "1.0" +#define PHP_MCVE_VERSION "3.0" #define MCVE_CONST (CONST_CS | CONST_PERSISTENT) @@ -33,7 +32,17 @@ PHP_FUNCTION(mcve_setdropfile); PHP_FUNCTION(mcve_setip); PHP_FUNCTION(mcve_setssl); PHP_FUNCTION(mcve_settimeout); +PHP_FUNCTION(mcve_verifyconnection); +PHP_FUNCTION(mcve_verifysslcert); +PHP_FUNCTION(mcve_maxconntimeout); +PHP_FUNCTION(mcve_connectionerror); +PHP_FUNCTION(mcve_deletetrans); PHP_FUNCTION(mcve_connect); +PHP_FUNCTION(mcve_transnew); +PHP_FUNCTION(mcve_transparam); +PHP_FUNCTION(mcve_transsend); +PHP_FUNCTION(mcve_ping); +PHP_FUNCTION(mcve_responseparam); PHP_FUNCTION(mcve_returnstatus); PHP_FUNCTION(mcve_returncode); PHP_FUNCTION(mcve_transactionssent);