/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKPaygentStbInfo
*   ソースファイル名：JKKPaygentStbInfo.java
*   作成者          ：富士通
*   日付            ：2022年06月01日
*＜機能概要＞
*  オーソリスタブコマンド発行部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v58.00.00   2022/06/01	FJ)上村		ANK-3846-00-00_【クレカ】クリアパス→ペイジェント移行
*
**********************************************************************/
package eo.ejb.common;

import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

/**
 * ペイジェントスタブ利用処理部品クラスです。
 * @author 富士通
 */
public abstract class JKKPaygentStbInfo
{
	/** 電文種別判定用項目（カード情報設定電文） */
	public static final String TELEGRAM_KIND_025 = "025";

	/** 電文種別判定用項目（カード決済オーソリ電文） */
	public static final String TELEGRAM_KIND_020 = "020";
	
	/** 電文種別判定用項目（カード決済オーソリキャンセル電文） */
	public static final String TELEGRAM_KIND_021 = "021";
	
	/** オーソリエラー契機：1(預かりオーソリ) */
	public static final String ERR_OPP_KBN_1 = "1";
	
	/** オーソリエラー契機：2(有効性チェック) */
	public static final String ERR_OPP_KBN_2 = "2";
	
	/** オーソリエラー契機：3(実額オーソリ) */
	public static final String ERR_OPP_KBN_3 = "3";
	
	/** オーソリエラー契機：4(オーソリキャンセル) */
	public static final String ERR_OPP_KBN_4 = "4";
	
	/** 電文種別 */
	public static final String PY_TELEGRAM_KIND = "py_telegram_kind";
	
	/** レスポンス詳細 */
	public static final String RESPONSE_DETAIL = "response_detail";
	
	/** エラー契機区分(テーブル取得項目) */
	public static final String TB_ERR_OPP_KBN = "ERR_OPP_KBN";
	
	/** トークン(テーブル取得項目) */
	public static final String TB_TOKEN = "TOKEN";
	
	/** 顧客ID(テーブル取得項目) */
	public static final String TB_CUSTOMER_ID = "CUSTOMER_ID";
	
	/** 決済ID(テーブル取得項目) */
	public static final String TB_PAYMENT_ID = "PAYMENT_ID";
	
	/** レスポンスコード(テーブル取得項目) */
	public static final String TB_RESPONSE_CODE = "RESPONSE_CD";
	
	/** レスポンス詳細(テーブル取得項目) */
	public static final String TB_RESPONSE_DETAIL = "RESPONSE_DETAIL";
	
	/** マスクされたカード番号(テーブル取得項目) */
	public static final String TB_MASKED_CARD_NO = "MASKED_CARD_NO";
	
	/** 取扱カード会社コード(テーブル取得項目) */
	public static final String TB_ACQ_ID = "ACQ_ID";
	
	/** デビット・プリペイド判定結果(テーブル取得項目) */
	public static final String TB_DEBIT_PREPAID_TYPE = "DEBIT_PREPAID_TYPE";
	
	/** イシュア区分(テーブル取得項目) */
	public static final String TB_ISSUR_CLASS = "ISSUR_CLASS";
	
	/** カードブランド(テーブル取得項目) */
	public static final String TB_CARD_BRAND = "CARD_BRAND";
	
	/**
	 * インスタンス生成
	 * 
	 * @return インスタンス
	 */
	public static JKKPaygentStbInfo getInstance()
	{
		return JKKCtrlPaygentAuthInfoStb.getInstance();
	}
    
	/**
	 * ペイジェントスタブ連携用
	 * 
	 * @param inCBSMsg
	 * @param inContext
	 * @param telegram_kind
	 * @throws Exception
	 */
	public abstract HashMap<String,String> ctrlPaygentAuthStb(CAANMsg inCBSMsg, AgentDispatchContext inContext, String telegram_kind) throws Exception;
	
	public abstract void setConnection(Connection con);
}
