8 Commits

Author SHA1 Message Date
d5260d784e Fix CityInfo struct tag 2023-09-15 17:18:10 +08:00
3fb4f8ccc4 Update json struct 2023-09-15 16:09:23 +08:00
ff9287b826 Modify: 因應API會回傳文件沒有的WriteoffResponse.message 2023-09-12 23:20:51 +08:00
10c8754732 Modify: 所有function的return值改為http post的response 2023-09-12 22:39:13 +08:00
cd8bbde1af 修改 API 上傳的回傳值 2023-08-27 23:27:10 +08:00
36885d23ce 修正 CaseSvcRecord 拼錯 2023-08-27 23:08:13 +08:00
f381593fd7 修正 CaseSvcRecord 命名 2023-08-27 23:05:46 +08:00
57d0863745 Modify comment 2023-08-27 22:52:58 +08:00
2 changed files with 53 additions and 106 deletions

View File

@@ -17,6 +17,12 @@ type WriteoffResponse struct {
Result string `json:"result"` // 回覆明細
Checksum string `json:"checksum"` // 校驗碼
ReturnSeq string `json:"rtnSeq"` // 回覆序號
Message string `json:"message"` // 回覆訊息
}
type FeeAuditInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
TransNo string `json:"trans_no"` // 交易序號
}
// FeeApplyUpload 是 FeeApply 的傳送資料
@@ -26,16 +32,15 @@ type FeeApplyUpload struct {
// ApplyInfo 是 FeeApplyUpload 的單筆資料
type ApplyInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
TransNo string `json:"trans_no"` // 交易序號
FeeAuditInfo
Records int `json:"records"` // 服務記錄筆數
Amount int `json:"amount"` // 服務記錄金額
Cases int `json:"cases"` // 申請個案數
CaseSvceRecords []CaseSvceRecord `json:"case_svc_records"` // 個案服務記錄
CaseSvcRecords []CaseSvcRecord `json:"case_svc_records"` // 個案服務記錄
}
// CaseSvcRecord 是個案服務記錄
type CaseSvceRecord struct {
type CaseSvcRecord struct {
ObjID string `json:"objid"` // 識別碼
IDN string `json:"idn,omitempty"` // 個案身份證字號
SvcAt string `json:"svc_dt,omitempty"` // 服務日期
@@ -97,10 +102,9 @@ type ObjDelUpload struct {
// SvcDelInfo 是刪除資料
type SvcDelInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
TransNo string `json:"trans_no"` // 交易序號
FeeAuditInfo
Records int `json:"records"` // 服務記錄筆數
CaseSvceRecords []CaseSvceRecord `json:"case_svc_records"` // 個案服務記錄
CaseSvcRecords []CaseSvcRecord `json:"case_svc_records"` // 個案服務記錄
}
// AppCompletionNoticeUpload 是 AppCompletionNotice 的傳送資料
@@ -110,13 +114,11 @@ type AppCompletionNoticeUpload struct {
// FinishInfo 是申報確認資料
type FinishInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
TransNo string `json:"trans_no"` // 交易序號
CityInfos []CityInfo `json:"city_info"` // 縣市案號資訊
FeeAuditInfo
FinishCityInfos []FinishCityInfo `json:"city_info"` // 縣市案號資訊
}
// CityInfo 是縣市案號資訊
type CityInfo struct {
type FinishCityInfo struct {
CityCode string `json:"city_cd"` // 縣市代碼
CaseNoInfos []CaseNoInfo `json:"case_no_info"` // 案件資訊
}
@@ -124,6 +126,16 @@ type CityInfo struct {
// CaseNoInfo 是案件資訊
type CaseNoInfo struct {
CaseNo string `json:"case_no"` // 案件編號
}
// CityInfo 是縣市案號資訊
type CityInfo struct {
CityCode string `json:"city_cd"` // 縣市代碼
CaseInfos []CaseInfo `json:"case_infos"` // 案件資訊
}
type CaseInfo struct {
CaseNo string `json:"case_no"` // 案件編號
Status string `json:"status,omitempty"` // 核銷狀況
DocVer string `json:"doc_ver,omitempty"` // 總表版次
AccNum string `json:"acc_num,omitempty"` // 簽證編號
@@ -136,8 +148,7 @@ type AppResultQueryUpload struct {
// AppResultQueryInfo 是查詢輸入資訊
type AppResultQueryInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
TransNo string `json:"trans_no"` // 交易序號
FeeAuditInfo
QueryType string `json:"query_type"` // 查詢類別
CityCode string `json:"city_cd,omitempty"` // 縣市代碼
CaseNo string `json:"case_no,omitempty"` // 核銷案號
@@ -228,10 +239,9 @@ type AppCancelUpload struct {
// CancelInfo 是服務單位撤回資料
type CancelInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
FeeAuditInfo
CityCode string `json:"city_cd,omitempty"` // 縣市代碼
CaseNo string `json:"case_no,omitempty"` // 核銷案號
TransNo string `json:"trans_no"` // 交易序號
}
// CancelResultResponseUpload 是 CancelResultResponse 的傳送資料
@@ -241,7 +251,6 @@ type CancelResultResponseUpload struct {
// CancelResultResponseInfo 是取消交易單結果回報資料
type CancelResultResponseInfo struct {
WriteoffYYYYMM string `json:"writeoff_yyyymm"` // 支審年月
TransNo string `json:"trans_no"` // 交易序號
FeeAuditInfo
CancelTransNo string `json:"cancel_trans_no"` // 所要取消結果回報之交易序號
}

View File

@@ -26,6 +26,7 @@ type FeeAuditUtils struct {
Cert []byte
}
// NewFeeAuditUtils 用來産生 FeeAuditUtils
func NewFeeAuditUtils(unitNo, sourceSystem, hash, url, certPath string) (feeAuditUtils FeeAuditUtils, err error) {
stringutils := golanghelper.StringUtils{}
if stringutils.IsEmpty(unitNo) || stringutils.IsEmpty(sourceSystem) || stringutils.IsEmpty(hash) ||
@@ -77,7 +78,7 @@ func (f *FeeAuditUtils) getChecksum(apData string) string {
}
// httpsPost 用來上傳 WriteoffResponse
func (f *FeeAuditUtils) httpsPost(funcName string, writeoffRequest WriteoffRequest) (writeoffResponse WriteoffResponse, err error) {
func (f *FeeAuditUtils) httpsPost(funcName string, writeoffRequest WriteoffRequest) (responseData []byte, err error) {
data, err := json.Marshal(&writeoffRequest)
if err != nil {
return
@@ -107,17 +108,10 @@ func (f *FeeAuditUtils) httpsPost(funcName string, writeoffRequest WriteoffReque
}
defer response.Body.Close()
responseData, err := io.ReadAll(response.Body)
if err != nil {
return
}
err = json.Unmarshal(responseData, &writeoffResponse)
return
return io.ReadAll(response.Body)
}
// CreateRequest 用來産生 WirteoffRequest
// NewRequest 用來産生 WirteoffRequest
func (f *FeeAuditUtils) NewRequest(data []byte) WriteoffRequest {
apData := base64.StdEncoding.EncodeToString(data)
@@ -133,87 +127,31 @@ func (f *FeeAuditUtils) NewRequest(data []byte) WriteoffRequest {
}
// SendFeeApply 傳送服務記錄申報
func (f *FeeAuditUtils) SendFeeApply(writeoffRequest WriteoffRequest) (feeApplyResult FeeApplyResult, err error) {
//uploadData, err := json.Marshal(&feeApply)
//if err != nil {
// return
//}
writeoffResponse, err := f.httpsPost("FeeApply", writeoffRequest)
if err != nil {
return
}
resultData, err := base64.StdEncoding.DecodeString(writeoffResponse.Result)
err = json.Unmarshal(resultData, &feeApplyResult)
return
func (f *FeeAuditUtils) SendFeeApply(writeoffRequest WriteoffRequest) (responseData []byte, err error) {
return f.httpsPost("FeeApply", writeoffRequest)
}
// SendObjDel 傳送服務紀錄刪除
func (f *FeeAuditUtils) SendObjDel(writeoffRequest WriteoffRequest) (err error) {
//uploadData, err := json.Marshal(&objDel)
//if err != nil {
// return
//}
_, err = f.httpsPost("ObjDel", writeoffRequest)
return
func (f *FeeAuditUtils) SendObjDel(writeoffRequest WriteoffRequest) (responseData []byte, err error) {
return f.httpsPost("ObjDel", writeoffRequest)
}
// SendAppCompletionNotice 傳送申報確認通知
func (f *FeeAuditUtils) SendAppCompletionNotice(writeoffRequest WriteoffRequest) (err error) {
//uploadData, err := json.Marshal(&appCompletionNotice)
//if err != nil {
// return
//}
_, err = f.httpsPost("appCompletionNotice", writeoffRequest)
return
func (f *FeeAuditUtils) SendAppCompletionNotice(writeoffRequest WriteoffRequest) (responseData []byte, err error) {
return f.httpsPost("appCompletionNotice", writeoffRequest)
}
// SendAppResultQuery 傳送「服務單位各分案審核狀態查詢」或「分案審核明細查詢」
func (f *FeeAuditUtils) SendAppResultQuery(writeoffRequest WriteoffRequest) (appResultQueryResult AppResultQueryResult, err error) {
//uploadData, err := json.Marshal(&appResultQuery)
//if err != nil {
// return
//}
writeoffResponse, err := f.httpsPost("appResultQuery", writeoffRequest)
if err != nil {
return
}
resultData, err := base64.StdEncoding.DecodeString(writeoffResponse.Result)
err = json.Unmarshal(resultData, &appResultQueryResult)
return
func (f *FeeAuditUtils) SendAppResultQuery(writeoffRequest WriteoffRequest) (responseData []byte, err error) {
return f.httpsPost("appResultQuery", writeoffRequest)
}
// SendAppCancel 傳送撤回服務記錄
func (f *FeeAuditUtils) SendAppCancel(writeoffRequest WriteoffRequest) (err error) {
//uploadData, err := json.Marshal(&appCancel)
//if err != nil {
// return
//}
_, err = f.httpsPost("appCancel", writeoffRequest)
return
func (f *FeeAuditUtils) SendAppCancel(writeoffRequest WriteoffRequest) (responseData []byte, err error) {
return f.httpsPost("appCancel", writeoffRequest)
}
// SendCancelResultResponse 傳送取消交易單處理結果回報
func (f *FeeAuditUtils) SendCancelResultResponse(writeoffRequest WriteoffRequest) (err error) {
//uploadData, err := json.Marshal(&cancelResultResponse)
//if err != nil {
// return
//}
_, err = f.httpsPost("CancelResultResponse", writeoffRequest)
return
func (f *FeeAuditUtils) SendCancelResultResponse(writeoffRequest WriteoffRequest) (responseData []byte, err error) {
return f.httpsPost("CancelResultResponse", writeoffRequest)
}