Blame view

src/th/co/ais/ssbsrfc/substate/SubWaitChargeRequest.java 13.5 KB
1048b156   Suraputt Suntimitr   Template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package th.co.ais.ssbsrfc.substate;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Random;

import ec02.af.abstracts.AbstractAF;
import ec02.af.data.EquinoxRawData;
import ec02.utils.AppLog;
import th.co.ais.ssbsrfc.config.Constant;
import th.co.ais.ssbsrfc.config.StateConfig;
import th.co.ais.ssbsrfc.instance.AccessSecurity;
import th.co.ais.ssbsrfc.instance.AdjustmentInfo;
import th.co.ais.ssbsrfc.instance.AdjustmentObj;
import th.co.ais.ssbsrfc.instance.AdjustmentRequest;
import th.co.ais.ssbsrfc.instance.AdjustmentRequestIns;
import th.co.ais.ssbsrfc.instance.ChargeResponseIns;
import th.co.ais.ssbsrfc.instance.CheckRequest;
import th.co.ais.ssbsrfc.instance.EC02Instance;
import th.co.ais.ssbsrfc.instance.EQXRawInstance;
import th.co.ais.ssbsrfc.instance.OwnershipInfo;
import th.co.ais.ssbsrfc.instance.RequestHeader;
import th.co.ais.ssbsrfc.instance.Stat;
import th.co.ais.ssbsrfc.instance.SubAccessCode;
import th.co.ais.ssbsrfc.utils.EqxStringUtils;
import th.co.ais.ssbsrfc.utils.Global;

public class SubWaitChargeRequest extends WaitSubState {

	AdjustmentRequestIns adjustmentRequest = new AdjustmentRequestIns();
	HashMap<String, String> map = new HashMap<String, String>();
	private ChargeResponseIns chargeResponseIns = new ChargeResponseIns();

	public void configSubstate(EC02Instance ec02Instance, EquinoxRawData equinoxRawData) {
		this._state = StateConfig.SSTATE_W_CHARGEREQUEST;
		this._eventType = StateConfig.Incoming_ChargeRequest_Request;
		this._stateType = Constant.SUBSTATE_TYPE_W_REQUEST;
		if (equinoxRawData != null) {
			ec02Instance.getAFInstance().setOrig(equinoxRawData.getOrig());
			ec02Instance.getAFInstance().setInvoke(equinoxRawData.getInvoke());
			ec02Instance.getAFInstance().setInitialInvoke(equinoxRawData.getInvoke());
		}
		ec02Instance.getAFInstance().setFlow(Constant.FLOW_CHARGE_REQUEST);
	}

	public Object getMessage(EC02Instance ec02Instance, EquinoxRawData equinoxRawData) {
		String value = EqxStringUtils.getMessage(equinoxRawData, ec02Instance);
		AppLog.d("## PARAMETERS : " + value);
		String page = equinoxRawData.getRawDataAttribute("val");
		CheckRequest checkRequest = new CheckRequest();
		checkRequest.setDn(page);
		String[] dnList = checkRequest.getDn().split("&", -1);
		page = dnList[0].substring("ssid=".length());
		int i = 0;
		while (i < dnList.length) {

			map.put(dnList[i].substring(0, dnList[i].indexOf("=")), dnList[i].substring(dnList[i].indexOf("=") + 1));
			i++;
		}

		DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		Calendar cal = Calendar.getInstance();
		Random random = new Random();
		String rand = "000";
		int x = random.nextInt(1000);
		rand += x;
		rand = rand.substring(rand.length() - 3);
		ec02Instance.getAFInstance().setRand(rand);
		String ChargeId = dateFormat.format(cal.getTime()) + rand;
		ec02Instance.getAFInstance().setChargeId(ChargeId);
		ec02Instance.getAFInstance().setDn(map);
		this.type = Constant.TYPE_SUCCESS;

		AppLog.d("########Random : " + rand);
		AppLog.d("########MessageSeq : " + ChargeId);

		RequestHeader requestHeader = new RequestHeader();

		requestHeader.setVersion(
				ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("AdjustmentRequestVersion").get(0));
		AppLog.d("AdjustmentRequestVersion :" + Global.getEC02WarmConfig("AdjustmentRequestVersion"));
		requestHeader.setBusinessCode(
				ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BusinessCode_Deduct").get(0));
		AppLog.d("BusinessCode_Deduct :" + Global.getEC02WarmConfig("BusinessCode_Deduct"));
		requestHeader.setMessageSeq(ChargeId);
		OwnershipInfo ownershipInfo = new OwnershipInfo();
		if (null == ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BEID")) {
			ownershipInfo.setBEID("101");
			AppLog.d("BEID :" + Global.getEC02WarmConfig("BEID"));
		} else {
			ownershipInfo.setBEID(ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BEID").get(0));
			AppLog.d("BEID :" + Global.getEC02WarmConfig("BEID"));
		}
		ownershipInfo.setBRID(ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("BRID").get(0));
		AppLog.d("BRID :" + Global.getEC02WarmConfig("BRID"));
		requestHeader.setOwnershipInfo(ownershipInfo);
		AccessSecurity accessSecurity = new AccessSecurity();
		accessSecurity.setLoginSystemCode(
				ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("LoginSystemCode").get(0));
		AppLog.d("LoginSystemCode :" + Global.getEC02WarmConfig("LoginSystemCode"));
		accessSecurity.setPassword(ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("Password").get(0));
		AppLog.d("Password :" + Global.getEC02WarmConfig("Password"));
		requestHeader.setAccessSecurity(accessSecurity);
		if (null == ec02Instance.getAbstractAF().getUtils().getHmWarmConfig().get("AccessMode")) {
			requestHeader.setAccessMode("3");
			AppLog.d("AccessMode :" + Global.getEC02WarmConfig("AccessMode"));
		} else {