sithkong Posted June 7, 2007 Share Posted June 7, 2007 Hello PHP developers, I am a begining developer, and I am trying to setup the payment gateway from authorize.net using PHP. I found a very good tutorial and read through the explanation also download the codes. However, it does not seem to be working....I am wondering if I didn't do it correctly. I don't know if PHP talented developers out there could show me the correct ways, or tell what was wrong with the code I added.... <code> class Authnet { private $login = "7989SeRGCRr7"; private $transkey = "29ZvRs59mZh2C48A"; private $params = array(); private $results = array(); private $approved = false; private $declined = false; private $error = true; private $test; private $fields; private $response; static $instances = 0; public function __construct($test = false) { if (self::$instances == 0) { $this->test = trim($test); if ($this->test) { $this->url = "https://test.authorize.net/gateway/transact.dll"; } else { $this->url = "https://secure.authorize.net/gateway/transact.dll"; } $this->params['x_delim_data'] = "TRUE"; $this->params['x_delim_char'] = "|"; $this->params['x_relay_response'] = "FALSE"; $this->params['x_url'] = "FALSE"; $this->params['x_version'] = "3.1"; $this->params['x_method'] = "CC"; $this->params['x_type'] = "AUTH_CAPTURE"; $this->params['x_login'] = $this->login; $this->params['x_tran_key'] = $this->transkey; self::$instances++; } else { return false; } } public function transaction($cardnum, $expiration, $amount, $cvv = "", $invoice = "", $tax = "") { $this->params['x_card_num'] = trim($cardnum); $this->params['x_exp_date'] = trim($expiration); $this->params['x_amount'] = trim($amount); $this->params['x_po_num'] = trim($invoice); $this->params['x_tax'] = trim($tax); $this->params['x_card_code'] = trim($cvv); } public function process($retries = 3) { $this->_prepareParameters(); $ch = curl_init($this->url); $count = 0; while ($count < $retries) { curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, rtrim($this->fields, "& ")); $this->response = curl_exec($ch); $this->_parseResults(); if ($this->getResultResponseFull() == "Approved") { $this->approved = true; $this->declined = false; $this->error = false; break; } else if ($this->getResultResponseFull() == "Declined") { $this->approved = false; $this->declined = true; $this->error = false; break; } $count++; } curl_close($ch); } private function _parseResults() { $this->results = explode("|", $this->response); } public function setParameter($param, $value) { $param = trim($param); $value = trim($value); $this->params[$param] = $value; } public function setTransactionType($type) { $this->params['x_type'] = strtoupper(trim($type)); } private function _prepareParameters() { foreach($this->params as $key => $value) { $this->fields .= "$key=" . urlencode($value) . "&"; } } public function getResultResponse() { return $this->results[0]; } public function getResultResponseFull() { $response = array("", "Approved", "Declined", "Error"); return $response[$this->results[0]]; } public function isApproved() { return $this->approved; } public function isDeclined() { return $this->declined; } public function isError() { return $this->error; } public function getResponseText() { return $this->results[3]; } public function getAuthCode() { return $this->results[4]; } public function getAVSResponse() { return $this->results[5]; } public function getTransactionID() { return $this->results[6]; } } //process the payment //user information variables //$price = $_POST['_CC_PRICE']; //$card_number = $_POST['_CC_Number']; //$card_type = $_POST['_CC_Type']; //$ex_month = $_POST['_CC_ExpDateMonth']; //$ex_year = $_POST['_CC_ExpDateYear']; //$fname_oncard = $_POST['_CC_FirstName']; //$lname_oncard = $_POST['_CC_LastName']; //$security_code = $_POST['_CC_Code']; $tax = 0; $cardnum = $_POST['_CC_Number']; $expiration = $_POST['_CC_ExpDateMonth'] . $_POST['_CC_ExpDateYear']; $amount = 49.95; $invoice = rand(0000,10000); $cvv = $_POST['_CC_Code']; //$total = 49.95; $fname_oncard = $_POST['_CC_FirstName']; $lname_oncard = $_POST['_CC_LastName']; $payment = new Authnet(false); $payment->transaction($cardnum, $expiration,, $amount, $cvv, $invoice, $tax); //$payment->setParameter("x_address", $business_address); //$payment->setParameter("x_zip", $business_zipcode); $payment->setParameter("x_first_name", $fname_oncard); $payment->setParameter("x_last_name", $lname_oncard); $payment->process(); if ($payment -> isApproved()) { // Display a printable receipt echo "<table widh=500 align=center border=1>"; echo "<tr><td>"; echo "<p>Your payment has been processed successfully!</p>"; echo "<p>Below your receipt</p>"; echo "<p>Price: $49.95 <br /></p>"; echo "</td></tr>"; echo "</table>"; } else if ($payment -> isDeclined()) { $reason = $payment -> getResponseText(); // As for another form of payment echo "<p>Your payment is not approved. Please contact [email protected]</p>"; } else { // Ask the merchant to call us } </code> Link to comment https://forums.phpfreaks.com/topic/54661-payment-gateway-using-php/ Share on other sites More sharing options...
unidox Posted June 8, 2007 Share Posted June 8, 2007 Are you using modernbill? Link to comment https://forums.phpfreaks.com/topic/54661-payment-gateway-using-php/#findComment-270785 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.