예제 #1
0
$params = getGatewayVariables("protx");
$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']));
예제 #2
0
파일: protx.php 프로젝트: billyprice1/whmcs
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;
}