Primera actualizacion de mensaje de aviso cuando se suscribe o cancela

parent 3ba7d71a
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" baseProfile="tiny" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 100 100" xml:space="preserve">
<g>
<g>
<path fill="#099DCA" d="M17.14,62.21L17.14,62.21c-1.04,0-1.89-0.85-1.89-1.89V10.2c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v50.12C19.03,61.36,18.18,62.21,17.14,62.21z"/>
<path fill="#099DCA" d="M27.26,62.21L27.26,62.21c-1.04,0-1.89-0.85-1.89-1.89V10.2c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v50.12C29.15,61.36,28.3,62.21,27.26,62.21z"/>
<path fill="#099DCA" d="M37.38,42.93L37.38,42.93c-1.04,0-1.89-0.85-1.89-1.89V17.98c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v23.06C39.27,42.08,38.42,42.93,37.38,42.93z"/>
<path fill="#099DCA" d="M47.51,38.75L47.51,38.75c-1.04,0-1.89-0.85-1.89-1.89v-14.7c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v14.7C49.39,37.9,48.54,38.75,47.51,38.75z"/>
<path fill="#099DCA" d="M57.63,38.75L57.63,38.75c-1.04,0-1.89-0.85-1.89-1.89v-14.7c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v14.7C59.52,37.9,58.67,38.75,57.63,38.75z"/>
<path fill="#099DCA" d="M67.75,42.93L67.75,42.93c-1.04,0-1.89-0.85-1.89-1.89V17.98c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v23.06C69.64,42.08,68.79,42.93,67.75,42.93z"/>
<path fill="#099DCA" d="M77.87,62.21L77.87,62.21c-1.04,0-1.89-0.85-1.89-1.89V10.2c0-1.04,0.85-1.89,1.89-1.89l0,0
c1.04,0,1.89,0.85,1.89,1.89v50.12C79.76,61.36,78.91,62.21,77.87,62.21z"/>
<path fill="#099DCA" d="M88,62.21L88,62.21c-1.04,0-1.89-0.85-1.89-1.89V10.2c0-1.04,0.85-1.89,1.89-1.89h0
c1.04,0,1.89,0.85,1.89,1.89v50.12C89.88,61.36,89.03,62.21,88,62.21z"/>
</g>
<g>
<path fill="#099DCA" d="M5.06,74.03v13.45c0,1.27,0.59,1.69,1.52,1.69c0.94,0,1.53-0.42,1.53-1.69V74.03h2.78V87.3
c0,2.82-1.5,4.38-4.39,4.38c-2.89,0-4.39-1.57-4.39-4.38V74.03H5.06z"/>
<path fill="#099DCA" d="M33.98,86.41l2.01-12.38h4.09v17.44h-2.78V78.96l-2.03,12.51h-2.78l-2.19-12.33v12.33h-2.57V74.03h4.09
L33.98,86.41z"/>
<path fill="#099DCA" d="M50.37,74.03v13.45c0,1.27,0.59,1.69,1.52,1.69c0.94,0,1.53-0.42,1.53-1.69V74.03h2.78V87.3
c0,2.82-1.5,4.38-4.39,4.38c-2.89,0-4.39-1.57-4.39-4.38V74.03H50.37z"/>
<path fill="#099DCA" d="M67.52,73.83c2.89,0,4.33,1.57,4.33,4.39v0.55h-2.78v-0.72c0-1.27-0.54-1.72-1.47-1.72
s-1.47,0.45-1.47,1.72c0,1.2,0.64,2.07,1.5,2.87c0.43,0.42,0.88,0.82,1.39,1.22c0.96,0.82,1.87,1.77,2.43,2.99
c0.29,0.62,0.43,1.35,0.43,2.17c0,2.82-1.5,4.38-4.39,4.38c-2.89,0-4.39-1.57-4.39-4.38v-1.07h2.78v1.25
c0,1.27,0.59,1.69,1.53,1.69c0.94,0,1.52-0.42,1.52-1.69c0-1.2-0.64-2.07-1.5-2.89c-0.43-0.4-0.88-0.8-1.36-1.22
c-0.99-0.8-1.9-1.74-2.46-2.96c-0.29-0.62-0.43-1.35-0.43-2.17C63.19,75.4,64.63,73.83,67.52,73.83z"/>
<path fill="#099DCA" d="M78.92,74.03h2.94v17.44h-2.94V74.03z"/>
<path fill="#099DCA" d="M97.88,84.96v2.32c0,2.82-1.5,4.38-4.39,4.38c-2.89,0-4.39-1.57-4.39-4.38v-9.07
c0-2.82,1.5-4.39,4.39-4.39c2.89,0,4.39,1.57,4.39,4.39v1.69H95.1v-1.87c0-1.27-0.59-1.72-1.52-1.72c-0.94,0-1.53,0.45-1.53,1.72
v9.42c0,1.27,0.59,1.69,1.53,1.69c0.94,0,1.52-0.42,1.52-1.69v-2.49H97.88z"/>
</g>
</g>
</svg>
......@@ -24,6 +24,8 @@ class PluCodigoPin
const ELIMINADO_FALSE=0;
const TIPO_VALIDAR_MSISDN=1;
const TIPO_AVISO_NUEVA_SUSCRIPCION = 2;
const TIPO_AVISO_CANCELAR_SUSCRIPCION = 3;
const SMS_URL = "http://entelapis.gearlabs.cl/api/emsg/enviarSms";
......@@ -221,13 +223,15 @@ class PluCodigoPin
}
public function enviarSms($em){
public function enviarSms($em, $mensaje = null){
$log = Utiles::setLog("App\Entity\PluCodigoPin:enviarSms", 'app/entity/pin');
$flag = false;
$mensaje = "Estimado cliente, su codigo de validacion es:".$this->getCpiPin();
if($mensaje == null)
{
$mensaje = "Estimado cliente, su codigo de validacion es:".$this->getCpiPin();
}
$url = self::SMS_URL;
$servicioId = self::SMS_SERVICIO_ID;
$servicioCodigo = self::SMS_SERVICIO_CODIGO;
......
......@@ -12,6 +12,8 @@ use App\Entity\PluRelacionesListas;
use App\Entity\PluLista;
use App\Entity\PluSuscripcion;
use App\Entity\PluMetodoPago;
use App\Entity\PluUsuarioMovil;
use App\Entity\PluCodigoPin;
use App\Utilities\Utiles;
use App\Utilities\Kushki;
......@@ -21,6 +23,7 @@ class PagosController extends AbstractController {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosController::confirmacion', 'app/frontend/kushki/confirmacion');
$em = $this->getDoctrine()->getManager('default');
$ua = $request->headers->get('User-Agent');
$ip = $request->getClientIp();
$headers = $request->headers->all();
$content = $request->getContent();
$json = new JsonResponse();
......@@ -30,12 +33,12 @@ class PagosController extends AbstractController {
$fecha = new \DateTime();
$fecha->setTime(10, 00);
$periodo = Utiles::getParametroConfiguracion("periodoSuscripcion", $em);
if($periodo == "daily"){
if ($periodo == "daily") {
$fechaUnaSemana = $fecha->modify('+1 days');
}else if($periodo == "weekly"){
} else if ($periodo == "weekly") {
$fechaUnaSemana = $fecha->modify('+7 days');
}
$log->debug("datos recolectados status : " . print_r($content,true));
$log->debug("datos recolectados status : " . print_r($content, true));
$log->debug("leyendo parametros de la transaccion kushki....");
$kushkiToken = $request->get('kushkiToken');
$kushkiPaymentMethod = $request->get('kushkiPaymentMethod');
......@@ -45,9 +48,9 @@ class PagosController extends AbstractController {
$productPrice = $request->get('productPrice');
$listas = $em->getRepository(PluLista::class)->getListasVigentes($userIdentifier);
$lista = $em->getRepository(PluLista::class)->find($productId);
$log->debug("generando objeto de suscripcion relacionado a pago con kushki....");
$suscripcion = new PluSuscripcion();
$suscripcion->setLisId($lista);
$suscripcion->setSusTipoSuscripcion(PluSuscripcion::TIPO_SUSCRIPCION_KUSHKI);
......@@ -64,9 +67,9 @@ class PagosController extends AbstractController {
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
$log->debug("generando registro de metodo de pago...");
$metodoPago = new PluMetodoPago();
$metodoPago->setMpaSusId($suscripcion->getSusId());
$metodoPago->setMpaUserIdentifier($userIdentifier);
......@@ -81,10 +84,10 @@ class PagosController extends AbstractController {
$em->persist($metodoPago);
$em->flush();
$log->debug("realizando peticion a gateway de kushki - SUSCRIPCION....");
//llamada a curl de gateway-suscripcion
$kushkiSuscripcion = new Kushki();
$kushkiSuscripcion->setToken($kushkiToken);
......@@ -98,18 +101,18 @@ class PagosController extends AbstractController {
$kushkiSuscripcion->setName(null);
$kushkiSuscripcion->setLastName(null);
$kushkiSuscripcion->setEmail(null);
$kushkiSuscripcion->setSubscriptionStartDate($suscripcion->getSusStartDateKushki());
$kushkiSuscripcion->setSubscriptionStartDate($suscripcion->getSusStartDateKushki());
$result = $kushkiSuscripcion->callSuscripcionKushki($em);
$log->debug("analizando respuesta KUSHKI- SUSCRIPCION.....");
$http_status = $result["code"];
$message = $result["message"];
$internalId = $result["internalId"];
$subscriptionId = $result["subscriptionId"];
$error = 0;
if($http_status > 201){
if ($http_status > 201) {
$log->debug("ha ocurrido un error con la suscripcion KUSHKI- SUSCRIPCION.....");
$error = 1;
$metodoPago->setUpdatedAt(new \DateTime());
......@@ -121,8 +124,7 @@ class PagosController extends AbstractController {
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
}else{
} else {
$log->debug("la suscripcion se ha realizado correctamente KUSHKI- SUSCRIPCION.....");
$metodoPago->setMpaTipo(PluMetodoPago::TIPO_VIGENTE);
$metodoPago->setMpaEstadoPago(PluMetodoPago::ESTADO_PAGO_OK);
......@@ -130,7 +132,7 @@ class PagosController extends AbstractController {
$metodoPago->setUpdatedAt(new \DateTime());
$em->persist($metodoPago);
$em->flush();
$suscripcion->setSusVigente(PluSuscripcion::VIGENTE);
$suscripcion->setSusUltimoTipoXml(PluSuscripcion::TIPO_XML_SUSCRIPCION);
$suscripcion->setSusHttpCodeKushki($http_status);
......@@ -140,16 +142,64 @@ class PagosController extends AbstractController {
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
//Envio de sms
$codigoPin = new PluCodigoPin();
$codigoPin->setCpiIp($ip);
$codigoPin->setCpiMsisdn($userIdentifier);
$codigoPin->setCpiUserAgent($ua);
$codigoPin->setCpiTipo(PluCodigoPin::TIPO_AVISO_NUEVA_SUSCRIPCION);
$codigoPin->setCpiMedio(PluCodigoPin::MEDIO_WEB);
$codigoPin->setCpiEliminado(PluCodigoPin::ELIMINADO_FALSE);
$codigoPin->generarPin();
$nombreLista = $lista->getLisNombre();
$precioLista = $lista->getLisPrecio();
$codigoPin->enviarSms($em, "Hola!, Se ha creado una nueva suscripcion en UMUSIC - $nombreLista, por un valor de $precioLista, accede en http://new.umusic.cl .");
//enviar mail con detalle, si el usuario posee uno, sino no se envia.
if ($codigoPin->getCpiEstado() == PluCodigoPin::ESTADO_ENVIADO_OK) {
$log->debug('Hemos enviado un sms con el código de validación...');
} else {
$log->debug('Ocurrio un problema al intentar enviar el sms...');
}
$usuario = $em->getRepository(PluUsuarioMovil::class)->findBy(array("umoMsisdn" => $userIdentifier));
if($usuario[0]->getUmoMail() != null){
$this->sendMail($usuario[0]->getUmoMail(), "Respaldo Suscripción U-Music", $usuario[0]->getUmoMsisdn(), $lista->getLisId(), $em, \Swift_Mailer);
}
}
return $this->render('frontend/paginas/confirm.html.twig', [
"listas" => $listas,
"lista" => $lista,
"msisdn"=> $userIdentifier,
"message" => $message,
"error" => $error
"listas" => $listas,
"lista" => $lista,
"msisdn" => $userIdentifier,
"message" => $message,
"error" => $error
]);
}
private function sendMail($email, $title, $msisdn, $lisId, $em, $mailer) {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosController::sendMail', 'app/frontend/kushki/confirmacion');
$listaObj = $em->getRepository(PluLista::class)->find($lisId);
$urlBase = Utiles::getParametroConfiguracion("urlBaseFrontUmusic", $em);
$log->debug("Generando mensaje a enviar al cliente...");
$message = (new \Swift_Message($title))
->setFrom(Utiles::getParametroConfiguracion("senderMail", $em))
->setTo($email)
->setBody(
$this->renderView(
'email/respaldo_suscripcion.html.twig', ['msisdn' => $msisdn, 'urlBase' => $urlBase, 'lista' => $listaObj]
), 'text/html'
);
if ($mailer->send($message)) {
return 1;
} else {
return 0;
}
}
}
......@@ -10,6 +10,8 @@ use Symfony\Component\HttpFoundation\Request;
use App\Entity\PluLista;
use App\Entity\PluSuscripcion;
use App\Entity\PluMetodoPago;
use App\Entity\PluUsuarioMovil;
use App\Entity\PluCodigoPin;
use App\Utilities\Utiles;
use App\Utilities\EntelVPW;
use App\Utilities\Kushki;
......@@ -81,7 +83,7 @@ class SuscripcionController extends AbstractController {
$fechaActual = new \DateTime();
$fecha = new \DateTime();
$fechaUnaSemana = $fecha->modify('+7 days');
$json = new JsonResponse();
$isTest = Utiles::getParametroConfiguracion("isTestEnviroment", $em);
......@@ -195,9 +197,10 @@ class SuscripcionController extends AbstractController {
$em = $this->getDoctrine()->getManager('default');
$msisdn = $request->get("msisdn", null);
$lisId = $request->get("lisId", null);
$tipo = $request->get("tipo",null);
$tipo = $request->get("tipo", null);
$json = new JsonResponse();
$ua = $request->headers->get('User-Agent');
$ip = $request->getClientIp();
/* Busca listas vigentes */
......@@ -252,13 +255,41 @@ class SuscripcionController extends AbstractController {
$em->persist($ultimaSuscripcionVigenteLista);
$em->flush();
//Envio de sms
$codigoPin = new PluCodigoPin();
$codigoPin->setCpiIp($ip);
$codigoPin->setCpiMsisdn($msisdn);
$codigoPin->setCpiUserAgent($ua);
$codigoPin->setCpiTipo(PluCodigoPin::TIPO_AVISO_NUEVA_SUSCRIPCION);
$codigoPin->setCpiMedio(PluCodigoPin::MEDIO_WEB);
$codigoPin->setCpiEliminado(PluCodigoPin::ELIMINADO_FALSE);
$codigoPin->generarPin();
$nombreLista = $lista->getLisNombre();
$precioLista = $lista->getLisPrecio();
$codigoPin->enviarSms($em, "Hola!, Se ha creado una nueva suscripcion en UMUSIC - $nombreLista, por un valor de $precioLista, accede en http://new.umusic.cl .");
//enviar mail con detalle, si el usuario posee uno, sino no se envia.
if ($codigoPin->getCpiEstado() == PluCodigoPin::ESTADO_ENVIADO_OK) {
$log->debug('Hemos enviado un sms con el código de validación...');
} else {
$log->debug('Ocurrio un problema al intentar enviar el sms...');
}
$usuario = $em->getRepository(PluUsuarioMovil::class)->findBy(array("umoMsisdn" => $msisdn));
if ($usuario[0]->getUmoMail() != null) {
$this->sendMail($usuario[0]->getUmoMail(), "Respaldo Suscripción U-Music", $usuario[0]->getUmoMsisdn(), $lista->getLisId(), $em, \Swift_Mailer);
}
//
$url = $this->container->get('router')->generate('front_mi_cuenta', array('msisdn' => $msisdn, 'success' => 'Se ha desuscrito con éxito', 'listas' => $listas));
return new RedirectResponse($url);
} else {
$url = $this->container->get('router')->generate('front_mi_cuenta', array('msisdn' => $msisdn, 'error' => $resultado["descr"], 'listas' => $listas));
return new RedirectResponse($url);
}
}else if($tipo== 2){
} else if ($tipo == 2) {
$ultimaSuscripcionVigenteLista = $this->getDoctrine()->getRepository(PluSuscripcion::class)->getUltimaSuscripcionListaKushki($msisdn, $lisId);
//Registro de desuscripcion
$suscripcion = new PluSuscripcion();
......@@ -283,15 +314,15 @@ class SuscripcionController extends AbstractController {
$kushki = new Kushki();
$result = $kushki->callCancelarSuscripcionKushki($em, $suscripcion);
$log->debug("Resultado KUSHKI-CANCELAR SUSCRIPCION..." . print_r($result, true));
$log->debug("analizando respuesta KUSHKI- SUSCRIPCION.....");
$http_status = $result["code"];
$message = $result["message"];
$internalId = $result["internalId"];
$subscriptionId = $result["subscriptionId"];
if ($http_status == 204) {
$suscripcion->setSusUltimoTipoXml(PluSuscripcion::TIPO_XML_DESINSCRIPCION);
$suscripcion->setSusHttpCodeKushki($http_status);
......@@ -301,10 +332,38 @@ class SuscripcionController extends AbstractController {
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
$ultimaSuscripcionVigenteLista->setSusVigente(PluSuscripcion::NO_VIGENTE);
$em->persist($ultimaSuscripcionVigenteLista);
$em->flush();
//Envio de sms
$codigoPin = new PluCodigoPin();
$codigoPin->setCpiIp($ip);
$codigoPin->setCpiMsisdn($msisdn);
$codigoPin->setCpiUserAgent($ua);
$codigoPin->setCpiTipo(PluCodigoPin::TIPO_AVISO_NUEVA_SUSCRIPCION);
$codigoPin->setCpiMedio(PluCodigoPin::MEDIO_WEB);
$codigoPin->setCpiEliminado(PluCodigoPin::ELIMINADO_FALSE);
$codigoPin->generarPin();
$nombreLista = $lista->getLisNombre();
$precioLista = $lista->getLisPrecio();
$codigoPin->enviarSms($em, "Hola!, Se ha creado una nueva suscripcion en UMUSIC - $nombreLista, por un valor de $precioLista, accede en http://new.umusic.cl .");
//enviar mail con detalle, si el usuario posee uno, sino no se envia.
if ($codigoPin->getCpiEstado() == PluCodigoPin::ESTADO_ENVIADO_OK) {
$log->debug('Hemos enviado un sms con el código de validación...');
} else {
$log->debug('Ocurrio un problema al intentar enviar el sms...');
}
$usuario = $em->getRepository(PluUsuarioMovil::class)->findBy(array("umoMsisdn" => $msisdn));
if ($usuario[0]->getUmoMail() != null) {
$this->sendMail($usuario[0]->getUmoMail(), "Respaldo Suscripción U-Music", $usuario[0]->getUmoMsisdn(), $lista->getLisId(), $em, \Swift_Mailer);
}
//
$url = $this->container->get('router')->generate('front_mi_cuenta', array('msisdn' => $msisdn, 'success' => 'Se ha desuscrito con éxito', 'listas' => $listas));
return new RedirectResponse($url);
......@@ -316,12 +375,33 @@ class SuscripcionController extends AbstractController {
$suscripcion->setUpdatedAt(new \DateTime());
$em->persist($suscripcion);
$em->flush();
$url = $this->container->get('router')->generate('front_mi_cuenta', array('msisdn' => $msisdn, 'error' => $message, 'listas' => $listas));
return new RedirectResponse($url);
}
}
}
private function sendMail($email, $title, $msisdn, $lisId, $em, $mailer) {
$log = Utiles::setLog('App\FrontendBundle\Controller::SuscripcionController::sendMail', 'app/frontend/descontratacion');
$listaObj = $em->getRepository(PluLista::class)->find($lisId);
$urlBase = Utiles::getParametroConfiguracion("urlBaseFrontUmusic", $em);
$log->debug("Generando mensaje a enviar al cliente...");
$message = (new \Swift_Message($title))
->setFrom(Utiles::getParametroConfiguracion("senderMail", $em))
->setTo($email)
->setBody(
$this->renderView(
'email/respaldo_suscripcion.html.twig', ['msisdn' => $msisdn, 'urlBase' => $urlBase, 'lista' => $listaObj]
), 'text/html'
);
if ($mailer->send($message)) {
return 1;
} else {
return 0;
}
}
}
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment