[TYPO3-commerce] ugly hack for payment gateway

Andreas Stauder stauder at adbw.ch
Fri Mar 30 16:17:17 CEST 2007


Hi Stephan,

just a question: how have you integrated the new payment type? If I 
write it in typo3conf/localconf.php it will be overwritten by 
ext_localconf.php . How have you done it?

I'am working on a similar thing: A payment gateway in Switzerland. But I 
have done the first step with a hook. I can send you the code when 
finished...

Thanks for your help
Andreas

Stephan Viftrup wrote:
> Hi
> 
> I thought ill post my results in integrating a gateway payment where the 
> user must be redirected to an url and then return to your website after 
> payment has been done. This is the case mostly in denmark if you do not 
> own a ssl certificate yourself.
> 
> Perhaps someone can use it and maybe even integrate better as there are 
> som complications.
> 
> I have changed the following in class.tx_commerce.pi3.php
> 
>     // variables the gateway needs   
>       $language = "da";
>      $autocapture = "0";
>       // orderid is added 1000 because gateway needs 4 digits.
>       $ordernum = 1000 + $this->orderUid;
>       $merchant = "25571851";
>      // get amount
>       $amount = $orderData['sum_price_gross'];
>      $currency = "DKK";
>      $okpage = "http://mediamax.dk/";
>      $errorpage = "http://mediamax.dk/index.php?id=45";
>      // result page where script will opdate orders payment_ref
>       $resultpage = "http://mediamax.dk/index.php?id=32&step=result";
>      $md5secret = 
> "vYTn54eSLUNZG8m81iC7h5s26k68u3R8M97rfj497VI4tX43JB3l152d7F11cx9D";
>      $md5check = 
> md5($language.$autocapture.$ordernum.$amount.$currency.$merchant.$okpage.$errorpage.$resultpage.$ccipage.$md5secret); 
> 
>     
> // gateway url
>       $action = "https://secure.quickpay.dk/quickpay.php";   
> 
> 
>         // generate button for going to gateway. Needed because gateway 
> only accepts POST variables.
>         $payform = '<form name="listingForm" action="'.$action.'" 
> method="post">';
>         $payform .= '<input type="hidden" name="language" 
> value="'.$language.'" />';
>         $payform .= '<input type="hidden" name="autocapture" 
> value="'.$autocapture.'" />';
>         $payform .= '<input type="hidden" name="ordernum" 
> value="'.$ordernum.'" />';
>         $payform .= '<input type="hidden" name="merchant" 
> value="'.$merchant.'" />';
>         $payform .= '<input type="hidden" name="amount" 
> value="'.$amount.'" />';
>         $payform .= '<input type="hidden" name="currency" 
> value="'.$currency.'" />';
>         $payform .= '<input type="hidden" name="okpage" 
> value="'.$okpage.'" />';
>         $payform .= '<input type="hidden" name="errorpage" 
> value="'.$errorpage.'" />';
>         $payform .= '<input type="hidden" name="resultpage" 
> value="'.$resultpage.'" />';
>         $payform .= '<input type="hidden" name="md5checkV2" 
> value="'.$md5check.'" /> <input type="submit" value="Gå til betaling" 
> /></form>';
>        
>         // make ekstra MARKER for button
>         // OBS! Must also be defined in FINISH template
>         $markerArray['###PAYMENT_BUTTON###'] = $payform;
> 
> 
> This is inserted in OUTPUT part of finishIt function. around line 780
> 
> Also needed is opdate script for resultpage of gateway - i have put this 
> in same file at the beginning of  main function - but this is again not 
> very pretty.
> 
> // RESULT FROM GATEWAY
>                
>         // return url from gateway
>         if ($_REQUEST["step"] == 'result') {
>         // gateway only accepts id with at least 4 digits, remove these 
> again.
>         $id = $_REQUEST["ordernum"] - 1000;
>        
>         //transaction is a POST value the Gateway returns - save it as 
> payment_ref
>         $fields_values = array ("payment_ref_id" => 
> $_REQUEST["transaction"]);
>        
>         //Update order
>         
> $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tx_commerce_orders',"uid=$id", 
> $fields_values);
>        
>         }
> 
> KNOW PROBLEMS
> - This bypasses the normal payment structure hence making payment 
> selection useless since this will happen no matter what you do.
> 
> 
> Hope this can get the discussion more specific to this kind of gateway 
> procedue
> 
> 


More information about the TYPO3-project-commerce mailing list