Platební brána Comgate – výsledek platby

tom
Člen | 171
+
0
-

Ahoj nemá někdo zkušenost s implementací platební brány Comgate? Potřeboval bych poradit, jak udělat metody, které zpracovávají výsledek platby. Děkuji

Felix
Nette Core | 1183
+
0
-

Bohuzel nemam, ani neznam nikoho kdo ji pouziva. Ale znam lidi co to vyviji, kdyby byla potreba.

norbe
Backer | 405
+
0
-

S čím přesně si nevíš rady?

tom
Člen | 171
+
0
-

Ahoj, hodila by se mi ukazka, jak zpracovat vysledky na strane eshopu po provedeni platby na brane.

norbe napsal(a):

S čím přesně si nevíš rady?

norbe
Backer | 405
+
+1
-

Tady jsem vykuchal nějaký základ od nás ze systému (vychází to ze https://github.com/…Protocol.php):

$params = $this->presenter->request->getPost()
if(!$this->isAllowedIp($_SERVER["REMOTE_ADDR"])) {
	throw new \Exception("IP '{$_SERVER["REMOTE_ADDR"]}' is not allowed");
}
if (
    !isset($params) ||
    !is_array($params) ||
    !isset($params['merchant']) || $params['merchant'] === '' ||
    !isset($params['test'])     || $params['test']     === '' ||
    !isset($params['price'])    || $params['price']    === '' ||
    !isset($params['curr'])     || $params['curr']     === '' ||
    !isset($params['refId'])    || $params['refId']    === '' ||
    !isset($params['cat'])      || $params['cat']      === '' ||
    !isset($params['transId'])  || $params['transId']  === '' ||
    !isset($params['secret'])   || $params['secret']   === '' ||
    !isset($params['status'])   || $params['status']   === ''
) {
    throw new \Exception('Missing parameters');
}

if (
    $params['merchant'] !==  $this->merchant ||
    $params['test']     !== ($this->test ? 'true' : 'false') ||
    $params['secret']   !==  $this->secret
) {
    throw new \Exception('Invalid merchant identification');
}


$payment = $this->getPaymentByTransaction($params['transId']);
if($payment) {
	switch($params['status']) {
		case AgmoPaymentsSimpleProtocol::STATUS_PAID:
			$payment->completed = TRUE;
			break;
		case AgmoPaymentsSimpleProtocol::STATUS_CANCELLED:
			$payment->completed = FALSE;
			break;
	}
	$this->save($payment);
}