Esempio n. 1
0
 /**
  * Payment confirmation
  *
  * @param Request $request Request element
  *
  * @return Response
  *
  * @Method("POST")
  */
 public function confirmationAction(Request $request)
 {
     $status = WebpayController::WEBPAY_ACCEPTED;
     $paymentMethod = new WebpayMethod();
     $transaction = new Normal();
     $transaction->setAccion($request->request->get('TBK_ACCION'))->setCodigoAutorizacion($request->request->get('TBK_CODIGO_AUTORIZACION'))->setCodigoComercio($request->request->get('TBK_CODIGO_COMERCIO'))->setCodigoComercioEnc($request->request->get('TBK_CODIGO_COMERCIO_ENC'))->setFechaContable($request->request->get('TBK_FECHA_CONTABLE'))->setFechaExpiracion($request->request->get('TBK_FECHA_EXPIRACION'))->setFechaTransaccion($request->request->get('TBK_FECHA_TRANSACCION'))->setFinalNumeroTarjeta($request->request->get('TBK_FINAL_NUMERO_TARJETA'))->setHoraTransaccion($request->request->get('TBK_HORA_TRANSACCION'))->setIdSesion($request->request->get('TBK_ID_SESION'))->setIdTransaccion($request->request->get('TBK_ID_TRANSACCION'))->setMac($request->request->get('TBK_MAC'))->setMonto($request->request->get('TBK_MONTO'))->setNumeroCuotas($request->request->get('TBK_NUMERO_CUOTAS'))->setOrdenCompra($request->request->get('TBK_ORDEN_COMPRA'))->setRespuesta($request->request->get('TBK_RESPUESTA'))->setTipoPago($request->request->get('TBK_TIPO_PAGO'))->setVci($request->request->get('TBK_VCI'))->setTipoTransaccion($request->request->get('TBK_TIPO_TRANSACCION'));
     $paymentMethod->setTransaction($transaction);
     try {
         $this->get('webpay.manager')->confirmPayment($paymentMethod, $request->request->all());
     } catch (PaymentOrderNotFoundException $e) {
         $status = WebpayController::WEBPAY_REJECTED;
     } catch (WebpayMacCheckException $e) {
         $status = WebpayController::WEBPAY_REJECTED;
     } catch (PaymentAmountsNotMatchException $e) {
         $status = WebpayController::WEBPAY_REJECTED;
     } catch (PaymentException $e) {
     }
     return new Response($status);
 }