예제 #1
0
function optimalpayments_capture($params)
{
    global $remote_ip;
    $url = "https://webservices.optimalpayments.com/creditcardWS/CreditCardServlet/v1";
    if ($params['testmode']) {
        $url = "https://webservices.test.optimalpayments.com/creditcardWS/CreditCardServlet/v1";
    }
    $cardtype = optimalpayments_cardtype($params['cardtype']);
    if ($params['country'] == "US") {
        $state = "<state>" . $params['clientdetails']['state'] . "</state>";
    } else {
        $state = "<region>" . $params['clientdetails']['state'] . "</region>";
    }
    $xml = "<ccAuthRequestV1 xmlns=\"http://www.optimalpayments.com/creditcard/xmlschema/v1\"\nxmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\nxsi:schemaLocation=\"http://www.optimalpayments.com/creditcard/xmlschema/v1\">\n<merchantAccount>\n<accountNum>" . $params['accountnumber'] . "</accountNum>\n<storeID>" . $params['merchantid'] . "</storeID>\n<storePwd>" . $params['merchantpw'] . "</storePwd>\n</merchantAccount>\n<merchantRefNum>" . $params['invoiceid'] . "</merchantRefNum>\n<amount>" . $params['amount'] . "</amount>\n<card>\n<cardNum>" . $params['cardnum'] . "</cardNum>\n<cardExpiry>\n<month>" . substr($params['cardexp'], 0, 2) . "</month>\n<year>20" . substr($params['cardexp'], 2, 2) . "</year>\n</cardExpiry>\n<cardType>" . $cardtype . "</cardType>\n";
    if ($params['cccvv']) {
        $xml .= "<cvdIndicator>1</cvdIndicator>\n<cvd>" . $params['cccvv'] . "</cvd>\n";
    } else {
        $xml .= "<cvdIndicator>0</cvdIndicator>\n";
    }
    $xml .= "</card>\n<billingDetails>\n<cardPayMethod>WEB</cardPayMethod>\n<firstName>" . $params['clientdetails']['firstname'] . "</firstName>\n<lastName>" . $params['clientdetails']['lastname'] . "</lastName>\n<street>" . $params['clientdetails']['address1'] . "</street>\n<city>" . $params['clientdetails']['city'] . "</city>\n" . $state . "\n<country>" . $params['clientdetails']['country'] . "</country>\n<zip>" . $params['clientdetails']['postcode'] . "</zip>\n<phone>" . $params['clientdetails']['phonenumber'] . "</phone>\n<email>" . $params['clientdetails']['email'] . "</email>\n</billingDetails>\n<recurring>\n<recurringIndicator>R</recurringIndicator>\n</recurring>\n<customerIP>" . $remote_ip . "</customerIP>\n</ccAuthRequestV1>";
    $query_str = "txnMode=ccPurchase&txnRequest=" . urlencode($xml);
    $data = curlCall($url, $query_str);
    $xmldata = XMLtoArray($data);
    $xmldata = $xmldata['CCTXNRESPONSEV1'];
    if ($xmldata['CODE'] == "0") {
        return array("status" => "success", "transid" => $xmldata['txnNumber'], "rawdata" => $xmldata);
    }
    return array("status" => "declined", "rawdata" => $xmldata);
}
예제 #2
0
$params = getCCVariables($invoiceid);
$xml = "<ccAuthenticateRequestV1\nxmlns=\"http://www.optimalpayments.com/creditcard/xmlschema/v1\"\nxmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\nxsi:schemaLocation=\"http://www.optimalpayments.com/creditcard/xmlschema/v1\">\n<merchantAccount>\n<accountNum>" . $GATEWAY['accountnumber'] . "</accountNum>\n<storeID>" . $GATEWAY['merchantid'] . "</storeID>\n<storePwd>" . $GATEWAY['merchantpw'] . "</storePwd>\n</merchantAccount>\n<confirmationNumber>" . $_SESSION['optimalpaymentsconfirmationnumber'] . "</confirmationNumber>\n<paymentResponse>" . $pares . "</paymentResponse>\n</ccAuthenticateRequestV1>";
$url = "https://webservices.optimalpayments.com/creditcardWS/CreditCardServlet/v1";
if ($params['testmode']) {
    $url = "https://webservices.test.optimalpayments.com/creditcardWS/CreditCardServlet/v1";
}
$query_str = "txnMode=ccTDSAuthenticate&txnRequest=" . urlencode($xml);
$data = curlCall($url, $query_str);
$xmldata = XMLtoArray($data);
$xmldata = $xmldata['CCTXNRESPONSEV1'];
$indicator = $xmldata['TDSAUTHENTICATERESPONSE']['STATUS'];
$cavv = $xmldata['TDSAUTHENTICATERESPONSE']['CAVV'];
$xid = $xmldata['TDSAUTHENTICATERESPONSE']['XID'];
$eci = $xmldata['TDSAUTHENTICATERESPONSE']['ECI'];
logTransaction("Optimal Payments 3D Callback", $data, "Authenticate Response");
$cardtype = optimalpayments_cardtype($params['cardtype']);
$xml = "<ccAuthRequestV1 xmlns=\"http://www.optimalpayments.com/creditcard/xmlschema/v1\"\nxmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\nxsi:schemaLocation=\"http://www.optimalpayments.com/creditcard/xmlschema/v1\">\n<merchantAccount>\n<accountNum>" . $params['accountnumber'] . "</accountNum>\n<storeID>" . $params['merchantid'] . "</storeID>\n<storePwd>" . $params['merchantpw'] . "</storePwd>\n</merchantAccount>\n<merchantRefNum>" . $params['invoiceid'] . "</merchantRefNum>\n<amount>" . $params['amount'] . "</amount>\n<card>\n<cardNum>" . $params['cardnum'] . "</cardNum>\n<cardExpiry>\n<month>" . substr($params['cardexp'], 0, 2) . "</month>\n<year>20" . substr($params['cardexp'], 2, 2) . "</year>\n</cardExpiry>\n<cardType>" . $cardtype . "</cardType>\n</card>\n<authentication>\n<indicator>" . $indicator . "</indicator>\n<cavv>" . $cavv . "</cavv>\n<xid>" . $xid . "</xid>\n</authentication>\n<billingDetails>\n<cardPayMethod>WEB</cardPayMethod>\n<firstName>" . $params['clientdetails']['firstname'] . "</firstName>\n<lastName>" . $params['clientdetails']['lastname'] . "</lastName>\n<street>" . $params['clientdetails']['address1'] . "</street>\n<city>" . $params['clientdetails']['city'] . "</city>\n<region>" . $params['clientdetails']['state'] . "</region>\n<country>" . $params['clientdetails']['country'] . "</country>\n<zip>" . $params['clientdetails']['postcode'] . "</zip>\n<phone>" . $params['clientdetails']['phonenumber'] . "</phone>\n<email>" . $params['clientdetails']['email'] . "</email>\n</billingDetails>\n<recurringIndicator>R</recurringIndicator>\n<customerIP>" . $remote_ip . "</customerIP>\n<productType>M</productType>\n</ccAuthRequestV1>";
$query_str = "txnMode=ccPurchase&txnRequest=" . urlencode($xml);
logTransaction("Optimal Payments 3D Callback", $query_str, "Payment Request");
$data = curlCall($url, $query_str);
$xmldata = XMLtoArray($data);
$xmldata = $xmldata['CCTXNRESPONSEV1'];
if ($xmldata['CODE'] == "0") {
    addInvoicePayment($invoiceid, $transid, "", "", "optimalpayments", "on");
    logTransaction("Optimal Payments 3D Callback", $data, "Approved");
    sendMessage("Credit Card Payment Confirmation", $invoiceid);
    $callbacksuccess = true;
} else {
    logTransaction("Optimal Payments 3D Callback", $data, "Declined");
    sendMessage("Credit Card Payment Failed", $invoiceid);
}