<?php
/*****************************************************************/
// function plugin_bluepay_variables($params) - required function
/*****************************************************************/
function plugin_bluepay_variables() {
    /* Specification
          itemkey     - used to identify variable in your other functions
          type        - text,textarea,yesno,password,hidden ( hiddens are not visable to the user )
          description - description of the variable, displayed in ClientExec
          value       - default value
    */
    $variables = array (
               "Plugin Name" => array (
                                    "type"        =>    "hidden",
                                    "description" =>    "How CE sees this plugin (not to be confused with the Signup Name)",
                                    "value"       =>    "BluePay"
                                   ),
               "In Signup" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES if you want to include this payment processor in the signup script.",
                                    "value"       =>     "0"
                                   ),
               "BluePay Account ID" => array (
                                    "type"        =>    "text",
                                    "description" =>    "Please enter your BluePay Account ID Here.",
                                    "value"       =>    ""
                                     ),
               "BluePay Secret Key" => array (
                                    "type"        =>    "password",
                                    "description" =>    "Please enter your BluePay Secret Key Here.",
                                    "value"       =>    ""
                                   ),
               "Demo Mode" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES if you want to set this plugin in Demo mode for testing purposes.",
                                    "value"       =>     "1"
                                   ),
               "Accept CC Number" => array (
                                    "type"        =>     "hidden",
                                    "description" =>     "Selecting YES allows the entering of CC numbers when using this plugin type. No will prevent entering of cc information",
                                    "value"       =>     "1"
                                   ),
               "Visa" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES to allow Visa card acceptance with this plugin.  No will prevent this card type.",
                                    "value"       =>     "1"
                                   ),
               "MasterCard" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES to allow MasterCard acceptance with this plugin. No will prevent this card type.",
                                    "value"       =>     "1"
                                   ),
               "AmericanExpress" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES to allow American Express card acceptance with this plugin. No will prevent this card type.",
                                    "value"       =>     "1"
                                   ),
               "Discover" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES to allow Discover card acceptance with this plugin. No will prevent this card type.",
                                    "value"       =>     "0"
                                   ),
               "Invoice After Signup" => array (
                                    "type"        =>     "yesno",
                                    "description" =>     "Select YES if you want an invoice sent to the customer after signup is complete.",
                                    "value"       =>     "1"
                                   ),
               "Signup Name" => array (
                                    "type"        =>     "text",
                                    "description" =>     "Select the name to display in the signup process for this payment type. Example: eCheck or Credit Card.",
                                    "value"       =>     "credit card"
                                   ),
               "Dummy Plugin" => array (
                                    "type"        =>     "hidden",
                                    "description" =>     "1 = Only used to specify a billing type for a customer. 0 = full fledged plugin requiring complete functions",
                                    "value"       =>     "0"
                                   ),
               "Auto Payment" => array (
                                    "type"        =>     "hidden",
                                    "description" =>     "No description",
                                    "value"       =>     "1"

                                   ),
               "30 Day Billing" => array (
                                    "type"        =>     "hidden",
                                    "description" =>     "Select YES if you want ClientExec to treat monthly billing by 30 day intervals.  If you select NO then the same day will be used to determine intervals.",
                                    "value"       =>     "0"
                                   )
    );
    return $variables;
}

/*****************************************************************/
// function plugin_bluepay_singlepayment($params) - required function
/*****************************************************************/
function plugin_bluepay_singlepayment($params) { // when set to non recurring
    //Function used to provide users with the ability
    //Plugin variables can be accesses via $params["plugin_[pluginname]_[variable]"] (ex. $params["plugin_paypal_UserID"])
    return plugin_bluepay_autopayment($params);
}

/*****************************************************************/
// function plugin_bluepay_autopayment($userid) - required function if plugin is autopayment capable
/*****************************************************************/
function plugin_bluepay_autopayment($params){
    require_once 'class.BluePay.php';
    $mode = "TEST";
    if (!$params['plugin_bluepay_Demo Mode']) {
        $mode = "LIVE";
    }
    $bluePay = new BluePayment($params['plugin_bluepay_BluePay Account ID'], $params['plugin_bluepay_BluePay Secret Key'], $mode);
    $bluePay->sale($params['invoiceTotal']);
    $bluePay->setCustInfo($params["userCCNumber"],"",$params["userCCExp"],$params['userFirstName'],$params['userLastName'],
        $params['userAddress'],$params['userCity'],$params['userState'],$params['userZipcode'],$params['userCountry'],
        $params['userPhone'], $params['userEmail'], null, $params['invoiceDescription']);
    $bluePay->process($params["pathCurl"]);

    if ($params['isSignup']==1){
        $bolInSignup = true;
    }else{
        $bolInSignup = false;
    }
    include('plugins/gateways/bluepay/callback.php');
    //Return error code
    $tReturnValue = "";
    if (($bluePay->getStatus()==1)||($bluePay->getStatus()=='*1*')){ $tReturnValue = ""; }
    else { $tReturnValue = $bluePay->getMessage()." Code:".$bluePay->getStatus(); }
    return $tReturnValue;
}
?>
