| Line 11... |
Line 11... |
| 11 |
import in.shop2020.payments.PaymentException;
|
11 |
import in.shop2020.payments.PaymentException;
|
| 12 |
import in.shop2020.payments.PaymentStatus;
|
12 |
import in.shop2020.payments.PaymentStatus;
|
| 13 |
import in.shop2020.thrift.clients.TransactionClient;
|
13 |
import in.shop2020.thrift.clients.TransactionClient;
|
| 14 |
import in.shop2020.thrift.clients.config.ConfigClient;
|
14 |
import in.shop2020.thrift.clients.config.ConfigClient;
|
| 15 |
|
15 |
|
| - |
|
16 |
import java.io.File;
|
| - |
|
17 |
import java.io.FileNotFoundException;
|
| - |
|
18 |
import java.io.FileOutputStream;
|
| - |
|
19 |
import java.io.IOException;
|
| - |
|
20 |
import java.io.InputStream;
|
| - |
|
21 |
import java.io.OutputStream;
|
| 16 |
import java.util.ArrayList;
|
22 |
import java.util.ArrayList;
|
| 17 |
import java.util.HashMap;
|
23 |
import java.util.HashMap;
|
| 18 |
import java.util.List;
|
24 |
import java.util.List;
|
| 19 |
import java.util.Map;
|
25 |
import java.util.Map;
|
| 20 |
import java.util.Random;
|
26 |
import java.util.Random;
|
| Line 29... |
Line 35... |
| 29 |
public class HdfcEmiPaymentHandler implements IPaymentHandler {
|
35 |
public class HdfcEmiPaymentHandler implements IPaymentHandler {
|
| 30 |
private static final int CAPTURE_STATUS_FOR_CONNECTION_ISSUE = -1;
|
36 |
private static final int CAPTURE_STATUS_FOR_CONNECTION_ISSUE = -1;
|
| 31 |
|
37 |
|
| 32 |
private static Logger log = Logger.getLogger(HdfcEmiPaymentHandler.class);
|
38 |
private static Logger log = Logger.getLogger(HdfcEmiPaymentHandler.class);
|
| 33 |
|
39 |
|
| 34 |
private static String resourceFilePath;
|
- |
|
| 35 |
private static String aliasName;
|
40 |
private static String aliasName;
|
| 36 |
private static String responseURL;
|
41 |
private static String responseURL;
|
| 37 |
private static String errorURL;
|
42 |
private static String errorURL;
|
| 38 |
private static final String regex = "[^a-zA-Z0-9\\s\\-\\@\\/\\.]";
|
43 |
private static final String regex = "[^a-zA-Z0-9\\s\\-\\@\\/\\.]";
|
| 39 |
private static final String replacement = " ";
|
44 |
private static final String replacement = " ";
|
| 40 |
private static final int MAX_UDF_LENGTH = 30;
|
45 |
private static final int MAX_UDF_LENGTH = 30;
|
| 41 |
private static final String currencyCode = "356";
|
46 |
private static final String currencyCode = "356";
|
| - |
|
47 |
private static String resourceDirPath = "/tmp/emi-resource";
|
| - |
|
48 |
private static final String resourceFileName = "resource.cgn";
|
| 42 |
|
49 |
|
| 43 |
private enum ActionType{
|
50 |
private enum ActionType{
|
| 44 |
PURCHASE("1"),
|
51 |
PURCHASE("1"),
|
| 45 |
AUTH ("4"),
|
52 |
AUTH ("4"),
|
| 46 |
CAPTURE("5");
|
53 |
CAPTURE("5");
|
| Line 57... |
Line 64... |
| 57 |
// TODO Auto-generated constructor stub
|
64 |
// TODO Auto-generated constructor stub
|
| 58 |
}
|
65 |
}
|
| 59 |
|
66 |
|
| 60 |
static{
|
67 |
static{
|
| 61 |
try {
|
68 |
try {
|
| 62 |
resourceFilePath = Class.class.getResource(ConfigClient.getClient().get("emi_payment_resource_file_path")).getPath();
|
69 |
InputStream inputStream = Class.class.getResourceAsStream(ConfigClient.getClient().get("emi_payment_resource_file_path") + resourceFileName);
|
| - |
|
70 |
File resourceDir = new File(resourceDirPath);
|
| - |
|
71 |
if(!resourceDir.exists()){
|
| - |
|
72 |
resourceDir.mkdir();
|
| - |
|
73 |
}
|
| - |
|
74 |
|
| - |
|
75 |
OutputStream outStream = new FileOutputStream(resourceDirPath + File.separator + resourceFileName);
|
| - |
|
76 |
byte buf[]=new byte[1024];
|
| - |
|
77 |
int len;
|
| - |
|
78 |
while((len=inputStream.read(buf))>0)
|
| - |
|
79 |
outStream.write(buf,0,len);
|
| - |
|
80 |
outStream.close();
|
| - |
|
81 |
inputStream.close();
|
| - |
|
82 |
|
| 63 |
aliasName = ConfigClient.getClient().get("emi_payment_alias_name");
|
83 |
aliasName = ConfigClient.getClient().get("emi_payment_alias_name");
|
| 64 |
responseURL = ConfigClient.getClient().get("emi_payment_response_url");
|
84 |
responseURL = ConfigClient.getClient().get("emi_payment_response_url");
|
| 65 |
errorURL = ConfigClient.getClient().get("emi_payment_error_url");
|
85 |
errorURL = ConfigClient.getClient().get("emi_payment_error_url");
|
| 66 |
} catch (ConfigException e) {
|
86 |
} catch (ConfigException e) {
|
| 67 |
log.error("Unable to get data from config server.");
|
87 |
log.error("Unable to get data from config server.");
|
| - |
|
88 |
} catch (FileNotFoundException e) {
|
| - |
|
89 |
// TODO Auto-generated catch block
|
| - |
|
90 |
e.printStackTrace();
|
| - |
|
91 |
} catch (IOException e) {
|
| - |
|
92 |
// TODO Auto-generated catch block
|
| - |
|
93 |
e.printStackTrace();
|
| 68 |
}
|
94 |
}
|
| 69 |
}
|
95 |
}
|
| 70 |
|
96 |
|
| 71 |
public static Map<String, String> capturePayment(Payment payment){
|
97 |
public static Map<String, String> capturePayment(Payment payment){
|
| 72 |
String amount = "" + payment.getAmount();
|
98 |
String amount = "" + payment.getAmount();
|
| 73 |
String gatewayPaymentId = payment.getGatewayPaymentId();
|
99 |
String gatewayPaymentId = payment.getGatewayPaymentId();
|
| Line 78... |
Line 104... |
| 78 |
resultMap.put(STATUS, Errors.CAPTURE_FAILURE.code);
|
104 |
resultMap.put(STATUS, Errors.CAPTURE_FAILURE.code);
|
| 79 |
resultMap.put(ERR_CODE, Errors.CAPTURE_FAILURE.code);
|
105 |
resultMap.put(ERR_CODE, Errors.CAPTURE_FAILURE.code);
|
| 80 |
resultMap.put(ERROR, Errors.CAPTURE_FAILURE.message);
|
106 |
resultMap.put(ERROR, Errors.CAPTURE_FAILURE.message);
|
| 81 |
|
107 |
|
| 82 |
e24TranPipe pipe = new e24TranPipe();
|
108 |
e24TranPipe pipe = new e24TranPipe();
|
| 83 |
pipe.setResourcePath(resourceFilePath);
|
109 |
pipe.setResourcePath(resourceDirPath);
|
| 84 |
pipe.setAlias(aliasName);
|
110 |
pipe.setAlias(aliasName);
|
| 85 |
pipe.setAction(ActionType.CAPTURE.value());
|
111 |
pipe.setAction(ActionType.CAPTURE.value());
|
| 86 |
pipe.setAmt(amount);
|
112 |
pipe.setAmt(amount);
|
| 87 |
pipe.setTrackId("" + payment.getId());
|
113 |
pipe.setTrackId("" + payment.getId());
|
| 88 |
pipe.setMember("SAHOLIC");
|
114 |
pipe.setMember("SAHOLIC");
|
| Line 278... |
Line 304... |
| 278 |
|
304 |
|
| 279 |
private static void initializePayment(e24PaymentPipe pipe, long merchantPaymentId, double amounta) throws ShoppingCartException, TException{
|
305 |
private static void initializePayment(e24PaymentPipe pipe, long merchantPaymentId, double amounta) throws ShoppingCartException, TException{
|
| 280 |
String amount = (new Double(amounta)).toString();
|
306 |
String amount = (new Double(amounta)).toString();
|
| 281 |
|
307 |
|
| 282 |
//Following is the code which initilize e24PaymentPipe with proper value
|
308 |
//Following is the code which initilize e24PaymentPipe with proper value
|
| 283 |
pipe.setResourcePath(resourceFilePath); //mandatory
|
309 |
pipe.setResourcePath(resourceDirPath); //mandatory
|
| 284 |
String as = pipe.getResourcePath();
|
310 |
String as = pipe.getResourcePath();
|
| 285 |
log.info("Resource= " +as);
|
311 |
log.info("Resource= " +as);
|
| 286 |
|
312 |
|
| 287 |
pipe.setAlias(aliasName); //mandatory
|
313 |
pipe.setAlias(aliasName); //mandatory
|
| 288 |
String ab=pipe.getAlias();
|
314 |
String ab=pipe.getAlias();
|