Subversion Repositories SmartDukaan

Rev

Rev 22528 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.payment;

import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

import in.shop2020.model.v1.order.EmiScheme;
import in.shop2020.payments.Attribute;
import in.shop2020.payments.Payment;

public class PaymentUtils {
        
        private static List<EmiScheme> emiSchemes;
        private static final Logger logger=LogManager.getLogger(PaymentUtils.class);
        
        public static enum PAYMENT_TYPE{
                NB("Net Banking"),
                CC("Credit Card"),
                DC("Debit Card"),
                WAL("Wallet"),
                COD("Cash on Delivery"),
                CAS("Cash Card"),
                EMI("EMI");
                
                PAYMENT_TYPE(String value){
                        this.value = value;
                }
                
                private final String value;
            public String value() { return value; }
        }
        
        public static PAYMENT_TYPE getPaymentType(Payment payment){
                List<Attribute> attributes = payment.getAttributes();
                for(Attribute attribute : attributes) {
                        if(attribute.getName().equals(IPaymentService.PAYMENT_TYPE)) {
                                return PAYMENT_TYPE.valueOf(attribute.getValue());
                        }
                }
                return null;
        }
        
        
    @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");
                        }
                });
    //Payu Money
    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 long getGatewayId(String paymentOptions) {
                String payCode = "";

                // 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 logic
                if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CC.toString())) {
                        return 19;

                }
                if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.DC.toString())) {
                        // payCode =
                        // paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
                        // "");
                        return 19;
                }
                if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.NB.toString())) {
                        // payCode =
                        // paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.CC.toString(),
                        // "");
                        return 19;
                }
                if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.WAL.toString())) {
                        payCode = paymentOptions.replace(PaymentUtils.PAYMENT_TYPE.WAL.toString(), "");
                        if (PaymentUtils.PAYU_CC.equals(payCode))
                                return 19;
                        return 19;
                }
                if (paymentOptions.startsWith(PaymentUtils.PAYMENT_TYPE.CAS.toString())) {
                        return 19;
                }
                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;
        }

        
}