whoami7 - Manager
:
/
home
/
kckglobal
/
cloud.kckglobal.net
/
bkp
/
application
/
libraries
/
gateways
/
Upload File:
files >> //home/kckglobal/cloud.kckglobal.net/bkp/application/libraries/gateways/Instamojo_gateway.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); class Instamojo_gateway extends App_gateway { public bool $processingFees = true; private $sandbox_endpoint = 'https://test.instamojo.com/api/1.1/'; private $production_endpoint = 'https://www.instamojo.com/api/1.1/'; public function __construct() { /** * Call App_gateway __construct function */ parent::__construct(); /** * REQUIRED * Gateway unique id * The ID must be alpha/alphanumeric */ $this->setId('instamojo'); /** * REQUIRED * Gateway name */ $this->setName('Instamojo'); /** * Add gateway settings */ $this->setSettings( [ [ 'name' => 'api_key', 'encrypted' => true, 'label' => 'Private API Key', ], [ 'name' => 'auth_token', 'encrypted' => true, 'label' => 'Private Auth Token', ], [ 'name' => 'description_dashboard', 'label' => 'settings_paymentmethod_description', 'type' => 'textarea', 'default_value' => 'Payment for Invoice {invoice_number}', ], [ 'name' => 'currencies', 'label' => 'settings_paymentmethod_currencies', 'default_value' => 'INR', 'field_attributes' => ['disabled' => true], ], [ 'name' => 'test_mode_enabled', 'type' => 'yes_no', 'default_value' => 1, 'label' => 'settings_paymentmethod_testing_mode', ], ] ); } /** * REQUIRED FUNCTION * @param array $data * @return mixed */ public function process_payment($data) { $gateway = $this->createApi(); try { $request = [ 'purpose' => str_replace('{invoice_number}', format_invoice_number($data['invoice']->id), $this->getSetting('description_dashboard')), 'amount' => number_format($data['amount'], 2, '.', ''), 'redirect_url' => site_url('gateways/instamojo/redirect/' . $data['invoice']->id . '/' . $data['invoice']->hash . '/' . $data['payment_attempt']->reference), ]; $buyer_name = null; $email = null; $phonenumber = null; if (is_client_logged_in()) { $contact = $this->ci->clients_model->get_contact(get_contact_user_id()); $buyer_name = $contact->firstname . ' ' . $contact->lastname; if ($contact->email) { $email = $contact->email; } if ($contact->phonenumber) { $phonenumber = $contact->phonenumber; } } else { $contacts = $this->ci->clients_model->get_contacts($data['invoice']->clientid); if (count($contacts) == 1) { $contact = $contacts[0]; $buyer_name = $contact['firstname'] . ' ' . $contact['lastname']; if ($contact['email']) { $email = $contact['email']; } if ($contact['phonenumber']) { $phonenumber = $contact['phonenumber']; } } } $request['buyer_name'] = $buyer_name; $request['email'] = $email; $request['phone'] = $phonenumber; $response = $gateway->paymentRequestCreate($request); redirect($response['longurl']); die; } catch (Exception $e) { $errors = json_decode($e->getMessage()); if (is_array($errors)) { foreach ($errors as $err) { set_alert('warning', $err[0]); break; } } else { set_alert('warning', $errors); } redirect(site_url('invoice/' . $data['invoice']->id . '/' . $data['invoice']->hash)); } } public function createApi() { return new \Instamojo\Instamojo( $this->decryptSetting('api_key'), $this->decryptSetting('auth_token'), $this->getEndpoint() ); } private function getEndpoint() { return $this->getSetting('test_mode_enabled') == '1' ? $this->sandbox_endpoint : $this->production_endpoint; } }
Copyright ©2021 || Defacer Indonesia