Example #1
0
 /**
  * Sign a Webservice Request
  * 
  * @param Request $request
  * @return void
  * 
  */
 public function signRequest(Request $request)
 {
     $txt = '';
     if ($request->hasAmount()) {
         $txt .= $request->getAmount();
     }
     if ($request->hasOrder()) {
         $txt .= $request->getOrder();
     }
     if ($request->hasMerchantCode()) {
         $txt .= $request->getMerchantCode();
     }
     if ($request->hasCurrency()) {
         $txt .= $request->getCurrency();
     }
     switch ($request->getTransactionType()) {
         case Transaction::TYPE_AUTH:
         case Transaction::TYPE_PREAUTH:
         case Transaction::TYPE_AUTH_DEFERRED:
             if ($request->hasPan()) {
                 $txt .= $request->getPan();
             }
             if ($request->hasCvv2()) {
                 $txt .= $request->getCvv2();
             }
             break;
         case Transaction::TYPE_RECURRING_AUTH_INITIAL:
         case Transaction::TYPE_RECURRING_AUTH_DEFERRED_INTITIAL:
             if ($request->hasPan()) {
                 $txt .= $request->getPan();
             }
             if ($request->hasSumtotal()) {
                 $txt .= $request->getSumtotal();
             }
             if ($request->hasCvv2()) {
                 $txt .= $request->getCvv2();
             }
             break;
         case Transaction::TYPE_FULLFILL:
         case Transaction::TYPE_VOID:
         case Transaction::TYPE_RECURRING_AUTH:
         case Transaction::TYPE_CANCEL:
         case Transaction::TYPE_FULLFILL_DEFERRED:
         case Transaction::TYPE_CANCEL_DEFERRED:
         case Transaction::TYPE_RECURRING_AUTH_DEFERRED:
             // Nothing to add here
             break;
     }
     // Append Transaction Type
     $txt .= $request->getTransactionType();
     // Append Secret Key
     $txt .= $this->getSecretKey();
     // Calculate hash
     $signature = sha1($txt);
     // Sign Request
     $request->setSignature($signature);
 }