Actualizacion #1 de backend suscripcion, envio de sms y mail a usuario

parent c4dd7a8e
......@@ -11,6 +11,8 @@ use App\Utilities\Kushki;
use App\Entity\PluSuscripcion;
use App\Entity\PluLista;
use App\Entity\PluMetodoPago;
use App\Entity\PluUsuarioMovil;
use App\Entity\PluCodigoPin;
use App\Entity\PluRegistroSuscripcionBackend;
class PagosExternosController extends AbstractController {
......@@ -18,7 +20,7 @@ class PagosExternosController extends AbstractController {
private $manager = null;
public function processPagoExternoKushki(Request $request): Response {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosController::inicioPagoExternoKushki', 'app/suscripciones');
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosExternosController::processPagoExternoKushki', 'app/suscripciones');
$em = $this->getDoctrine()->getManager('default');
$userIdentifier = $request->get("msisdn");
$productId = $request->get("productId");
......@@ -35,7 +37,7 @@ class PagosExternosController extends AbstractController {
}
public function inicioPagoExternoKushki(Request $request) {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosController::inicioPagoExternoKushki', 'app/suscripciones');
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosExternosController::inicioPagoExternoKushki', 'app/suscripciones');
$em = $this->getDoctrine()->getManager('default');
$userIdentifier = $request->get("userIdentifier");
$productId = $request->get("productId"); //lisId
......@@ -131,13 +133,16 @@ class PagosExternosController extends AbstractController {
]);
}
public function confirmarPagoExternoKushki(Request $request): Response {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosController::confirmarExternoKushki', 'app/suscripciones');
public function confirmarPagoExternoKushki(Request $request, \Swift_Mailer $mailer): Response {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosExternosController::confirmarExternoKushki', 'app/suscripciones');
$em = $this->getDoctrine()->getManager('default');
$ua = $request->headers->get('User-Agent');
$headers = $request->headers->all();
$content = $request->getContent();
$json = new JsonResponse();
$ua = $request->headers->get('User-Agent');
$ip = $request->getClientIp();
$fechaActual = new \DateTime();
$fechaInicioKushki = new \DateTime();
$fechaInicioKushki->modify('+1 days');
......@@ -274,6 +279,34 @@ class PagosExternosController 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(), "Notificación Suscripción U-Music", $usuario[0]->getUmoMsisdn(), $lista->getLisId(), $em, $mailer);
}
//
}
return $this->render('external/confirm.html.twig', [
......@@ -283,5 +316,26 @@ class PagosExternosController extends AbstractController {
"error" => $error
]);
}
private function sendMail($email, $title, $msisdn, $lisId, $em, $mailer) {
$log = Utiles::setLog('App\FrontendBundle\Controller::PagosExternosController::sendMail', 'app/suscripciones');
$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;
}
}
}
......@@ -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,20 +223,22 @@ 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;
$array_in = array(
'servicio'=>array('id' => $servicioId, 'codigo' => $servicioCodigo),
'sms'=>array('mensaje' => $mensaje, 'msisdn' => "569".$this->getCpiMsisdn())
'sms'=>array('mensaje' => $mensaje, 'msisdn' => "56".$this->getCpiMsisdn())
);
$json = json_encode($array_in);
......
This diff is collapsed.
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