/** * @param \Paybox\PayboxDirectRequest $request An instance of a Paybox request object. * * @return \Paybox\PayboxDirectResponse The Paybox response. * * @throws \GuzzleHttp\Exception\RequestException If the communication with the server fails. */ public function execute(PayboxDirectRequest $request) { $values = $request->getValues(); $values['SITE'] = $this->paybox->getSite(); $values['RANG'] = $this->paybox->getRank(); $values['VERSION'] = '00104'; $values['DATEQ'] = gmdate('dmY'); // dmYHis $values['NUMQUESTION'] = $this->getNumQuestion(); $values['HASH'] = 'SHA512'; $values['HMAC'] = $this->paybox->hashHMAC($values); $httpClient = new Client(); $response = $httpClient->request('POST', $this->url, ['form_params' => $values]); $body = (string) $response->getBody(); return new PayboxDirectResponse($body); }