company_gateway = $company_gateway; $this->invitation = $invitation; $this->client = $client; //$this->gatewayType = $gatewayType ?: $this->gatewayTypes()[0]; } /** * Returns the Omnipay driver * @return object Omnipay initialized object */ protected function gateway() { $this->gateway = Omnipay::create($this->company_gateway->gateway->provider); $this->gateway->initialize((array) $this->company_gateway->getConfig()); return $this; } /** * Return the configuration fields for the * Gatway * @return array The configuration fields */ public function getFields() { return $this->gateway->getDefaultParameters(); } /** * Returns the default gateway type */ public function gatewayTypes() { return [ GatewayType::CREDIT_CARD, ]; } public function getCompanyGatewayId() { return $this->company_gateway->id; } /** * Returns whether refunds are possible with the gateway * @return boolean TRUE|FALSE */ public function getRefundable() { return $this->refundable; } /** * Returns whether token billing is possible with the gateway * @return boolean TRUE|FALSE */ public function getTokenBilling() { return $this->token_billing; } public function canAuthoriseCreditCard() { return $this->can_authorise_credit_card; } /** * Refunds a given payment * @return void */ public function refundPayment() {} public function authorizeCreditCardView(array $data) {} public function authorizeCreditCardResponse($request) {} public function processPaymentView(array $data) {} public function processPaymentResponse($request) {} /************************************* Omnipay ****************************************** authorize($options) - authorize an amount on the customer's card completeAuthorize($options) - handle return from off-site gateways after authorization capture($options) - capture an amount you have previously authorized purchase($options) - authorize and immediately capture an amount on the customer's card completePurchase($options) - handle return from off-site gateways after purchase refund($options) - refund an already processed transaction void($options) - generally can only be called up to 24 hours after submitting a transaction acceptNotification() - convert an incoming request from an off-site gateway to a generic notification object for further processing */ public function purchase($data, $items) { $response = $this->gateway ->purchase($data) ->setItems($items) ->send(); if ($response->isRedirect()) { // redirect to offsite payment gateway $response->redirect(); } elseif ($response->isSuccessful()) { // payment was successful: update database print_r($response); } else { // payment failed: display message to customer echo $response->getMessage(); } /* $this->purchaseResponse = (array)$response->getData();*/ } }