Subversion Repositories SmartDukaan

Rev

Rev 22528 | Details | Compare with Previous | Last modification | View Log | RSS feed

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