Page 1 of 1

Betalen via OC2.0.1.1.

Posted: Tue Jan 20, 2015 1:49 pm
by Topsecret
Beste medegebruikers,

Momenteel ben ik bezig om een betaalsysteem van 1.5 over te zetten naar 2.0.1.1. Helaas heb ik begin dit jaar een hersenbloeding gehad dus het denken wil niet echt vlotten. In onderstaand script zit ergens een foutje, maar ik kom er momenteel niet achter waar en wat. Wie kan me helpen??? Uiteraard heb ik het volledige script bijgsloten als .zip.

Helaas krijg ik geen feedback van mijn Paymment provider omdat die zelf een jaartje of 5 achterloopt. De vorige versie heb ik zelf geschreven.

Code: Select all

<?php 
class ControllerPaymentPaysbuy extends Controller {
	private $error = array(); 

	public function index() {
		$this->load->language('payment/paysbuy');

		$this->document->setTitle($this->language->get('heading_title'));
		
		$this->load->model('setting/setting');
			
		if (($this->request->server['REQUEST_METHOD'] == 'POST') && ($this->validate())) {

			$this->load->model('setting/setting');

			$this->model_setting_setting->editSetting('paysbuy', $this->request->post);				
			
			$this->session->data['success'] = $this->language->get('text_success');

			$this->redirect(HTTPS_SERVER . 'index.php?token=' . $this->session->data['token'] . '&route=extension/payment');
		}

		$data['heading_title'] = $this->language->get('heading_title');

		$data['text_enabled'] = $this->language->get('text_enabled');
		$data['text_disabled'] = $this->language->get('text_disabled');
		$data['text_all_zones'] = $this->language->get('text_all_zones');
		$data['text_yes'] = $this->language->get('text_yes');
		$data['text_no'] = $this->language->get('text_no');
		$data['text_authorization'] = $this->language->get('text_authorization');
		$data['text_sale'] = $this->language->get('text_sale');
		$data['text_updatestatus_callback'] = $this->language->get('text_updatestatus_callback');
		$data['text_updatestatus_callbackground_process'] = $this->language->get('text_updatestatus_callbackground_process');		
		
		$data['entry_email'] = $this->language->get('entry_email');
		$data['entry_transaction'] = $this->language->get('entry_transaction');
		$data['entry_updatestatus'] = $this->language->get('entry_updatestatus');
		
		$data['entry_order_status'] = $this->language->get('entry_order_status');
		$data['entry_order_status_cs'] = $this->language->get('entry_order_status_cs');
		$data['entry_order_status_failed'] = $this->language->get('entry_order_status_failed');
		$data['entry_status'] = $this->language->get('entry_status');
		$data['entry_sort_order'] = $this->language->get('entry_sort_order');

		$data['entry_author'] = $this->language->get('entry_author');
		
		$data['button_save'] = $this->language->get('button_save');
		$data['button_cancel'] = $this->language->get('button_cancel');

		$data['tab_general'] = $this->language->get('tab_general');

 		if (isset($this->error['warning'])) {
			$data['error_warning'] = $this->error['warning'];
		} else {
			$data['error_warning'] = '';
		}
		
 		if (isset($this->error['email'])) {
			$data['error_email'] = $this->error['email'];
		} else {
			$data['error_email'] = '';
		}



		$data['breadcrumbs'] = array();

   		$data['breadcrumbs'][] = array(
       		'text'      => $this->language->get('text_home'),
			'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),      		
      		'separator' => false
   		);

   		$data['breadcrumbs'][] = array(
       		'text'      => $this->language->get('text_payment'),
			'href'      => $this->url->link('extension/payment', 'token=' . $this->session->data['token'], 'SSL'),
      		'separator' => ' :: '
   		);

   		$data['breadcrumbs'][] = array(
       		'text'      => $this->language->get('heading_title'),
			'href'      => $this->url->link('payment/paysbuy', 'token=' . $this->session->data['token'], 'SSL'),
      		'separator' => ' :: '
   		);

		$data['action'] = $this->url->link('payment/paysbuy', 'token=' . $this->session->data['token'], 'SSL');

		$data['cancel'] = $this->url->link('extension/payment', 'token=' . $this->session->data['token'], 'SSL');


		if (isset($this->request->post['paysbuy_email'])) {
			$data['paysbuy_email'] = $this->request->post['paysbuy_email'];
		} else {
			$data['paysbuy_email'] = $this->config->get('paysbuy_email');
		}

		if (isset($this->request->post['paysbuy_transaction'])) {
			$data['paysbuy_transaction'] = $this->request->post['paysbuy_transaction'];
		} else {
			$data['paysbuy_transaction'] = $this->config->get('paysbuy_transaction');
		}	
		
		if (isset($this->request->post['paysbuy_order_status_id'])) {
			$data['paysbuy_order_status_id'] = $this->request->post['paysbuy_order_status_id'];
		} else {
			$data['paysbuy_order_status_id'] = $this->config->get('paysbuy_order_status_id'); 
		} 
		
		if (isset($this->request->post['paysbuy_order_status_id_cs'])) {
			$data['paysbuy_order_status_id_cs'] = $this->request->post['paysbuy_order_status_id_cs'];
		} else {
			$data['paysbuy_order_status_id_cs'] = $this->config->get('paysbuy_order_status_id_cs'); 
		} 

		$this->load->model('localisation/order_status');
		
		$data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses();
		

		if (isset($this->request->post['paysbuy_status'])) {
			$data['paysbuy_status'] = $this->request->post['paysbuy_status'];
		} else {
			$data['paysbuy_status'] = $this->config->get('paysbuy_status');
		}
		
		if (isset($this->request->post['paysbuy_sort_order'])) {
			$data['paysbuy_sort_order'] = $this->request->post['paysbuy_sort_order'];
		} else {
			$data['paysbuy_sort_order'] = $this->config->get('paysbuy_sort_order');
		}
		
		$this->template = 'payment/paysbuy.tpl';
		$this->children = array(
			'common/header',	
			'common/footer'	
		);
		
		$this->response->setOutput($this->render());
	}

