Subversion Repositories SmartDukaan

Rev

Rev 20112 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 20112 Rev 20278
Line 1... Line 1...
1
package in.shop2020.serving.utils;
1
package in.shop2020.serving.utils;
2
 
2
 
-
 
3
import java.util.Collections;
-
 
4
import java.util.HashMap;
-
 
5
import java.util.List;
-
 
6
import java.util.Map;
-
 
7
 
-
 
8
import org.apache.log4j.Logger;
-
 
9
import org.apache.thrift.TException;
-
 
10
import org.apache.thrift.transport.TTransportException;
-
 
11
 
-
 
12
import in.shop2020.model.v1.order.EmiScheme;
-
 
13
import in.shop2020.model.v1.order.TransactionService.Client;
-
 
14
import in.shop2020.serving.controllers.ProceedToPayController;
-
 
15
import in.shop2020.serving.services.IPaymentService;
-
 
16
import in.shop2020.thrift.clients.TransactionClient;
-
 
17
 
-
 
18
/**
-
 
19
 * class  that provides utility and 
-
 
20
 * contants related to payment
-
 
21
 */
3
public class PaymentUtils {
22
public class PaymentUtils {
-
 
23
	
-
 
24
	private static List<EmiScheme> emiSchemes;
-
 
25
	private static Logger logger = Logger.getLogger(PaymentUtils.class);
-
 
26
	
-
 
27
	public static enum PAYMENT_TYPE{
-
 
28
		NB,CC,DC,WAL,COD,CAS,EMI
-
 
29
	} 
-
 
30
	
-
 
31
	
-
 
32
    @SuppressWarnings("serial")
-
 
33
	public static final Map<String, String> PAYU_NET_BANKING_CODES_MAP = Collections.unmodifiableMap(
-
 
34
    		new HashMap<String, String>(){
-
 
35
	    		{
-
 
36
	    			put("1004","AXIB");
-
 
37
	    			put("1135","CRPB");
-
 
38
	    			put("1029","FEDB");
-
 
39
	    			put("1007","HDFB");
-
 
40
	    			put("1016","ICIB");
-
 
41
	    			put("1032","SBIB");
-
 
42
	    			put("1034","SBHB");
-
 
43
	    			put("1038","SBMB");
-
 
44
	    			put("1035","SBMB");
-
 
45
	    			put("1039","SBTB");
-
 
46
	    			put("1127","CITNB");
-
 
47
	    			put("1033","SBBJB");
-
 
48
    				//Oriental Bank of Commerce
-
 
49
	    			//put("1154","");
-
 
50
	    			put("1147","CBIB");
-
 
51
	    			put("1146","YESB");
-
 
52
	    			put("1214","BOIB");
-
 
53
	    			put("1215","CUBB");
-
 
54
	    			put("1212","UNIB");
-
 
55
	    			put("1224","CABB");
-
 
56
	    			put("1210","INGB");
-
 
57
	    			put("1148","162B");
-
 
58
	    			put("1273","DLSB");
-
 
59
	    			put("1015","JAKB");
-
 
60
	    			put("1133","KRKB");
-
 
61
	    			put("1143","INDB");
-
 
62
	    			put("1216","UBIB");
-
 
63
	    			put("1213","INOB");
-
 
64
	    			put("1229","BOMB");
-
 
65
	    			put("1601","CSBN");
-
 
66
	    			put("1602","DCBB");
-
 
67
	    			put("1603","DSHB");
-
 
68
	    			put("1604","IDBB");
-
 
69
	    			put("1605","INIB");
-
 
70
	    			put("1606","KRVB");
-
 
71
	    			put("1607","PNBB");
-
 
72
	    			put("1608","SOIB");
-
 
73
	    			put("1609","SRSWT");
-
 
74
	    			put("1610","VJYB");
-
 
75
	    			put("1611","DCBCORP");
-
 
76
	    			put("1612","UBIBC");
-
 
77
	    			put("1613","CPNB");
-
 
78
	    		}
-
 
79
    		});
-
 
80
    
-
 
81
    @SuppressWarnings("serial")
-
 
82
	public static final Map<String, String> PAYU_CREDIT_CARD_CODES_MAP = Collections.unmodifiableMap(
-
 
83
    		new HashMap<String, String>(){
-
 
84
	    		{
-
 
85
	    			put("2008","CC");
-
 
86
	    			put("2017","CC");
-
 
87
	    			put("2028","AMEX");
-
 
88
	    			put("1010","DINR");
-
 
89
	    		}
-
 
90
    		});
-
 
91
 
-
 
92
    @SuppressWarnings("serial")
-
 
93
	public static final Map<String, String> PAYU_DEBIT_CARD_CODES_MAP = Collections.unmodifiableMap(
-
 
94
    		new HashMap<String, String>(){
-
 
95
	    		{
-
 
96
	    			put("2000","VISA");
-
 
97
	    			put("2018","MAST");
-
 
98
	    			put("1009","MAST");
-
 
99
	    			put("2038","RUPAY");
-
 
100
	    			put("SMAE","SMAE");
-
 
101
	    			put("1164","MAES");
-
 
102
	    		}
-
 
103
    		});
-
 
104
    public static final String PAYU_CC = "4001";
-
 
105
    
-
 
106
    public static String getPayubankCode(String paymentOptions){
-
 
107
    	String payCode = "";
-
 
108
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
-
 
109
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),"");
-
 
110
			return PAYU_CREDIT_CARD_CODES_MAP.get(payCode);
-
 
111
		}
