1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 package fr.paris.lutece.plugins.tipi.business;
38
39 import java.math.BigDecimal;
40 import java.util.Calendar;
41
42 import fr.paris.lutece.portal.service.util.AppPropertiesService;
43 import fr.paris.tipi.generated.CreerPaiementSecuriseRequest;
44 import fr.paris.vdp.tipi.create.url.enumeration.PaymentType;
45
46
47
48
49 public final class TipiRequestFactory
50 {
51 private static final String X = "X";
52 private static final String W = "W";
53 private static final String REFERENCE_CLIENT = "tipi.numcli";
54 private static final String TIPI_OBJET = "tipi.objet";
55 private static final String URL_NOTIF = "tipi.urlnotif";
56 private static final String URL_REDIRECT = "tipi.urlredirect";
57 private static final String PAYMENT_TYPE = "tipi.saisie";
58 private static final BigDecimal CENT = new BigDecimal( "100" );
59
60 private TipiRequestFactory( )
61 {
62 }
63
64
65
66
67
68
69
70
71
72
73
74
75
76 public static final CreerPaiementSecuriseRequest createRequest( String email, String refDet, BigDecimal amount )
77 {
78 CreerPaiementSecuriseRequest request = new CreerPaiementSecuriseRequest( );
79 Calendar calendar = Calendar.getInstance( );
80
81 request.setMel( email );
82
83
84 request.setMontant( String.valueOf( Integer.valueOf( amount.multiply( CENT ).intValueExact( ) ) ) );
85 request.setRefdet( refDet );
86 request.setNumcli( AppPropertiesService.getProperty( REFERENCE_CLIENT ) );
87 request.setUrlnotif( AppPropertiesService.getProperty( URL_NOTIF ) );
88 request.setUrlredirect( AppPropertiesService.getProperty( URL_REDIRECT ) );
89 request.setExer( String.valueOf( calendar.get( Calendar.YEAR ) ) );
90 request.setObjet( AppPropertiesService.getProperty( TIPI_OBJET ) );
91
92 String saisie = AppPropertiesService.getProperty( PAYMENT_TYPE );
93
94 if ( W.equalsIgnoreCase( saisie ) )
95 {
96 request.setSaisie( PaymentType.PRODUCTION_WS.getStringValues( ) );
97 } else if ( X.equalsIgnoreCase( saisie ) )
98 {
99 request.setSaisie( PaymentType.ACTIVATION.getStringValues( ) );
100 } else
101 {
102 request.setSaisie( PaymentType.TEST.getStringValues( ) );
103 }
104
105 return request;
106 }
107
108 }