	private function validate() {
		if (!$this->user->hasPermission('modify', 'payment/paysbuy')) {
			$this->error['warning'] = $this->language->get('error_permission');
		}
		
		if (!$this->request->post['paysbuy_email']) {
			$this->error['email'] = $this->language->get('error_email');
		}
		
		if (!$this->error) {
			return TRUE;
		} else {
			return FALSE;
		}	
	}
}
?>

Re: Betalen via OC2.0.1.1.

Posted: Tue Jan 20, 2015 5:23 pm
by Topsecret
Ik kom al een beetje in de buurt. Ik heb het volgende vervangen :
$this->template = 'payment/paysbuy.tpl';
$this->children = array(
'common/header',
'common/footer'
);

$this->response->setOutput($this->render());
}


door

$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');

$this->response->setOutput($this->load->view('payment/paysbuy.tpl', $data));
}

Maar nu krijg ik een fout melding bij de checkout: /home/paibkkco/domains/paibkk.com/public_html/v2.demo/catalog/view/theme/default/template/checkout/payment_method.tpl on line 16 (<?php if ($payment_method['terms']) { ?>)

Wie weet de oplossing?

Re: Betalen via OC2.0.1.1.

Posted: Tue Jan 20, 2015 7:22 pm
by pprmkr
- Admin gedeelte aangepast
- Catalog controller, model en template aangepast
- Bestand extensie ocmod.zip opdat het installeerbaar is door OC Extensie installer

Re: Betalen via OC2.0.1.1.

Posted: Tue Jan 20, 2015 8:31 pm
by Topsecret
Hoi PPRMKR,

Hartelijk dank voor je hulp, echter werkt het nog steeds niet. Ik krijg bij het uitchecken een foutmelding: Een zogenaamde internal server error.

De website is hier te bezichtigen: http://v2.demo.paibkk.com

Re: Betalen via OC2.0.1.1.

Posted: Tue Jan 20, 2015 9:07 pm
by pprmkr
- $this->model_checkout_order->update vervangen door $this->model_checkout_order->addOrderHistory
- typo in admin template

Re: Betalen via OC2.0.1.1.

Posted: Tue Jan 20, 2015 9:56 pm
by Topsecret
Ga ik morgen bekijken. Voor vandaag geen energie meer.
Ik laat het je weten.

Groetjes Fred

Re: Betalen via OC2.0.1.1.

Posted: Thu Jan 22, 2015 3:16 pm
by i2Paq
Gebruik voortaan code-tags svp.

Re: Betalen via OC2.0.1.1.

Posted: Thu Jan 22, 2015 4:23 pm
by Topsecret
Hoi luitjes,

Ik kom er dus gewoon niet uit. Gaarne hulp.
Ik wil nog eventjes opmerken dat ik herstellende ben van een hersenbloeding, dus niet al te lang achter t scherm kan plaatsnemen en mijn zicht niet al te best is. Ook logisch nadenken is een probleem geworden. Het heeft gewoon zijn tijd nodig om te herstellen. Voorheen zou ik de oplossing zo uit mijn mouw hebben geschud maar dat is nu verleden tijd.

MVG Fred

Re: Betalen via OC2.0.1.1.

Posted: Sat Jan 24, 2015 3:23 pm
by pprmkr
checkout/confirm veroorzaakt de fout.

Bekijk het bestand catalog/controller/checkout/confirm.php. Is het niet beschadigd ?
Vergelijk het bestand met die in het OpenCart archief en overschrijf het eventueel.

Of is er een vQmod actief die wijzigingen aanbrengt aan het bestand? Kijk in /vqmod/xml en /vqod/vqcache ...

Re: Betalen via OC2.0.1.1.

Posted: Sat Jan 24, 2015 3:41 pm
by Topsecret
Hoi pprmkr

Ik heb een paar VQMODs draaien:
- Paysbuy_Payment_Gateway.xml (zorgt voor de payment icoontjes in de footer) (eigen script)
- kadre_infopages_in_menu_V2.xml (eigen script en gratis te downloaden op Opencart extenties)
- vqmod_opencart.xml


VQMOD Paysbuy Gateway:
<modification>
<id>Paysbuy Payment Gateway </id>
<version>1.0</version>
<vqmver>2.2.1</vqmver>
<author>Fred den Broeder</author>

<decription><![CDATA[
/*
This script will show the payment options from Paysbuy in the footer from the default theme. If using another theme, please adjust the directory name.
*/
]]>
</decription>

<file name="catalog/view/theme/default/template/common/footer.tpl">
<operation>
<search position="before"><![CDATA[
<div id="powered">
]]></search>
<add><![CDATA[
<center><img src="image/paysbuy/payment.png" vspace="10"></center> ]]></add>
</operation>
</file>
</modification>




Ik ga nu eerst aan mijn revalidatie beginnen. Later vanmiddag / avond kijk ik verder....

Re: Betalen via OC2.0.1.1.

Posted: Tue Jan 27, 2015 5:48 pm
by Topsecret
Ik heb vandaag een totaal nieuwe(verse) installatie gedaan. Uiteraard zonder VQMOD. Resultaat: Wederom een Internal Server Error. Er zit dus wel degelijk iets fout in het script. Er is momenteel GEEN VQMOD aanwezig !!!

Zie: http://new.paibkk.com