private function callRequestPayment($orderId, $parameters) { $result = array(); try { $key = 'eb9fd1782db9136fe8e5d048e17878ce214ece647a71bb28d2899e33fd2e50b85b9b85c40ab22bd153e2fc54a2b5ab8e55d060e579b85bd9c8423896cbb7a8a0'; /* key de sitio de pruebas */ //$key = '5d9a0de6caadad23217d47837ff8643ba93e3f6bf2476227004e77059e5ba564ede8e65c6a0a49bae27ffb01276593a51cc927d3cbfaa45ad47027d548813dad'; $orderId = $this->encryptText($orderId); $parameters = $this->encryptText($parameters); $soapClient = new SoapClient('http://190.129.208.178:96/PasarelaServices/CustomerServices?wsdl'); /* sitio de pruebas */ //$soapClient = new SoapClient('https://vipagos.com.bo/PasarelaServices/CustomerServices?wsdl'); $soapReturn = $soapClient->solicitarPago(array('key' => $key, 'parametros' => $parameters)); $response = explode('&', $this->decryptText($soapReturn->return)); foreach ($response as $r) { $rArray = explode('=', $r); $result[$rArray[0]] = utf8_encode($rArray[1]); } $result['mensajeClienteFinal'] = $this->getMessageEndCustomer($result['codRes'], $result['mensaje']); $result['orderId'] = $orderId; } catch (Exception $ex) { $result['codRes'] = -500; $result['mensaje'] = 'Ocurrio un error inesperado. Por favor, intente nuevamente.'; $result['mensajeClienteFinal'] = $this->getMessageEndCustomer(-500, 'Ocurrio un error inesperado. Por favor, intente nuevamente.'); $result['orderId'] = $orderId; } try { if ($result['codRes'] != 0) { for ($attempt = 0; $attempt < 3; $attempt++) { sleep(60); $soapReturn = $soapClient->consultarEstado(array('key' => $key, 'parametros' => $orderId)); $response = explode(';', $this->decryptText($soapReturn->return)); if ($response[0] === 0) { $result['codRes'] = 0; $result['mensaje'] = 'Transaccion finalizada exitosamente.'; $result['mensajeClienteFinal'] = $this->getMessageEndCustomer(0, 'Transaccion finalizada exitosamente'); $result['orderId'] = $orderId; break; } } } } catch (Exception $ex) { $result['codRes'] = -500; $result['mensaje'] = 'Ocurrio un error inesperado. Por favor, intente nuevamente.'; $result['mensajeClienteFinal'] = $this->getMessageEndCustomer(-500, 'Ocurrio un error inesperado. Por favor, intente nuevamente.'); $result['orderId'] = $orderId; } return $result; }