'A plump and juicy gourmet hotdog', 'amount' => "usd 100.00", 'card-number' => '4111-1111-1111-1111', 'card-name' => 'Bob Jones', 'card-exp' => '08/01', 'card-address' => '123 ABC Ln', 'card-city' => 'City Ville', 'card-state' => 'Wyoming', 'card-zip' => '12345', 'card-country' => 'US' )); foreach($result as $key => $value){ echo "$key = $value
\n"; } ******************************************************************************/ require_once("class.cyberclass.php"); function generate_id($length, $pool){ srand((double)microtime()*1000000); $pool_len = strlen($pool); for($i = 0; $i < $length; $i++){ $id .= substr($pool,(rand() % $pool_len), 1); } return($id); } function cyberpay(&$order, &$dbconnection){ global $AdminEmail; /* Grab order description */ $order_desc = $order['order-desc']; unset($order['order-desc']); /* Generate a unique order id */ $order_id = generate_id(10, "0123456789"); $order['order-id'] = $order_id; /* Make the credit card transaction */ $transaction = new cyberclass("merchant_conf"); $cybercash_result = $transaction->SendCC2_1Server('mauthonly', $order); $part_card_number = substr($order['card-number'], 0, 2) . substr($order['card-number'], strlen($order['card-number']) - 4, 4); /* Make copy of order */ $dborder = $order; /* Run addslashes() on data */ while($key = key($dborder)){ $dborder[$key] = addslashes($dborder[$key]); next($dborder); } $MErrCode = addslashes($cybercash_result['MErrCode']); $MErrMsg = addslashes($cybercash_result['MErrMsg']); /* Log the transaction results */ $query_insert = "INSERT INTO order_log VALUES ('$order_id', '".$dborder['amount']."', '$order_desc', NOW(), '".$dborder['card-name']."', '".$dborder['card-address']."', '".$dborder['card-city']."', '".$dborder['card-state']."', '".$dborder['card-zip']."', '".$dborder['card-country']."', '$part_card_number', '".$cybercash_result['MStatus']."', '$MErrCode', '$MErrMsg', '".$cybercash_result['merch-txn']."', '".$cybercash_result['ref-code']."', 'N')"; $result = $dbconnection->query($query_insert); if(PEAR::isError($result)){ mail($AdminEmail, 'Cyberpay Database Log Error', '', "{$result->message} - $query_insert"); } if($cybercash_result['MStatus'] == "success"){ /* Success */ $return_result['success'] = true; }elseif(eregi("failure", $cybercash_result['MStatus'])){ $return_result['success'] = false; $return_result['message'] = 'There was an error processing your credit card transaction.'. $cybercash_result['MErrCode']." - ".$cybercash_result[MErrMsg]; }elseif($cybercash_result[MStatus] == 'success-duplicate'){ /* Duplicate - I would be very surprised if this error was ever seen */ $return_result['success'] = false; $return_result['message'] = "There was an error processing your credit card transaction. The transaction you created is a duplication of a previous transaction. You will not be charged twice."; }else{ /* Unknown Error */ $return_result['success'] = false; $return_result['message'] = "There was an unknown error while processing the credit card transaction."; /* Mail the error out for inspection */ foreach($order-args as $var => $val){ $message .= "$var => $val\n"; } foreach($result as $var => $val){ $message .= "$var => $val\n"; } mail($AdminEmail, 'CyberCash Unknown Subscription Error', '', $message); } $return_result['order-id'] = $order_id; $return_result['part-card-number'] = $part_card_number; $return_result['card-type'] = $cybercash_result['card-type']; $return_result['merchtxn'] = $cybercash_result['merch-txn']; $return_result['refcode'] = $cybercash_result['ref-code']; return $return_result; } ?>