Rev 20112 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.utils;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.log4j.Logger;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import in.shop2020.model.v1.order.EmiScheme;import in.shop2020.model.v1.order.TransactionService.Client;import in.shop2020.serving.controllers.ProceedToPayController;import in.shop2020.serving.services.IPaymentService;import in.shop2020.thrift.clients.TransactionClient;/*** class that provides utility and* contants related to payment*/public class PaymentUtils {private static List<EmiScheme> emiSchemes;private static Logger logger = Logger.getLogger(PaymentUtils.class);public static enum PAYMENT_TYPE{NB,CC,DC,WAL,COD,CAS,EMI}@SuppressWarnings("serial")public static final Map<String, String> PAYU_NET_BANKING_CODES_MAP = Collections.unmodifiableMap(new HashMap<String, String>(){{put("1004","AXIB");put("1135","CRPB");put("1029","FEDB");put("1007","HDFB");put("1016","ICIB");put("1032","SBIB");put("1034","SBHB");put("1038","SBMB");put("1035","SBMB");put("1039","SBTB");put("1127","CITNB");put("1033","SBBJB");//Oriental Bank of Commerce//put("1154","");put("1147","CBIB");put("1146","YESB");put("1214","BOIB");put("1215","CUBB");put("1212","UNIB");put("1224","CABB");put("1210","INGB");put("1148","162B");put("1273","DLSB");put("1015","JAKB");put("1133","KRKB");put("1143","INDB");put("1216","UBIB");put("1213","INOB");put("1229","BOMB");put("1601","CSBN");put("1602","DCBB");put("1603","DSHB");put("1604","IDBB");put("1605","INIB");put("1606","KRVB");put("1607","PNBB");put("1608","SOIB");put("1609","SRSWT");put("1610","VJYB");put("1611","DCBCORP");put("1612","UBIBC");put("1613","CPNB");}});@SuppressWarnings("serial")public static final Map<String, String> PAYU_CREDIT_CARD_CODES_MAP = Collections.unmodifiableMap(new HashMap<String, String>(){{put("2008","CC");put("2017","CC");put("2028","AMEX");put("1010","DINR");}});@SuppressWarnings("serial")public static final Map<String, String> PAYU_DEBIT_CARD_CODES_MAP = Collections.unmodifiableMap(new HashMap<String, String>(){{put("2000","VISA");put("2018","MAST");put("1009","MAST");put("2038","RUPAY");put("SMAE","SMAE");put("1164","MAES");}});public static final String PAYU_CC = "4001";public static String getPayubankCode(String paymentOptions){String payCode = "";if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),"");return PAYU_CREDIT_CARD_CODES_MAP.get(payCode);}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.DC.toString(),"");return PAYU_DEBIT_CARD_CODES_MAP.get(payCode);}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.NB.toString(),"");return PAYU_NET_BANKING_CODES_MAP.get(payCode);}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.NB.toString(),"");if(payCode.equals(PAYU_CC));return "payuw";}return "";}public static String getPayugatewayCode(String paymentOptions){if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {return PaymentUtils.PAYMENT_TYPE.CC.toString();}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {return PaymentUtils.PAYMENT_TYPE.DC.toString();}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {return PaymentUtils.PAYMENT_TYPE.NB.toString();}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {return "Wallet";}return "";}public static void populateEmiSchemes() {try {Client tClient = new TransactionClient().getClient();emiSchemes = tClient.getAvailableEmiSchemes();} catch (TTransportException e) {logger.error("Error while getting EMI schemes: ", e);} catch (TException e) {logger.error("Error while getting EMI schemes: ", e);}}public static List<EmiScheme> getEmiSchemes() {if (emiSchemes != null) {return emiSchemes;} else {populateEmiSchemes();return emiSchemes;}}public static long getGatewayId(String paymentOptions) {String payCode = "";// checking for emisif (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.EMI.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.EMI.toString(), "");for (EmiScheme scheme : getEmiSchemes()) {if (scheme.getId() == Long.parseLong(payCode)) {return scheme.getGatewayId();}}}// As of on august 2 2016 all the debit,credit and netbanking payments// have to be redirected to payu.// so returning 13 as payment gateway// this can be re-written for other business logicif (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {// payCode =// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),// "");return 5;}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {// payCode =// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),// "");return 5;}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {// payCode =// paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),// "");return 5;}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.WAL.toString(), "");if (PaymentUtils.PAYU_CC.equals(payCode))return 5;return 5;}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CAS.toString())) {return 18;}if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.COD.toString())) {payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.COD.toString(), "");if (payCode.equals(IPaymentService.COD)) {return 4;}if (payCode.equals(IPaymentService.COUPON)) {return 17;}}return 0;}}