-
 
112
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
-
 
113
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.DC.toString(),"");
-
 
114
			return PAYU_DEBIT_CARD_CODES_MAP.get(payCode);
-
 
115
		}
-
 
116
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
-
 
117
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.NB.toString(),"");
-
 
118
			return PAYU_NET_BANKING_CODES_MAP.get(payCode);
-
 
119
		}
-
 
120
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
-
 
121
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.NB.toString(),"");
-
 
122
    		if(payCode.equals(PAYU_CC));
-
 
123
    			return "payuw";
-
 
124
		}
-
 
125
    	
-
 
126
    	return "";
-
 
127
    }
-
 
128
    
-
 
129
    public static String getPayugatewayCode(String paymentOptions){
-
 
130
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
-
 
131
			return PaymentUtils.PAYMENT_TYPE.CC.toString();
-
 
132
		}
-
 
133
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
-
 
134
			return PaymentUtils.PAYMENT_TYPE.DC.toString();
-
 
135
		}
-
 
136
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
-
 
137
			return PaymentUtils.PAYMENT_TYPE.NB.toString();
-
 
138
		}
-
 
139
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
-
 
140
    			return "Wallet";
-
 
141
		}
-
 
142
    	
-
 
143
    	return "";
-
 
144
    }
-
 
145
    
-
 
146
	public static void populateEmiSchemes() {
-
 
147
		try {
-
 
148
			Client tClient = new TransactionClient().getClient();
-
 
149
			emiSchemes = tClient.getAvailableEmiSchemes();
-
 
150
		} catch (TTransportException e) {
-
 
151
			logger.error("Error while getting EMI schemes: ", e);
-
 
152
		} catch (TException e) {
-
 
153
			logger.error("Error while getting EMI schemes: ", e);
-
 
154
		}
-
 
155
	}
-
 
156
 
-
 
157
	public static List<EmiScheme> getEmiSchemes() {
-
 
158
		if (emiSchemes != null) {
-
 
159
			return emiSchemes;
-
 
160
		} else {
-
 
161
			populateEmiSchemes();
-
 
162
			return emiSchemes;
-
 
163
		}
-
 
164
	}
-
 
165
	
-
 
166
	public static long getGatewayId(String paymentOptions) {
-
 
167
		String payCode = "";
-
 
168
		// checking for emis
-
 
169
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.EMI.toString())) {
-
 
170
			payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.EMI.toString(), "");
-
 
171
			for (EmiScheme scheme : getEmiSchemes()) {
-
 
172
				if (scheme.getId() == Long.parseLong(payCode)) {
-
 
173
					return scheme.getGatewayId();
-
 
174
				}
-
 
175
			}
-
 
176
		}
-
 
177
 
-
 
178
		// As of on august 2 2016 all the debit,credit and netbanking payments
-
 
179
		// have to be redirected to payu.
-
 
180
		// so returning 13 as payment gateway
-
 
181
		// this can be re-written for other business logic
-
 
182
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
-
 
183
			// payCode =
-
 
184
			// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
-
 
185
			// "");
-
 
186
			return 5;
-
 
187
 
-
 
188
		}
-
 
189
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
-
 
190
			// payCode =
-
 
191
			// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
-
 
192
			// "");
-
 
193
			return 5;
-
 
194
		}
-
 
195
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
-
 
196
			// payCode =
-
 
197
			// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
-
 
198
			// "");
-
 
199
			return 5;
-
 
200
		}
-
 
201
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
-
 
202
			payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.WAL.toString(), "");
-
 
203
			if (PaymentUtils.PAYU_CC.equals(payCode))
-
 
204
				return 5;
-
 
205
			return 5;
-
 
206
		}
-
 
207
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CAS.toString())) {
-
 
208
			return 18;
-
 
209
		}
-
 
210
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.COD.toString())) {
-
 
211
			payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.COD.toString(), "");
-
 
212
			if (payCode.equals(IPaymentService.COD)) {
-
 
213
				return 4;
-
 
214
			}
-
 
215
			if (payCode.equals(IPaymentService.COUPON)) {
-
 
216
				return 17;
-
 
217
			}
-
 
218
		}
-
 
219
 
-
 
220
		return 0;
-
 
221
	}
4
 
222
 
-
 
223
	
5
}
224
}