Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

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