/**
  * @param string $locale
  * @param string $orderId
  * @param string $customerName
  * @param integer $amount Amount in cents
  * @param string $currency Example : EUR
  * @param array $options
  * @param bool $showSubmitButton
  * @return string
  */
 public function getRequestForm($locale, $orderId, $customerName, $amount, $currency = "EUR", $options = array(), $showSubmitButton = true)
 {
     $passphrase = $this->shaIn;
     $shaComposer = new AllParametersShaComposer($passphrase);
     $shaComposer->addParameterFilter(new ShaInParameterFilter());
     //optional
     $paymentRequest = new EcommercePaymentRequest($shaComposer);
     switch ($this->environment) {
         case 'prod':
             $paymentRequest->setOgoneUri(EcommercePaymentRequest::PRODUCTION);
             break;
         default:
             $paymentRequest->setOgoneUri(EcommercePaymentRequest::TEST);
             break;
     }
     $paymentRequest->setPspid($this->pspid);
     $paymentRequest->setCn($customerName);
     $paymentRequest->setOrderid($orderId);
     $paymentRequest->setAmount($amount);
     $paymentRequest->setCurrency($currency);
     // setting options defined in config
     foreach ($this->options as $option => $value) {
         $setter = "set" . $option;
         $paymentRequest->{$setter}($value);
     }
     // setting options defined in method call
     foreach ($options as $option => $value) {
         $setter = "set" . $option;
         $paymentRequest->{$setter}($value);
     }
     $paymentRequest->setLanguage($this->localeToIso($locale));
     $paymentRequest->validate();
     $this->formGenerator->showSubmitButton($showSubmitButton);
     return $this->formGenerator->render($paymentRequest);
 }