[TYPO3-commerce] ugly hack for payment gateway

Andreas Stauder astauder at stauder.ch
Sat Mar 31 13:00:38 CEST 2007


ok seems my question concerns http://bugs.typo3.org/view.php?id=5027

andreas

Andreas Stauder wrote:
> 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