Subversion Repositories SmartDukaan

Rev

Rev 21734 | Rev 22507 | Go to most recent revision | 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
 
8
import org.slf4j.Logger;
9
import org.slf4j.LoggerFactory;
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;
18
	private static final Logger logger=LoggerFactory.getLogger(PaymentUtils.class);
19
 
20
	public static enum PAYMENT_TYPE{
21805 amit.gupta 21
		NB("Net Banking"),
22
		CC("Cash on Delivery"),
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
    		});
120
    public static final String PAYU_CC = "4001";
121
 
122
    public static String getPayubankCode(String paymentOptions){
123
    	String payCode = "";
124
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
125
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),"");
126
			return PAYU_CREDIT_CARD_CODES_MAP.get(payCode);
127
		}
128
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
129
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.DC.toString(),"");
130
			return PAYU_DEBIT_CARD_CODES_MAP.get(payCode);
131
		}
132
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
133
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.NB.toString(),"");
134
			return PAYU_NET_BANKING_CODES_MAP.get(payCode);
135
		}
136
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
137
    		payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.NB.toString(),"");
138
    		if(payCode.equals(PAYU_CC));
139
    			return "payuw";
140
		}
141
 
142
    	return "";
143
    }
144
 
145
    public static String getPayugatewayCode(String paymentOptions){
146
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
147
			return PaymentUtils.PAYMENT_TYPE.CC.toString();
148
		}
149
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
150
			return PaymentUtils.PAYMENT_TYPE.DC.toString();
151
		}
152
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
153
			return PaymentUtils.PAYMENT_TYPE.NB.toString();
154
		}
155
    	if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
156
    			return "Wallet";
157
		}
158
 
159
    	return "";
160
    }
161
 
162
	public static long getGatewayId(String paymentOptions) {
163
		String payCode = "";
164
 
165
		// As of on august 2 2016 all the debit,credit and netbanking payments
166
		// have to be redirected to payu.
167
		// so returning 13 as payment gateway
168
		// this can be re-written for other business logic
169
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
170
			return 5;
171
 
172
		}
173
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
174
			// payCode =
175
			// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
176
			// "");
177
			return 5;
178
		}
179
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
180
			// payCode =
181
			// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
182
			// "");
183
			return 5;
184
		}
185
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
186
			payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.WAL.toString(), "");
187
			if (PaymentUtils.PAYU_CC.equals(payCode))
188
				return 5;
189
			return 5;
190
		}
191
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CAS.toString())) {
192
			return 18;
193
		}
194
		if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.COD.toString())) {
195
			payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.COD.toString(), "");
196
			if (payCode.equals(IPaymentService.COD)) {
197
				return 4;
198
			}
199
			if (payCode.equals(IPaymentService.COUPON)) {
200
				return 17;
201
			}
202
		}
203
 
204
		return 0;
205
	}
206
 
207
 
208
}