$GATEWAY = $params; if (!$GATEWAY['type']) { exit("Module Not Activated"); } if ($protxsimmode) { $url = "https://test.sagepay.com/simulator/VSPDirectCallback.asp"; } else { if ($params['testmode'] == "on") { $url = "https://test.sagepay.com/gateway/service/direct3dcallback.vsp"; } else { $url = "https://live.sagepay.com/gateway/service/direct3dcallback.vsp"; } } $data = "PaRes=" . urlencode($_POST['PaRes']) . "&MD=" . $_POST['MD']; $data = protx_formatData($_POST); $response = protx_requestPost($url, $data); $baseStatus = $response['Status']; $transdump = ""; foreach ($response as $key => $value) { $transdump .= "" . $key . " => " . $value . "\r\n"; } $invoiceid = $_REQUEST['invoiceid']; if (!$invoiceid && isset($_SESSION['protxinvoiceid'])) { $invoiceid = $_SESSION['protxinvoiceid']; } $transdump .= "Invoice ID => " . $invoiceid; if ($params['cardtype'] == "Maestro") { $result = select_query("tblinvoices", "userid", array("id" => $invoiceid)); $data = mysql_fetch_array($result); update_query("tblclients", array("cardtype" => "", "cardnum" => "", "expdate" => "", "issuenumber" => "", "startdate" => ""), array("id" => $data['userid'])); }
function protx_capture($params) { global $protxsimmode; if ($protxsimmode) { $TargetURL = "https://test.sagepay.com/simulator/VSPDirectGateway.asp"; $VerifyServer = false; } else { if ($params['testmode'] == "on") { $TargetURL = "https://test.sagepay.com/gateway/service/vspdirect-register.vsp"; $VerifyServer = false; } else { $TargetURL = "https://live.sagepay.com/gateway/service/vspdirect-register.vsp"; $VerifyServer = true; } } $data['VPSProtocol'] = "2.23"; $data['TxType'] = "PAYMENT"; $data['Vendor'] = $params['recurringvendorid']; $data['VendorTxCode'] = date("YmdHis") . $params['invoiceid']; $data['Amount'] = $params['amount']; $data['Currency'] = $params['currency']; $data['Description'] = $params['companyname'] . " - Invoice #" . $params['invoiceid']; $cardtype = protx_getcardtype($params['cardtype']); $data['CardHolder'] = $params['clientdetails']['firstname'] . " " . $params['clientdetails']['lastname']; $data['CardType'] = $cardtype; $data['CardNumber'] = $params['cardnum']; $data['ExpiryDate'] = $params['cardexp']; $data['StartDate'] = $params['cardstart']; $data['IssueNumber'] = $params['cardissuenum']; if (!$params['cccvv']) { $params['cccvv'] = "000"; } $data['CV2'] = $params['cccvv']; $data['BillingSurname'] = $params['clientdetails']['lastname']; $data['BillingFirstnames'] = $params['clientdetails']['firstname']; $data['BillingAddress1'] = $params['clientdetails']['address1']; $data['BillingAddress2'] = $params['clientdetails']['address2']; $data['BillingCity'] = $params['clientdetails']['city']; if ($params['clientdetails']['country'] == "US") { $data['BillingState'] = $params['clientdetails']['state']; } $data['BillingPostCode'] = $params['clientdetails']['postcode']; $data['BillingCountry'] = $params['clientdetails']['country']; $data['BillingPhone'] = $params['clientdetails']['phonenumber']; $data['DeliverySurname'] = $params['clientdetails']['lastname']; $data['DeliveryFirstnames'] = $params['clientdetails']['firstname']; $data['DeliveryAddress1'] = $params['clientdetails']['address1']; $data['DeliveryAddress2'] = $params['clientdetails']['address2']; $data['DeliveryCity'] = $params['clientdetails']['city']; if ($params['clientdetails']['country'] == "US") { $data['DeliveryState'] = $params['clientdetails']['state']; } $data['DeliveryPostCode'] = $params['clientdetails']['postcode']; $data['DeliveryCountry'] = $params['clientdetails']['country']; $data['DeliveryPhone'] = $params['clientdetails']['phonenumber']; $data['CustomerEMail'] = $params['clientdetails']['email']; $data['ClientIPAddress'] = $_SERVER['REMOTE_ADDR']; $data['ApplyAVSCV2'] = "2"; $data['Apply3DSecure'] = "2"; $data['AccountType'] = "C"; if ($params['cardtype'] == "Maestro" || $params['cardtype'] == "Solo") { $data['AccountType'] = "M"; } if ($params['cardtype'] == "American Express" || $params['cardtype'] == "Laser") { $data['AccountType'] = "E"; } $data = protx_formatData($data); $response = protx_requestPost($TargetURL, $data); $baseStatus = $response['Status']; $transdump = ""; foreach ($response as $key => $value) { $transdump .= "" . $key . " => " . $value . "\n"; } switch ($baseStatus) { case "OK": addInvoicePayment($params['invoiceid'], $response['VPSTxId'], "", "", "protx", "on"); logTransaction("SagePay", $transdump, "Successful"); sendMessage("Credit Card Payment Confirmation", $params['invoiceid']); $result = "success"; $result; } return; }