Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
musica_listas_umusic
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Cristian Mauricio Diaz Canales
musica_listas_umusic
Commits
83b18dbe
Commit
83b18dbe
authored
Sep 30, 2019
by
Cristian Mauricio Diaz Canales
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
se actuliza proyecto de u music
parent
290b5e88
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
884 additions
and
73 deletions
+884
-73
config/routes.yaml
config/routes.yaml
+5
-0
src/Entity/PluMetodoPago.php
src/Entity/PluMetodoPago.php
+197
-0
src/Entity/PluSuscripcion.php
src/Entity/PluSuscripcion.php
+182
-4
src/FrontendBundle/Controller/IndexController.php
src/FrontendBundle/Controller/IndexController.php
+4
-3
src/FrontendBundle/Controller/PagosController.php
src/FrontendBundle/Controller/PagosController.php
+105
-0
src/FrontendBundle/Controller/SuscripcionController.php
src/FrontendBundle/Controller/SuscripcionController.php
+34
-4
src/Repository/PluMetodoPagoRepository.php
src/Repository/PluMetodoPagoRepository.php
+50
-0
src/Utilities/Kushki.php
src/Utilities/Kushki.php
+169
-0
src/Utilities/Utiles.php
src/Utilities/Utiles.php
+2
-2
templates/frontend/paginas/confirm.html.twig
templates/frontend/paginas/confirm.html.twig
+35
-0
templates/frontend/paginas/mostrarContratar.html.twig
templates/frontend/paginas/mostrarContratar.html.twig
+39
-33
templates/frontend/paginas/resultado.html.twig
templates/frontend/paginas/resultado.html.twig
+62
-27
No files found.
config/routes.yaml
View file @
83b18dbe
...
...
@@ -69,3 +69,8 @@ front_datos_usuario:
path
:
mi/cuenta/datos/actualizar
controller
:
App\FrontendBundle\Controller\CuentaController::actualizarDatos
methods
:
POST
front_kushki_confirmacion_pago
:
path
:
app/lista/canciones/confirm
controller
:
App\FrontendBundle\Controller\PagosController::confirmacion
methods
:
POST
\ No newline at end of file
src/Entity/PluMetodoPago.php
0 → 100644
View file @
83b18dbe
<?php
namespace
App\Entity
;
use
Doctrine\ORM\Mapping
as
ORM
;
/**
* @ORM\Table(name="plu_metodo_pago")
* @ORM\Entity(repositoryClass="App\Repository\PluMetodoPagoRepository")
*/
class
PluMetodoPago
{
const
TIPO_VIGENTE
=
1
;
const
TIPO_NO_VIGENTE
=
0
;
const
ELIMINADO_TRUE
=
1
;
const
ELIMINADO_FALSE
=
0
;
const
ESTADO_VALIDO
=
1
;
const
ESTADO_NO_VALIDO
=
0
;
const
ESTADO_PAGO_OK
=
1
;
const
ESTADO_PAGO_NOK
=
0
;
/**
* @var int
*
* @ORM\Column(name="mpa_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private
$mpaId
;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private
$mpaUserIdentifier
;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private
$mpaSusId
;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private
$mpaTipo
;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private
$mpaPrecio
;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private
$mpaEstadoPago
;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private
$mpaEstado
;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private
$mpaEliminado
;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private
$createdAt
;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private
$updatedAt
;
public
function
getMpaId
()
:
?int
{
return
$this
->
mpaId
;
}
public
function
setMpaId
(
?int
$mpaId
)
:
self
{
$this
->
mpaId
=
$mpaId
;
return
$this
;
}
public
function
getMpaUserIdentifier
()
:
?string
{
return
$this
->
mpaUserIdentifier
;
}
public
function
setMpaUserIdentifier
(
?string
$mpaUserIdentifier
)
:
self
{
$this
->
mpaUserIdentifier
=
$mpaUserIdentifier
;
return
$this
;
}
public
function
getMpaSusId
()
:
?int
{
return
$this
->
mpaSusId
;
}
public
function
setMpaSusId
(
?int
$mpaSusId
)
:
self
{
$this
->
mpaSusId
=
$mpaSusId
;
return
$this
;
}
public
function
getMpaTipo
()
:
?int
{
return
$this
->
mpaTipo
;
}
public
function
setMpaTipo
(
?int
$mpaTipo
)
:
self
{
$this
->
mpaTipo
=
$mpaTipo
;
return
$this
;
}
public
function
getMpaPrecio
()
:
?int
{
return
$this
->
mpaPrecio
;
}
public
function
setMpaPrecio
(
?int
$mpaPrecio
)
:
self
{
$this
->
mpaPrecio
=
$mpaPrecio
;
return
$this
;
}
public
function
getMpaEstadoPago
()
:
?int
{
return
$this
->
mpaEstadoPago
;
}
public
function
setMpaEstadoPago
(
?int
$mpaEstadoPago
)
:
self
{
$this
->
mpaEstadoPago
=
$mpaEstadoPago
;
return
$this
;
}
public
function
getMpaEstado
()
:
?int
{
return
$this
->
mpaEstado
;
}
public
function
setMpaEstado
(
?int
$mpaEstado
)
:
self
{
$this
->
mpaEstado
=
$mpaEstado
;
return
$this
;
}
public
function
getMpaEliminado
()
:
?int
{
return
$this
->
mpaEliminado
;
}
public
function
setMpaEliminado
(
?int
$mpaEliminado
)
:
self
{
$this
->
mpaEliminado
=
$mpaEliminado
;
return
$this
;
}
public
function
getCreatedAt
()
:
?
\DateTimeInterface
{
return
$this
->
createdAt
;
}
public
function
setCreatedAt
(
?
\DateTimeInterface
$createdAt
)
:
self
{
$this
->
createdAt
=
$createdAt
;
return
$this
;
}
public
function
getUpdatedAt
()
:
?
\DateTimeInterface
{
return
$this
->
updatedAt
;
}
public
function
setUpdatedAt
(
?
\DateTimeInterface
$updatedAt
)
:
self
{
$this
->
updatedAt
=
$updatedAt
;
return
$this
;
}
}
src/Entity/PluSuscripcion.php
View file @
83b18dbe
...
...
@@ -23,6 +23,10 @@ class PluSuscripcion
const
TIPO_XML_DESINSCRIPCION
=
2
;
const
ORIGEN_PETICION_GEARLABS
=
1
;
const
ORIGEN_PETICION_ENTEL
=
2
;
const
TIPO_SUSCRIPCION_ENTEL
=
1
;
const
TIPO_SUSCRIPCION_KUSHKI
=
2
;
const
TIPO_KUSHKI_SUSCRIPCION
=
1
;
const
TIPO_KUSHKI_DESINSCRIPCION
=
2
;
/**
* @var int
...
...
@@ -43,6 +47,13 @@ class PluSuscripcion
*/
private
$lisId
;
/**
* @var int|null
*
* @ORM\Column(name="sus_tipo_suscripcion", type="smallint", nullable=true)
*/
private
$susTipoSuscripcion
;
/**
* @var string|null
...
...
@@ -138,7 +149,66 @@ class PluSuscripcion
*/
private
$susXmlDesinscripcion
;
/**
* @var int|null
*
* @ORM\Column(name="sus_ultimo_tipo_kushki", type="integer", nullable=true)
*/
private
$susUltimoTipoKushki
;
/**
* @var int|null
*
* @ORM\Column(name="sus_http_code_kushki", type="integer", nullable=true)
*/
private
$susHttpCodeKushki
;
/**
* @var int|null
*
* @ORM\Column(name="sus_response_kushki", type="integer", nullable=true)
*/
private
$susResponseKushki
;
/**
* @var string|null
*
* @ORM\Column(name="sus_token_kushki", type="string", length=1000, nullable=true)
*/
private
$susTokenKushki
;
/**
* @var string|null
*
* @ORM\Column(name="sus_pay_type_kushki", type="string", length=1000, nullable=true)
*/
private
$susPayTypeKushki
;
/**
* @var string|null
*
* @ORM\Column(name="sus_start_date_kushki", type="string", length=1000, nullable=true)
*/
private
$susStartDateKushki
;
/**
* @var int|null
*
* @ORM\Column(name="sus_suscription_id_kushki", type="integer", nullable=true)
*/
private
$susSuscriptionIdKushki
;
/**
* @var int|null
*
* @ORM\Column(name="sus_transaction_id_kushki", type="integer", nullable=true)
*/
private
$susTransactionIdKushki
;
/**
* @var \DateTime|null
*
...
...
@@ -347,17 +417,125 @@ class PluSuscripcion
{
$this
->
susHttpDescr
=
$susHttpDescr
;
return
$this
;
}
public
function
getSusHttpXmlDescr
()
:
?string
{
return
$this
->
susHttpXmlDescr
;
}
public
function
setSusHttpXmlDescr
(
?string
$susHttpXmlDescr
)
:
self
{
$this
->
susHttpXmlDescr
=
$susHttpXmlDescr
;
return
$this
;
}
public
function
getSusTipoSuscripcion
()
:
?int
{
return
$this
->
susTipoSuscripcion
;
}
public
function
setSusTipoSuscripcion
(
?int
$susTipoSuscripcion
)
:
self
{
$this
->
susTipoSuscripcion
=
$susTipoSuscripcion
;
return
$this
;
}
public
function
getSusUltimoTipoKushki
()
:
?int
{
return
$this
->
susUltimoTipoKushki
;
}
public
function
setSusUltimoTipoKushki
(
?int
$susUltimoTipoKushki
)
:
self
{
$this
->
susUltimoTipoKushki
=
$susUltimoTipoKushki
;
return
$this
;
}
public
function
getSusHttpCodeKushki
()
:
?int
{
return
$this
->
susHttpCodeKushki
;
}
public
function
setSusHttpCodeKushki
(
?int
$susHttpCodeKushki
)
:
self
{
$this
->
susHttpCodeKushki
=
$susHttpCodeKushki
;
return
$this
;
}
public
function
getSusResponseKushki
()
:
?int
{
return
$this
->
susResponseKushki
;
}
public
function
setSusResponseKushki
(
?int
$susResponseKushki
)
:
self
{
$this
->
susResponseKushki
=
$susResponseKushki
;
return
$this
;
}
public
function
getSusTokenKushki
()
:
?string
{
return
$this
->
susTokenKushki
;
}
public
function
setSusTokenKushki
(
?string
$susTokenKushki
)
:
self
{
$this
->
susTokenKushki
=
$susTokenKushki
;
return
$this
;
}
public
function
getSusPayTypeKushki
()
:
?string
{
return
$this
->
susPayTypeKushki
;
}
public
function
setSusPayTypeKushki
(
?string
$susPayTypeKushki
)
:
self
{
$this
->
susPayTypeKushki
=
$susPayTypeKushki
;
return
$this
;
}
public
function
getSusStartDateKushki
()
:
?string
{
return
$this
->
susStartDateKushki
;
}
public
function
setSusStartDateKushki
(
?string
$susStartDateKushki
)
:
self
{
$this
->
susStartDateKushki
=
$susStartDateKushki
;
return
$this
;
}
public
function
getSusSuscriptionIdKushki
()
:
?int
{
return
$this
->
susSuscriptionIdKushki
;
}
public
function
setSusSuscriptionIdKushki
(
?int
$susSuscriptionIdKushki
)
:
self
{
$this
->
susSuscriptionIdKushki
=
$susSuscriptionIdKushki
;
return
$this
;
}
public
function
getSus
HttpXmlDescr
()
:
?string
public
function
getSus
TransactionIdKushki
()
:
?int
{
return
$this
->
sus
HttpXmlDescr
;
return
$this
->
sus
TransactionIdKushki
;
}
public
function
setSus
HttpXmlDescr
(
?string
$susHttpXmlDescr
)
:
self
public
function
setSus
TransactionIdKushki
(
?int
$susTransactionIdKushki
)
:
self
{
$this
->
sus
HttpXmlDescr
=
$susHttpXmlDescr
;
$this
->
sus
TransactionIdKushki
=
$susTransactionIdKushki
;
return
$this
;
}
...
...
src/FrontendBundle/Controller/IndexController.php
View file @
83b18dbe
...
...
@@ -37,7 +37,8 @@ class IndexController extends AbstractController {
$modal
=
$request
->
get
(
"m"
,
0
);
$log
->
debug
(
"entrando...HOST :
$host
|IP :
$ip
|MSISDN ENTRANTE:
$msisdn
| MSISDN SESION :
$msisdnSesion
| MODAL :
$modal
"
);
//prueba
$session
->
set
(
'msisdn'
,
'998240036'
);
if
(
$session
->
get
(
'msisdn'
))
{
$log
->
debug
(
"1-MSISDN sesion encontrado...."
);
$msisdn
=
$session
->
get
(
'msisdn'
);
...
...
@@ -52,7 +53,7 @@ class IndexController extends AbstractController {
$log
->
debug
(
"generando registro de sesion en BD para el msisdn
$msisdn
...."
);
$this
->
generarRegistroSession
(
$em
,
$msisdn
);
}
}
else
if
(
!
$session
->
get
(
'msisdn'
)
&&
$msisdn
==
""
&&
$modal
==
0
)
{
}
/*
else if (!$session->get('msisdn') && $msisdn == "" && $modal == 0) {
$log->debug("3-No se pudo obtener el msisdn....");
$code = Utiles::generarCodiogUnico($ip);
//redirect a php que esta en otro servidor
...
...
@@ -61,7 +62,7 @@ class IndexController extends AbstractController {
));
$statusCode = 302;
return new RedirectResponse($url, $statusCode);
}
}
*/
if
(
$session
->
get
(
'msisdn'
)
==
""
)
{
...
...
src/FrontendBundle/Controller/PagosController.php
0 → 100644
View file @
83b18dbe
<?php
namespace
App\FrontendBundle\Controller
;
use
Symfony\Bundle\FrameworkBundle\Controller\AbstractController
;
use
Symfony\Component\HttpFoundation\RedirectResponse
;
use
Symfony\Component\HttpFoundation\Response
;
use
Symfony\Component\HttpFoundation\JsonResponse
;
use
Symfony\Component\HttpFoundation\Request
;
use
Doctrine\ORM\EntityManagerInterface
;
use
App\Entity\PluRelacionesListas
;
use
App\Entity\PluLista
;
use
App\Entity\PluSuscripcion
;
use
App\Entity\PluMetodoPago
;
use
App\Utilities\Utiles
;
use
App\Utilities\Kushki
;
class
PagosController
extends
AbstractController
{
public
function
confirmacion
(
Request
$request
)
:
Response
{
$log
=
Utiles
::
setLog
(
'App\FrontendBundle\Controller::PagosController::confirmacion'
,
'app/frontend/kushki/confirmacion'
);
$em
=
$this
->
getDoctrine
()
->
getManager
(
'default'
);
$ua
=
$request
->
headers
->
get
(
'User-Agent'
);
$headers
=
$request
->
headers
->
all
();
$content
=
$request
->
getContent
();
$json
=
new
JsonResponse
();
$fechaActual
=
new
\DateTime
();
$fechaInicioKushki
=
new
\DateTime
();
$fechaInicioKushki
->
modify
(
'+1 days'
);
$fecha
=
new
\DateTime
();
$fechaUnaSemana
=
$fecha
->
modify
(
'+7 days'
);
$log
->
debug
(
"leyendo parametros de la transaccion kushki...."
);
$kushkiToken
=
$request
->
get
(
'kushkiToken'
);
$kushkiPaymentMethod
=
$request
->
get
(
'kushkiPaymentMethod'
);
$userIdentifier
=
$request
->
get
(
'userIdentifier'
);
$productId
=
$request
->
get
(
'productId'
);
$productName
=
$request
->
get
(
'productName'
);
$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
);
$suscripcion
->
setSusMsisdn
(
$userIdentifier
);
$suscripcion
->
setSusInicio
(
$fechaActual
);
$suscripcion
->
setSusFin
(
$fechaUnaSemana
);
$suscripcion
->
setSusVigente
(
PluSuscripcion
::
NO_VIGENTE
);
$suscripcion
->
setSusEliminado
(
PluSuscripcion
::
ELIMINADO_FALSE
);
$suscripcion
->
setSusUltimoTipoKushki
(
PluSuscripcion
::
TIPO_KUSHKI_SUSCRIPCION
);
$suscripcion
->
setSusTokenKushki
(
$kushkiToken
);
$suscripcion
->
setSusPayTypeKushki
(
$kushkiPaymentMethod
);
$suscripcion
->
setSusStartDateKushki
(
$fechaInicioKushki
->
format
(
'Y-m-d'
));
$suscripcion
->
setCreatedAt
(
new
\DateTime
());
$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
);
$metodoPago
->
setMpaTipo
(
PluMetodoPago
::
TIPO_NO_VIGENTE
);
$metodoPago
->
setMpaPrecio
(
$lista
->
getLisPrecio
());
$metodoPago
->
setMpaEstadoPago
(
PluMetodoPago
::
ESTADO_PAGO_NOK
);
$metodoPago
->
setMpaEstado
(
PluMetodoPago
::
ESTADO_NO_VALIDO
);
$metodoPago
->
setMpaEliminado
(
PluMetodoPago
::
ELIMINADO_FALSE
);
$metodoPago
->
setCreatedAt
(
new
\DateTime
());
$metodoPago
->
setUpdatedAt
(
new
\DateTime
());
$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
);
$kushkiSuscripcion
->
setUserIdentifier
(
$userIdentifier
);
$kushkiSuscripcion
->
setInternalId
(
$suscripcion
->
getSusId
());
$kushkiSuscripcion
->
setPeriodicity
(
Utiles
::
getParametroConfiguracion
(
"periodoSuscripcion"
,
$em
));
$kushkiSuscripcion
->
setProductDescription
(
"Lista"
);
$kushkiSuscripcion
->
setProductName
(
$productName
);
$kushkiSuscripcion
->
setProductPrice
(
$productPrice
);
$kushkiSuscripcion
->
setName
(
null
);
$kushkiSuscripcion
->
setLastName
(
null
);
$kushkiSuscripcion
->
setEmail
(
null
);
$result
=
$kushkiSuscripcion
->
callSuscripcionKushki
(
$em
);
$log
->
debug
(
$result
);
$log
->
debug
(
"datos recolectados status : "
.
print_r
(
$content
,
true
));
return
$this
->
render
(
'frontend/paginas/confirm.html.twig'
,
[
"listas"
=>
$listas
,
"msisdn"
=>
$userIdentifier
]);
}
}
src/FrontendBundle/Controller/SuscripcionController.php
View file @
83b18dbe
...
...
@@ -10,11 +10,12 @@ use Symfony\Component\HttpFoundation\JsonResponse;
use
Symfony\Component\HttpFoundation\Request
;
use
Doctrine\ORM\EntityManagerInterface
;
use
App\Entity\PluRelacionesListas
;
use
App\Entity\PluParametroConfiguracion
;
use
App\Entity\PluLista
;
use
App\Entity\PluImagen
;
use
App\Entity\PluCancion
;
use
App\Entity\PluSuscripcion
;
use
App\Entity\PluMetodoPago
;
use
App\Utilities\Utiles
;
use
App\Utilities\EntelVPW
;
...
...
@@ -60,7 +61,7 @@ class SuscripcionController extends AbstractController
else
$lista
=
$em
->
getRepository
(
PluLista
::
class
)
->
find
(
$lisId
);
return
$this
->
render
(
'frontend/paginas/mostrarContratar.html.twig'
,
array
(
"lista"
=>
$lista
,
"listas"
=>
$listas
,
"msisdn"
=>
$msisdn
));
return
$this
->
render
(
'frontend/paginas/mostrarContratar.html.twig'
,
array
(
"lista"
=>
$lista
,
"listas"
=>
$listas
,
"msisdn"
=>
$msisdn
,
"publicMerchantId"
=>
"20000000103139130000"
));
}
...
...
@@ -112,6 +113,7 @@ class SuscripcionController extends AbstractController
$suscripcion
=
new
PluSuscripcion
();
$suscripcion
->
setLisId
(
$lista
);
$suscripcion
->
setSusTipoSuscripcion
(
PluSuscripcion
::
TIPO_SUSCRIPCION_ENTEL
);
$suscripcion
->
setSusMsisdn
(
$msisdn
);
$suscripcion
->
setSusInicio
(
$fechaActual
);
$suscripcion
->
setSusFin
(
$fechaUnaSemana
);
...
...
@@ -120,10 +122,27 @@ class SuscripcionController extends AbstractController
$suscripcion
->
setCreatedAt
(
new
\DateTime
());
$suscripcion
->
setUpdatedAt
(
new
\DateTime
());
//echo "aqui";
$em
->
persist
(
$suscripcion
);
$em
->
flush
();
// echo "aqui2:" . $resultado["statusCode"];
$log
->
debug
(
"generando registro de metodo de pago..."
);
$metodoPago
=
new
PluMetodoPago
();
$metodoPago
->
setMpaSusId
(
$suscripcion
->
getSusId
());
$metodoPago
->
setMpaUserIdentifier
(
$msisdn
);
$metodoPago
->
setMpaTipo
(
PluMetodoPago
::
TIPO_NO_VIGENTE
);
$metodoPago
->
setMpaPrecio
(
$lista
->
getLisPrecio
());
$metodoPago
->
setMpaEstadoPago
(
PluMetodoPago
::
ESTADO_PAGO_NOK
);
$metodoPago
->
setMpaEstado
(
PluMetodoPago
::
ESTADO_NO_VALIDO
);
$metodoPago
->
setMpaEliminado
(
PluMetodoPago
::
ELIMINADO_FALSE
);
$metodoPago
->
setCreatedAt
(
new
\DateTime
());
$metodoPago
->
setUpdatedAt
(
new
\DateTime
());
$em
->
persist
(
$metodoPago
);
$em
->
flush
();
$log
->
debug
(
"Suscripcion generada "
.
$suscripcion
->
getSusId
());
$log
->
debug
(
"Haciendo peticion a entel VPW...."
);
$resultado
=
EntelVPW
::
suscribirEntel
(
$msisdn
,
$lista
,
$suscripcion
,
$em
);
...
...
@@ -135,6 +154,13 @@ class SuscripcionController extends AbstractController
if
(
$resultado
[
"statusCode"
]
==
200
){
$suscripcion
->
setSusVigente
(
PluSuscripcion
::
VIGENTE
);
$metodoPago
->
setMpaTipo
(
PluMetodoPago
::
TIPO_VIGENTE
);
$metodoPago
->
setMpaEstadoPago
(
PluMetodoPago
::
ESTADO_PAGO_OK
);
$metodoPago
->
setMpaEstado
(
PluMetodoPago
::
ESTADO_VALIDO
);
$em
->
persist
(
$metodoPago
);
$em
->
flush
();
$em
->
persist
(
$suscripcion
);
$em
->
flush
();
...
...
@@ -145,6 +171,8 @@ class SuscripcionController extends AbstractController
return
$this
->
render
(
'frontend/paginas/resultado.html.twig'
,
[
"lista"
=>
$lista
,
"listas"
=>
$listas
,
"mostrarKushki"
=>
0
,
"publicMerchantId"
=>
""
,
"mensaje"
=>
"Suscripción realizada correctamente"
,
"isChrome"
=>
Utiles
::
isWindowsChrome
(
$ua
)
]);
...
...
@@ -161,6 +189,8 @@ class SuscripcionController extends AbstractController
"lista"
=>
$lista
,
"listas"
=>
$listas
,
"msisdn"
=>
$msisdn
,
"mostrarKushki"
=>
1
,
"publicMerchantId"
=>
Utiles
::
getParametroConfiguracion
(
"publicKeyKushki"
,
$em
),
"error"
=>
"Estimado usuario, no se ha podido realizar la suscripción"
,
"isChrome"
=>
Utiles
::
isWindowsChrome
(
$ua
)
]);
...
...
src/Repository/PluMetodoPagoRepository.php
0 → 100644
View file @
83b18dbe
<?php
namespace
App\Repository
;
use
App\Entity\PluMetodoPago
;
use
Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository
;
use
Symfony\Bridge\Doctrine\RegistryInterface
;
/**
* @method PluMetodoPago|null find($id, $lockMode = null, $lockVersion = null)
* @method PluMetodoPago|null findOneBy(array $criteria, array $orderBy = null)
* @method PluMetodoPago[] findAll()
* @method PluMetodoPago[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class
PluMetodoPagoRepository
extends
ServiceEntityRepository
{
public
function
__construct
(
RegistryInterface
$registry
)
{
parent
::
__construct
(
$registry
,
PluMetodoPago
::
class
);
}
// /**
// * @return PluMetodoPago[] Returns an array of PluMetodoPago objects
// */
/*
public function findByExampleField($value)
{
return $this->createQueryBuilder('p')
->andWhere('p.exampleField = :val')
->setParameter('val', $value)
->orderBy('p.id', 'ASC')
->setMaxResults(10)
->getQuery()
->getResult()
;
}
*/
/*
public function findOneBySomeField($value): ?PluMetodoPago
{
return $this->createQueryBuilder('p')
->andWhere('p.exampleField = :val')
->setParameter('val', $value)
->getQuery()
->getOneOrNullResult()
;
}
*/
}
src/Utilities/Kushki.php
0 → 100644
View file @
83b18dbe
<?php
namespace
App\Utilities
;
use
App\Utilities\Utiles
;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Kushki
*
* @author Ing 04
*/
class
Kushki
{
public
$token
;
public
$productName
;
public
$productPrice
;
public
$productDescription
;
public
$userIdentifier
;
public
$name
;
public
$lastName
;
public
$email
;
public
$periodicity
;
public
$subscriptionStartDate
;
public
$internalId
;
public
function
callSuscripcionKushki
(
$em
)
{
$log
=
Utiles
::
setLog
(
"Kushki::callSuscripcionKushki"
,
'project/ws/kushki/pagos/suscripcion'
);
$url
=
Utiles
::
getParametroConfiguracion
(
"urlBaseGatewayPagos"
,
$em
)
.
Utiles
::
getParametroConfiguracion
(
"suscripcionPagos"
,
$em
)
.
Utiles
::
getParametroConfiguracion
(
"publicKeyKushki"
,
$em
)
.
"/"
.
Utiles
::
getParametroConfiguracion
(
"clientIdKushki"
,
$em
);
try
{
$log
->
debug
(
'suscribiendo kushki... url:'
.
$url
);
$ch
=
curl_init
(
$url
);
curl_setopt
(
$ch
,
CURLOPT_POST
,
1
);
curl_setopt
(
$ch
,
CURLOPT_POSTFIELDS
,
$this
->
getPostFields
());
curl_setopt
(
$ch
,
CURLOPT_RETURNTRANSFER
,
1
);
curl_setopt
(
$ch
,
CURLOPT_TIMEOUT
,
60
);
$output
=
curl_exec
(
$ch
);
$status_code_suscribir
=
curl_getinfo
(
$ch
,
CURLINFO_HTTP_CODE
);
curl_close
(
$ch
);
$log
->
debug
(
'Retorno status a suscribir externo:'
.
$status_code_suscribir
.
' | desc:'
.
$output
);
$data
=
json_decode
(
$output
,
true
);
//TODO: VERIFICAR LA RESPUESTA OBTENIDA EN FORMATO JSON
return
$data
;
}
catch
(
\Exception
$e
)
{
$log
->
err
(
' Error al suscribir. url:'
.
$url
.
' .Exception: '
.
$e
);
$status_code
=
null
;
$desc
=
null
;
$logError
=
Utiles
::
setLog
(
"Kushki::callSuscripcionKushki"
,
'error/wsKushkiSuscripcion'
);
$logError
->
err
(
' Error al suscribir. url:'
.
$url
.
' .Exception: '
.
$e
);
}
}
public
function
callCancelarSuscripcionKushki
(
$em
)
{
}
public
function
getPostFields
(){
return
"token="
.
$this
->
getToken
()
.
"&productName="
.
$this
->
getProductName
()
.
"&productPrice="
.
$this
->
getProductPrice
()
.
"&productDescription="
.
$this
->
getProductDescription
()
.
"&userIdentifier="
.
$this
->
getUserIdentifier
()
.
"&name="
.
$this
->
getName
()
.
"&lastName="
.
$this
->
getLastName
()
.
"&email="
.
$this
->
getEmail
()
.
"&periodicity="
.
$this
->
getPeriodicity
()
.
"&subscriptionStartDate="
.
$this
->
getSubscriptionStartDate
()
.
"&internalId="
.
$this
->
getInternalId
();
}
public
function
getToken
()
{
return
$this
->
token
;
}
public
function
getProductName
()
{
return
$this
->
productName
;
}
public
function
getProductPrice
()
{
return
$this
->
productPrice
;
}
public
function
getProductDescription
()
{
return
$this
->
productDescription
;
}
public
function
getUserIdentifier
()
{
return
$this
->
userIdentifier
;
}
public
function
getName
()
{
return
$this
->
name
;
}
public
function
getLastName
()
{
return
$this
->
lastName
;
}
public
function
getEmail
()
{
return
$this
->
email
;
}
public
function
getPeriodicity
()
{
return
$this
->
periodicity
;
}
public
function
getSubscriptionStartDate
()
{
return
$this
->
subscriptionStartDate
;
}
public
function
getInternalId
()
{
return
$this
->
internalId
;
}
public
function
setToken
(
$token
)
{
$this
->
token
=
$token
;
}
public
function
setProductName
(
$productName
)
{
$this
->
productName
=
$productName
;
}
public
function
setProductPrice
(
$productPrice
)
{
$this
->
productPrice
=
$productPrice
;
}
public
function
setProductDescription
(
$productDescription
)
{
$this
->
productDescription
=
$productDescription
;
}
public
function
setUserIdentifier
(
$userIdentifier
)
{
$this
->
userIdentifier
=
$userIdentifier
;
}
public
function
setName
(
$name
)
{
$this
->
name
=
$name
;
}
public
function
setLastName
(
$lastName
)
{
$this
->
lastName
=
$lastName
;
}
public
function
setEmail
(
$email
)
{
$this
->
email
=
$email
;
}
public
function
setPeriodicity
(
$periodicity
)
{
$this
->
periodicity
=
$periodicity
;
}
public
function
setSubscriptionStartDate
(
$subscriptionStartDate
)
{
$this
->
subscriptionStartDate
=
$subscriptionStartDate
;
}
public
function
setInternalId
(
$internalId
)
{
$this
->
internalId
=
$internalId
;
}
}
src/Utilities/Utiles.php
View file @
83b18dbe
...
...
@@ -37,8 +37,8 @@ class Utiles {
$parametro
=
$em
->
getRepository
(
PluParametroConfiguracion
::
class
)
->
getParametroConfiguracion
(
$nombre
);
print_r
(
$parametro
);
exit
;
//
print_r($parametro);
//
exit;
if
(
$parametro
)
$str_valor
=
$parametro
->
getPcoValor
();
...
...
templates/frontend/paginas/confirm.html.twig
0 → 100644
View file @
83b18dbe
{%
extends
'frontend/base.html.twig'
%}
{%
block
title
%}
Confirmacion
{%
endblock
%}
{%
block
body
%}
<header
class=
"masthead-sc text-white"
>
<div
class=
"masthead-content"
>
<!-- header con mensaje -->
<form
action=
"
{{
path
(
'front_index'
)
}}
"
>
<div
class=
"container subheader-info col-10 offset-1 mt-4 mb-3"
>
<div
class=
"row"
>
<div
class=
"col-12"
>
<p
class=
"numero-top text-left"
>
</p>
{%
if
error
is
defined
%}
<div
align=
"center"
>
<div
class=
"alert alert-danger"
>
{{
error
}}
</div>
</div>
{%
endif
%}
{%
if
mensaje
is
defined
%}
<div
align=
"center"
>
<div
class=
"alert alert-success"
>
{{
mensaje
}}
</div>
</div>
{%
endif
%}
<button
type=
"submit"
class=
"btn btn-codigo-suscripcion col-11 mt-4 mb-5"
>
Volver
</button>
</div>
</div>
</div>
</form>
</div>
</header>
{%
endblock
%}
templates/frontend/paginas/mostrarContratar.html.twig
View file @
83b18dbe
...
...
@@ -7,46 +7,52 @@
{%
block
body
%}
<header
class=
"masthead-sc text-white"
>
<div
class=
"masthead-content"
>
<div
class=
"masthead-content"
>
<!-- header con mensaje -->
<!-- header con mensaje -->
<form
action=
"
{{
path
(
'front_confirmar_contratar'
)
}}
"
method=
"post"
}}
>
<input
type=
"hidden"
id=
"lisId"
name=
"lisId"
value=
"
{{
lista.lisId
}}
"
>
<input
type=
"hidden"
id=
"msisdn"
name=
"msisdn"
value=
"
{{
msisdn
}}
"
>
<form
action=
"
{{
path
(
'front_confirmar_contratar'
)
}}
"
method=
"post"
>
<input
type=
"hidden"
id=
"lisId"
name=
"lisId"
value=
"
{{
lista.lisId
}}
"
>
<input
type=
"hidden"
id=
"msisdn"
name=
"msisdn"
value=
"
{{
msisdn
}}
"
>
<div
class=
"container subheader-info col-10 offset-1 mt-4 mb-3"
>
<div
class=
"row"
>
<div
class=
"col-12"
>
<p
class=
"numero-top text-left"
>
{{
lista.lisNombre
}}
<a
href=
"
{{
path
(
'front_canciones_lista'
,
{
'lisId'
:
lista.lisId
}
)
}}
"
target=
"_blank"
>
(Ver canciones)
</a>
</p>
<p>
Suscribete a esta categoria por $500 semanales
</p>
<button
type=
"submit"
class=
"btn btn-codigo-suscripcion col-11 mt-4 mb-5"
>
Suscríbete aquí
</button>
<div
class=
"container subheader-info col-10 offset-1 mt-4 mb-3"
>
<div
class=
"row"
>
<div
class=
"col-12"
>
<p
class=
"numero-top text-left"
>
{{
lista.lisNombre
}}
<a
href=
"
{{
path
(
'front_canciones_lista'
,
{
'lisId'
:
lista.lisId
}
)
}}
"
target=
"_blank"
>
(Ver canciones)
</a>
</p>
<p>
Suscribete a esta categoria por $500 semanales
</p>
<button
type=
"submit"
class=
"btn btn-codigo-suscripcion col-11 mt-4 mb-5"
>
Suscríbete aquí
</button>
{#prueba metodo de pago#}
<h4
class=
"ti-beneficios"
>
Beneficios
</h4>
</div>
</div>
</div>
</form>
<div
class=
"container"
>
<div
class=
"row"
>
{#prueba metodo de pago#}
<h4
class=
"ti-beneficios"
>
Beneficios
</h4>
</div>
</div>
</div>
</form>
<div
class=
"col-11"
>
<ul>
{%
if
lista.lisNombre
==
'Rock'
%}
<li
class=
"item-suscripcion mb-2"
>
50% descuento en el resto de las canciones de la categoría Rock
</li>
{%
endif
%}
<li
class=
"item-suscripcion mb-2"
>
Pago Fácil el monto se descontara automáticamente de tu prepago o se abonara a tu plan
</li>
<li
class=
"item-suscripcion mb-2"
>
Tenemos canciones nuevas toda la semanas!
</li>
<li
class=
"item-suscripcion mb-2"
>
Participa por increíbles premios.
</li>
</ul>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"col-11"
>
<ul>
{%
if
lista.lisNombre
==
'Rock'
%}
<li
class=
"item-suscripcion mb-2"
>
50% descuento en el resto de las canciones de la categoría Rock
</li>
{%
endif
%}
<li
class=
"item-suscripcion mb-2"
>
Pago Fácil el monto se descontara automáticamente de tu prepago o se abonara a tu plan
</li>
<li
class=
"item-suscripcion mb-2"
>
Tenemos canciones nuevas toda la semanas!
</li>
<li
class=
"item-suscripcion mb-2"
>
Participa por increíbles premios.
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
</header>
{%
endblock
%}
templates/frontend/paginas/resultado.html.twig
View file @
83b18dbe
{%
extends
'frontend/base.html.twig'
%}
{%
block
title
%}
Reproductor
{%
endblock
%}
{%
block
stylesheets
%}
<link
href=
"
{{
asset
(
'frontend/css/styles-player.css'
)
}}
"
rel=
"stylesheet"
>
<link
href=
"
{{
asset
(
'frontend/css/styles-player.css'
)
}}
"
rel=
"stylesheet"
>
{%
endblock
%}
{%
block
body
%}
<header
class=
"masthead-sc text-white"
>
<header
class=
"masthead-sc text-white"
>
<div
class=
"masthead-content"
>
<div
class=
"masthead-content"
>
<div
class=
"container subheader-info col-10 offset-1 mt-4 mb-3"
>
<div
class=
"row"
>
<div
class=
"col-12"
>
<p
class=
"numero-top text-left"
>
{{
lista.getLisNombre
()
}}
</p>
{%
if
error
is
defined
%}
<div
align=
"center"
>
<div
class=
"alert alert-danger"
>
{{
error
}}
</div>
</div>
{%
endif
%}
<!-- header con mensaje -->
<form
action=
"
{{
path
(
'front_index'
)
}}
"
}}
>
<div
class=
"container subheader-info col-10 offset-1 mt-4 mb-3"
>
<div
class=
"row"
>
<div
class=
"col-12"
>
<p
class=
"numero-top text-left"
>
{{
lista.getLisNombre
()
}}
</p>
{%
if
error
is
defined
%}
<div
align=
"center"
>
<div
class=
"alert alert-danger"
>
{{
error
}}
</div>
</div>
{%
endif
%}
{%
if
mensaje
is
defined
%}
<div
align=
"center"
>
<div
class=
"alert alert-success"
>
{{
mensaje
}}
</div>
</div>
{%
endif
%}
{%
if
mensaje
is
defined
%}
<div
align=
"center"
>
<div
class=
"alert alert-success"
>
{{
mensaje
}}
</div>
</div>
{%
endif
%}
<button
type=
"submit"
class=
"btn btn-codigo-suscripcion col-11 mt-4 mb-5"
>
Volver
</button>
</div>
{%
if
mostrarKushki
==
1
%}
<div
class=
"col-12"
>
<form
id=
"kushki-pay-form"
action=
"confirm"
method=
"post"
>
<input
type=
"hidden"
name=
"userIdentifier"
value=
"
{{
msisdn
}}
"
>
<input
type=
"hidden"
name=
"productId"
value=
"
{{
lista.getLisId
()
}}
"
>
<input
type=
"hidden"
name=
"productPrice"
value=
"
{{
lista.getLisPrecio
()
}}
"
>
<input
type=
"hidden"
name=
"productName"
value=
"
{{
lista.getLisNombre
()
}}
"
>
</form>
</div>
{%
endif
%}
</div>
</div>
</div>
<!-- header con mensaje -->
<form
action=
"
{{
path
(
'front_index'
)
}}
"
>
<div
class=
"container subheader-info col-10 offset-1 mt-4 mb-3"
>
<div
class=
"row"
>
<div
class=
"col-12"
>
<button
type=
"submit"
class=
"btn btn-codigo-suscripcion col-11 mt-4 mb-5"
>
Volver
</button>
</div>
</div>
</div>
</form>
</div>
</form>
</div>
</header>
</header>
{%
endblock
%}
{%
block
javascripts
%}
{%
if
mostrarKushki
==
1
%}
<script
src=
"https://cdn.kushkipagos.com/kushki-checkout.js"
></script>
<script
type=
"text/javascript"
>
var
kushki
=
new
KushkiCheckout
({
form
:
"
kushki-pay-form
"
,
merchant_id
:
"
{{
publicMerchantId
}}
"
,
amount
:
"
500.0
"
,
currency
:
"
CLP
"
,
payment_methods
:
[
"
credit-card
"
],
// Payments Methods enabled
is_subscription
:
false
,
// Optional
inTestEnvironment
:
true
,
regional
:
false
// Optional
});
</script>
{%
endif
%}
</script>
{%
endblock
%}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment