# MCVE (Monetra) Payment Functions

## Introduction

These functions interface the MCVE (Monetra) API (libmonetra, formerly known as libmcve), allowing you to work directly with MCVE/Monetra from your PHP scripts. MCVE/Monetra is Main Street Softworks' solution to direct credit/debit/gift card processing for Linux/Unix/MacOSX/Windows ( » http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE/Monetra module for PHP, you can process credit cards directly through MCVE/Monetra via your PHP scripts. The following references will outline the process.

> Note: MCVE/Monetra is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientele to the MCVE platform.

> Note: This extension has been moved to the » PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

> Note: This extension is not available on Windows platforms.

## Installation

To enable MCVE (Monetra) Support in PHP, first verify your LibMonetra (formerly libmcve) installation directory. If you are compiling MCVE/Monetra support directly into PHP, you will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your libmonetra installation, PHP will attempt to look in the default LibMonetra Install location (/usr/local). If Monetra (MCVE) is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE/Monetra installation. Please note that MCVE/Monetra support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h or monetra.h under the include directory and libmcve.so and/or libmcve.a and/or libmonetra.so and/or libmonetra.a under the lib directory.

If you want to install MCVE/Monetra support as a module, you can do so by using the PECL repository, and issuing the 'pecl install mcve' command if you are running a PEAR version of at least 1.4.0.

Since MCVE/Monetra has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE/Monetra extension in PHP, you may connect to testbox.monetra.com on port 8333 for IP, or port 8444 for SSL using the MCVE/Monetra PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at » http://www.mainstreetsoftworks.com/.

## See Also

Additional documentation about MCVE/Monetra's PHP API can be found at » http://www.mainstreetsoftworks.com/documentation.html. Main Street's documentation is complete and should be the primary reference for functions.

## Resource Types

This extension defines a MCVE_CONN resource returned by m_initconn().

## Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

`M_PENDING` (integer)
`M_DONE` (integer)
`M_ERROR` (integer)
`M_FAIL` (integer)
`M_SUCCESS` (integer)

## Table of Contents

- m_checkstatus — Check to see if a transaction has completed
- m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
- m_connect — Establish the connection to MCVE
- m_connectionerror — Get a textual representation of why a connection failed
- m_deletetrans — Delete specified transaction from MCVE_CONN structure
- m_destroyconn — Destroy the connection and MCVE_CONN structure
- m_destroyengine — Free memory associated with IP/SSL connectivity
- m_getcell — Get a specific cell from a comma delimited response by column name
- m_getcellbynum — Get a specific cell from a comma delimited response by column number
- m_getcommadelimited — Get the RAW comma delimited data returned from MCVE
- m_getheader — Get the name of the column in a comma-delimited response
- m_initconn — Create and initialize an MCVE_CONN structure
- m_initengine — Ready the client for IP/SSL Communication
- m_iscommadelimited — Checks to see if response is comma delimited
- m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE
- m_monitor — Perform communication with MCVE (send/receive data) Non-blocking
- m_numcolumns — Number of columns returned in a comma delimited response
- m_numrows — Number of rows returned in a comma delimited response
- m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work
- m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction
- m_responseparam — Get a custom response parameter
- m_returnstatus — Check to see if the transaction was successful
- m_setblocking — Set blocking/non-blocking mode for connection
- m_setdropfile — Set the connection method to Drop-File
- m_setip — Set the connection method to IP
- m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate
- m_setssl_files — Set certificate key files and certificates if server requires client certificate verification
- m_setssl — Set the connection method to SSL
- m_settimeout — Set maximum transaction time (per trans)
- m_sslcert_gen_hash — Generate hash for SSL client certificate verification
- m_transactionssent — Check to see if outgoing buffer is clear
- m_transinqueue — Number of transactions in client-queue
- m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()
- m_transnew — Start a new transaction
- m_transsend — Finalize and send the transaction
- m_uwait — Wait x microsecs
- m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to
- m_verifyconnection — Set whether or not to PING upon connect to verify connection
- m_verifysslcert — Set whether or not to verify the server ssl certificate