Subversion Repositories SmartDukaan

Rev

Rev 1999 | Rev 2134 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1999 Rev 2118
Line 1... Line 1...
1
package in.shop2020.serving.controllers;
1
package in.shop2020.serving.controllers;
2
 
2
 
-
 
3
import java.io.BufferedReader;
3
import java.io.ByteArrayInputStream;
4
import java.io.ByteArrayInputStream;
4
import java.io.DataInputStream;
-
 
5
import java.io.IOException;
5
import java.io.IOException;
-
 
6
import java.io.InputStreamReader;
6
import java.util.ArrayList;
7
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.List;
8
import java.util.Map;
9
import java.util.Map;
9
import java.util.StringTokenizer;
10
import java.util.StringTokenizer;
10
import java.util.TreeMap;
11
import java.util.TreeMap;
Line 27... Line 28...
27
 
28
 
28
import javax.servlet.http.HttpServletRequest;
29
import javax.servlet.http.HttpServletRequest;
29
 
30
 
30
import org.apache.commons.lang.StringUtils;
31
import org.apache.commons.lang.StringUtils;
31
import org.apache.log4j.Logger;
32
import org.apache.log4j.Logger;
32
import org.apache.struts2.interceptor.ServletRequestAware;
-
 
33
import org.apache.thrift.TException;
33
import org.apache.thrift.TException;
34
 
34
 
-
 
35
@SuppressWarnings("serial")
35
public class EbsPayResponseController implements ServletRequestAware{
36
public class EbsPayResponseController extends BaseController{
36
	
-
 
37
	private HttpServletRequest request;
-
 
38
	
37
	
39
	private static Logger log = Logger.getLogger(Class.class);
38
	private static Logger log = Logger.getLogger(Class.class);
40
	private static Logger dataLog = DataLogger.getLogger();
39
	private static Logger dataLog = DataLogger.getLogger();
41
	
40
	
42
	private static final String FLAG_KEY = "IsFlagged";
41
	private static final String FLAG_KEY = "IsFlagged";
Line 115... Line 114...
115
		} catch (TException e1) {
114
		} catch (TException e1) {
116
			log.error("Thrift exception. Check payment id "+ merchantPaymentId);
115
			log.error("Thrift exception. Check payment id "+ merchantPaymentId);
117
			e1.printStackTrace();
116
			e1.printStackTrace();
118
		}
117
		}
119
		
118
		
-
 
119
		if(payment.getStatus() != PaymentStatus.INIT){
-
 
120
			// We have already processed a response for this payment. Processing
-
 
121
			// it again may fail his orders. So, let's ask him to check his
-
 
122
			// account.
-
 
123
			return "maybe";
-
 
124
		}
-
 
125
		
120
		if(!validatePaymentParams(amount, payment)){
126
		if(!validatePaymentParams(amount, payment)){
-
 
127
			this.redirectUrl = errorUrl + "?paymentId=" + merchantPaymentId;
121
			return "index";
128
			return "index";
122
		}
129
		}
123
		
130
		
124
		if(gatewayTxnStatus.equals("0")){
131
		if(gatewayTxnStatus.equals("0")){
125
			//Update payment status as authorized
132
			//Update payment status as authorized
Line 213... Line 220...
213
	public String getId() {
220
	public String getId() {
214
		return id;
221
		return id;
215
	}
222
	}
216
 
223
 
217
	private boolean validatePaymentParams(double amount, Payment payment){
224
	private boolean validatePaymentParams(double amount, Payment payment){
218
		long merchantPaymentId = payment.getPaymentId();
-
 
219
		if(payment==null || payment.getAmount()!= amount){
225
		if(payment==null || payment.getAmount()!= amount){
220
			// We did not request this payment or the authorised amount is different.
226
			// We did not request this payment or the authorised amount is different.
221
			log.error("Checks and balance failed on returned data");
227
			log.error("Checks and balance failed on returned data");
222
			this.redirectUrl = errorUrl + "?paymentId=" + merchantPaymentId;
-
 
223
			return false;
228
			return false;
224
		}
229
		}
225
		return true;
230
		return true;
226
	}
231
	}
227
 
232
 
Line 238... Line 243...
238
		return result;
243
		return result;
239
	}
244
	}
240
 
245
 
241
	private String parseRecvdData(byte[] result) {
246
	private String parseRecvdData(byte[] result) {
242
		ByteArrayInputStream byteIn = new ByteArrayInputStream(result, 0, result.length);
247
		ByteArrayInputStream byteIn = new ByteArrayInputStream(result, 0, result.length);
243
		DataInputStream dataIn = new DataInputStream(byteIn);
248
		BufferedReader reader = new BufferedReader(new InputStreamReader(byteIn));
244
		String recvString1 = "";
249
		String recvString1 = "";
245
		String recvString = "";
250
		String recvString = "";
246
		try {
251
		try {
247
			recvString1 = dataIn.readLine();
252
			recvString1 = reader.readLine();
248
			int lineCount = 0;
253
			int lineCount = 0;
249
			while (recvString1 != null) {
254
			while (recvString1 != null) {
250
				lineCount++;
255
				lineCount++;
251
				if (lineCount > 705)
256
				if (lineCount > 705)
252
					break;
257
					break;
253
				recvString += recvString1 + "\n";
258
				recvString += recvString1 + "\n";
254
				recvString1 = dataIn.readLine();
259
				recvString1 = reader.readLine();
255
			}
260
			}
256
		} catch (IOException e) {
261
		} catch (IOException e) {
257
			e.printStackTrace();
262
			e.printStackTrace();
258
		}
263
		}
259
		recvString = recvString.replace("=&", "=--&");
264
		recvString = recvString.replace("=&", "=--&");