Example #1
0
 private function send_auth()
 {
     // initialize
     $dbTrans = Database::tDataConnect();
     if (!$dbTrans) {
         return $this->setErrorMsg(PaycardLib::PAYCARD_ERR_NOSEND);
         // internal error, nothing sent (ok to retry)
     }
     $request = new PaycardGiftRequest($this->valutecIdentifier(CoreLocal::get('paycard_id')));
     $program = 'Gift';
     // valutec also has 'Loyalty' cards which store arbitrary point values
     $mode = "";
     $logged_mode = $mode;
     $authMethod = "";
     switch (CoreLocal::get("paycard_mode")) {
         case PaycardLib::PAYCARD_MODE_AUTH:
             $mode = $amount < 0 ? 'refund' : 'tender';
             $logged_mode = $amount < 0 ? 'Return' : 'Sale';
             $authMethod = $amount < 0 ? 'AddValue' : 'Sale';
             break;
         case PaycardLib::PAYCARD_MODE_ADDVALUE:
             $mode = 'addvalue';
             $logged_mode = 'Reload';
             $authMethod = 'AddValue';
             break;
         case PaycardLib::PAYCARD_MODE_ACTIVATE:
             $mode = 'activate';
             $logged_mode = 'Issue';
             $authMethod = 'ActivateCard';
             break;
         default:
             return $this->setErrorMsg(PaycardLib::PAYCARD_ERR_NOSEND);
     }
     $termID = $this->getTermID();
     $cardPAN = $this->getPAN();
     $cardTr2 = $this->getTrack2();
     $request->setPAN($cardPAN);
     $request->setIssuer('Valutec');
     $request->setProcessor('Valutec');
     $request->setMode($logged_mode);
     if ($cardTr2) {
         $request->setSent(0, 0, 0, 1);
     } else {
         $request->setSent(1, 0, 0, 0);
     }
     try {
         $request->saveRequest();
     } catch (Exception $ex) {
         return $this->setErrorMsg(PaycardLib::PAYCARD_ERR_NOSEND);
         // internal error, nothing sent (ok to retry)
     }
     $authFields = array('ProgramType' => $program, 'CardNumber' => $cardTr2 ? $cardTr2 : $cardPAN, 'Amount' => $request->formattedAmount(), 'ServerID' => $request->cashierNo, 'Identifier' => $request->refNum);
     $this->GATEWAY = "https://www.valutec.net/customers/transactions/valutec.asmx/";
     $getData = urlencode($authMethod) . "?";
     $getData .= "TerminalID=" . urlencode($termID);
     foreach ($authFields as $field => $value) {
         $getData .= "&" . urlencode($field) . "=" . urlencode($value);
     }
     $this->last_request = $request;
     return $this->curlSend($getData, 'GET');
 }