/**
  * Get the data for the request.
  *
  * @return array
  * @throws \Omnipay\Common\Exception\InvalidRequestException
  */
 public function getData()
 {
     $this->validate('apiKey', 'paymentType', 'urlSuccess', 'urlFailure');
     $data = parent::getBaseData();
     $data['data']['payment_type'] = $this->getPaymentType();
     $data['data']['demo'] = parent::getDemoValue();
     $data['data']['amount'] = $this->getAmount();
     $data['data']['currency'] = $this->getCurrency();
     $data['data']['url_success'] = $this->getUrlSuccess();
     $data['data']['url_failure'] = $this->getUrlFailure();
     $data['data']['url_push'] = $this->getUrlPush();
     $data['data'] = $this->addCustomerDetails($data['data']);
     $data['data'] = $this->addPurpose($data['data']);
     $data['data'] = $this->addOrderId($data['data']);
     $data['data'] = $this->addDeliveryAddress($data['data']);
     $data['data'] = $this->addShopName($data['data']);
     $data['data'] = $this->addCustomFields($data['data']);
     $data['data'] = $this->addExperience($data['data']);
     return $data;
 }