活期帳戶繳費過程 處理
QueryBill
public Tresp QueryBill<Treq, Tresp>(Treq req)
{
return (Tresp)new EBQRY0001().exec_EBQRY0001(req);
}
若是有QUERY失敗的狀況,RETURNCODE = 0062,顯示"系統忙碌中請稍後再試"
PayBill
public Tresp PayBill<Treq, Tresp>(Treq req)
{
return (Tresp)new EBPAY0001().exec_EBPAY0001(req);
}
exec_EBPAY0001(req)
- 將request組成xml格式的字串
- 新增電文LOG TABLE: MW_TX_LOG 欄位: MSG_ID, TX_SEQ, RQ, SEQ, FUNCTION_NAME
- 根據收到的RESPONSE,更新下行電文LOG, 欄位: RS, RS_TIME, 0360SEQ
- 解析收到的RESPONSE 的XML格式字串,若RETURNCODE不為NULL則將各個NODE中的欄位parsing出來
- 用 GetType()取得對應資料,
obj_EBPAY0001_Req.GetType().Name.Equals("Tel_PAY0001_Req")
- 根據繳款的種類,將所需的欄位資料寫入至要回傳結果的參數
if (tel_Req.FUNCTION_NAME.Equals("eBill-中華電信"))
{
tel_Resp.TXN_INFO.BILL_NO = nTXN_INFO[0]["BILL_NO"].InnerText.Trim();
tel_Resp.TXN_INFO.TELECOM_NO = nTXN_INFO[0]["TELECOM_NO"].InnerText.Trim();
tel_Resp.TXN_INFO.TXN_AMOUNT = nTXN_INFO[0]["TXN_AMOUNT"].InnerText.Trim();
tel_Resp.TXN_INFO.PAYMENT_DEADLINE = nTXN_INFO[0]["PAYMENT_DEADLINE"].InnerText.Trim();
tel_Resp.TXN_INFO.BILL_DATE = nTXN_INFO[0]["BILL_DATE"].InnerText.Trim();
}
當連線逾時,不知道有沒有處理完,需要再發一次電文來去確認交易是否有完成,電文EBRES0001
if (resp == null && this.NeedRePay)
//if (true)
{
this.SetPayParams(req);
EBRES0001_Req reqRes = this.GenResReq(req);
EBRES0001_Resp respRes = (new EBRES0001()).exec_EBRES0001(reqRes);
detail.IsSuccess = respRes != null && respRes.Body.RCODE == "0001" && respRes.Body.ORG_RCODE == "0001";
this.SetResult(detail, resp);
}