package service import ( "bytes" "encoding/json" "fmt" "gdyb/models" "github.com/astaxie/beego" "io/ioutil" "net/http" "strconv" "time" ) // 人员基本信息 func Gdyb4201A(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, struct4201A models.Struct4201A) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputDatas := make([]map[string]interface{}, 0) inputMessage["infno"] = "4201A" // 交易编码 for _, item := range struct4201A.Fopfd { inputData := make(map[string]interface{}) inputData["fixmedins_mdtrt_id"] = item.FixmedinsMdtrtID inputData["med_type"] = item.MedType inputData["bkkp_sn"] = item.BkkpSn inputData["fee_ocur_time"] = item.FeeOcurTime inputData["fixmedins_code"] = item.FixmedinsCode inputData["fixmedins_name"] = item.FixmedinsName inputData["cnt"] = item.Cnt inputData["pric"] = item.Pric inputData["det_item_fee_sumamt"] = item.DetItemFeeSumamt inputData["med_list_codg"] = item.MedListCodg inputData["medins_list_name"] = item.MedinsListName inputData["medins_list_code"] = item.MedinsListCodg inputData["med_chrgitm_type"] = item.MedChrgitmType inputData["prodname"] = item.Prodname inputData["bilg_dept_codg"] = item.BilgDeptCodg inputData["bilg_dept_name"] = item.BilgDeptName inputData["bilg_dr_code"] = item.BilgDrCode inputData["bilg_dr_name"] = item.BilgDrName inputData["acord_dept_codg"] = "" inputData["acord_dept_name"] = "" inputData["acord_dr_code"] = "" inputData["acord_dr_name"] = "" inputData["tcmdrug_used_way"] = "" inputData["etip_flag"] = "" inputData["etip_hosp_code"] = "" inputData["dscg_tkdrug_flag"] = "" inputData["sin_dos_dscr"] = "" inputData["used_frqu_dscr"] = "" inputData["prd_days"] = "" inputData["medc_way_dscr"] = "" inputData["memo"] = item.Memo inputData["fulamt_ownpay_amt"] = "" inputData["overlmt_selfpay"] = "" inputData["preselfpay_amt"] = "" inputData["inscp_amt"] = "" inputDatas = append(inputDatas, inputData) } input["fsiOwnpayPatnFeeListDDTO"] = inputDatas inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "4201A" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4202(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, struct4202 models.Struct4202) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4202" // 交易编码 feedetail := make([]map[string]interface{}, 0) inputData["fixmedins_mdtrt_id"] = struct4202.OwnPayPatnMdtrtD.FixmedinsMdtrtID inputData["fixmedins_code"] = struct4202.OwnPayPatnMdtrtD.FixmedinsCode inputData["fixmedins_name"] = struct4202.OwnPayPatnMdtrtD.FixmedinsName inputData["psn_cert_type"] = struct4202.OwnPayPatnMdtrtD.PsnCertType inputData["certno"] = struct4202.OwnPayPatnMdtrtD.Certno inputData["psn_name"] = struct4202.OwnPayPatnMdtrtD.PsnName inputData["gend"] = "" inputData["naty"] = "" inputData["brdy"] = "" inputData["age"] = "" inputData["coner_name"] = "" inputData["tel"] = "" inputData["addr"] = "" inputData["begntime"] = struct4202.OwnPayPatnMdtrtD.Begntime inputData["endtime"] = "" inputData["med_type"] = struct4202.OwnPayPatnMdtrtD.MedType inputData["ipt_otp_no"] = "" inputData["medrcdno"] = "" inputData["chfpdr_code"] = "" inputData["adm_dept_dscr"] = "" inputData["adm_dept_codg"] = "" inputData["adm_dept_name"] = "" inputData["adm_bed"] = "" inputData["wardarea_bed"] = "" inputData["traf_dept_flag"] = "" inputData["dscg_maindiag_code"] = "" inputData["dscg_dept_codg"] = "" inputData["dscg_dept_name"] = "" inputData["dscg_bed"] = "" inputData["dscg_way"] = "" inputData["main_cond_dscr"] = "" inputData["dise_no"] = "" inputData["dise_name"] = "" inputData["oprn_oprt_code"] = "" inputData["oprn_oprt_name"] = "" inputData["otp_diag_info"] = "" inputData["inhosp_stas"] = "0" inputData["die_date"] = "" inputData["ipt_days"] = "" inputData["fpsc_no"] = "" inputData["matn_type"] = "" inputData["birctrl_type"] = "" inputData["latechb_flag"] = "" inputData["geso_val"] = "" inputData["fetts"] = "" inputData["fetus_cnt"] = "" inputData["pret_flag"] = "" inputData["prey_time"] = "" inputData["birctrl_matn_date"] = "" inputData["cop_flag"] = "" inputData["vali_flag"] = "1" inputData["memo"] = "" inputData["opter_id"] = "" inputData["opter_name"] = "" inputData["opt_time"] = "" inputData["chfpdr_name"] = "" inputData["dscg_maindiag_name"] = "" inputData["medfee_sumamt"] = struct4202.OwnPayPatnMdtrtD.MedfeeSumamt inputData["elec_bill_code"] = "" inputData["elec_billno_code"] = "" inputData["exp_content"] = "" for index, item := range struct4202.ODiagListD { feedetailInfo := make(map[string]interface{}) feedetailInfo["inout_diag_type"] = item.InoutDiagType feedetailInfo["diag_type"] = item.DiagType // 就诊 ID(来自2201接口返回) feedetailInfo["maindiag_flag"] = item.MaindiagFlag // 人员编号 (来自1101接口返回) feedetailInfo["diag_srt_no"] = index // 收费批次号 feedetailInfo["diag_code"] = item.DiagCode // 病种编码 feedetailInfo["diag_name"] = item.DiagName // 处方号 feedetailInfo["diag_dept"] = "" feedetailInfo["diag_dr_code"] = "" feedetailInfo["diag_dr_name"] = "" feedetailInfo["diag_time"] = "" feedetailInfo["vali_flag"] = "1" feedetail = append(feedetail, feedetailInfo) } input["ownPayPatnDiagListD"] = feedetail input["ownPayPatnMdtrtD"] = inputData inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "4202" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4203(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_mdtrt_id string) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) //input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4203" // 交易编码 inputData["fixmedins_mdtrt_id"] = fixmedins_mdtrt_id // 开始时间 inputData["fixmedins_code"] = fixmedins_code // 开始时间 inputData["cplt_flag"] = "1" // 人员姓名 inputMessage["input"] = inputData //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "4203" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4204(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates string, psn_name string) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputData := make(map[string]interface{}) feedetail := make([]map[string]interface{}, 0) inputMessage["infno"] = "4204" // 交易编码 inputData["fixmedins_mdtrt_id"] = "" inputData["fixmedins_code"] = "" feedetailInfo := make(map[string]interface{}) feedetailInfo["bkkp_sn"] = "" feedetail = append(feedetail, feedetailInfo) input["feedetl"] = feedetail input["feedetail"] = inputData inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "1101" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4205(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, struct4202 models.Struct4202, struct4201A models.Struct4201A) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) //input := make(map[string]interface{}) inputData0 := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4205" // 交易编码 inputData["fixmedins_mdtrt_id"] = struct4202.OwnPayPatnMdtrtD.FixmedinsMdtrtID inputData["fixmedins_code"] = struct4202.OwnPayPatnMdtrtD.FixmedinsCode inputData["fixmedins_name"] = struct4202.OwnPayPatnMdtrtD.FixmedinsName inputData["psn_cert_type"] = struct4202.OwnPayPatnMdtrtD.PsnCertType inputData["certno"] = struct4202.OwnPayPatnMdtrtD.Certno inputData["psn_name"] = struct4202.OwnPayPatnMdtrtD.PsnName inputData["gend"] = "" inputData["naty"] = "" inputData["brdy"] = "" inputData["age"] = "" inputData["coner_name"] = "" inputData["tel"] = "" inputData["addr"] = "" inputData["begntime"] = struct4202.OwnPayPatnMdtrtD.Begntime inputData["endtime"] = "" inputData["med_type"] = struct4202.OwnPayPatnMdtrtD.MedType inputData["main_cond_dscr"] = "" inputData["dise_codg"] = "" inputData["dise_name"] = "" inputData["birctrl_type"] = "" inputData["birctrl_matn_date"] = "" inputData["matn_type"] = "" inputData["geso_val"] = "" inputData["elec_bill_code"] = "" inputData["elec_billno_code"] = "" inputData["elec_bill_chkcode"] = "" inputData["exp_content"] = "" diagInfos := make([]map[string]interface{}, 0) for index, item := range struct4202.ODiagListD { diagInfo := make(map[string]interface{}) diagInfo["diag_type"] = item.DiagType // 就诊 ID(来自2201接口返回) diagInfo["diag_srt_no"] = index // 收费批次号 diagInfo["diag_code"] = item.DiagCode // 病种编码 diagInfo["diag_name"] = item.DiagName // 处方号 diagInfo["diag_dept"] = "血透" diagInfo["diag_dr_code"] = item.DiagDrCode diagInfo["diag_dr_name"] = item.DiagDrName diagInfo["diag_time"] = item.DiagTime diagInfo["vali_flag"] = "1" diagInfos = append(diagInfos, diagInfo) } inputData0["diseinfo"] = diagInfos feedetail := make([]map[string]interface{}, 0) for _, item := range struct4201A.Fopfd { fmt.Println("item.BkkpSn") fmt.Println(item.BkkpSn) inputData := make(map[string]interface{}) inputData["fixmedins_mdtrt_id"] = item.FixmedinsMdtrtID inputData["med_type"] = item.MedType inputData["bkkp_sn"] = item.BkkpSn inputData["fee_ocur_time"] = item.FeeOcurTime inputData["fixmedins_code"] = item.FixmedinsCode inputData["fixmedins_name"] = item.FixmedinsName inputData["cnt"] = item.Cnt inputData["pric"] = item.Pric inputData["det_item_fee_sumamt"] = item.DetItemFeeSumamt inputData["medins_list_name"] = item.MedinsListName inputData["medins_list_code"] = item.MedinsListCodg inputData["med_chrgitm_type"] = item.MedChrgitmType inputData["prodname"] = item.Prodname inputData["bilg_dept_codg"] = item.BilgDeptCodg inputData["bilg_dept_name"] = item.BilgDeptName inputData["bilg_dr_code"] = item.BilgDrCode inputData["bilg_dr_name"] = item.BilgDrName inputData["acord_dept_codg"] = "" inputData["acord_dept_name"] = "" inputData["acord_dr_code"] = "" inputData["acord_dr_name"] = "" inputData["tcmdrug_used_way"] = "" inputData["etip_flag"] = "" inputData["etip_hosp_code"] = "" inputData["dscg_tkdrug_flag"] = "" inputData["sin_dos_dscr"] = "" inputData["used_frqu_dscr"] = "" inputData["prd_days"] = "" inputData["medc_way_dscr"] = "" inputData["memo"] = item.Memo inputData["fulamt_ownpay_amt"] = "" inputData["overlmt_selfpay"] = "" inputData["preselfpay_amt"] = "" inputData["inscp_amt"] = "" inputData["rxno"] = "" feedetail = append(feedetail, inputData) } inputData0["feedetail"] = feedetail inputData0["mdtrtinfo"] = inputData inputMessage["input"] = inputData0 //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "4205" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4206(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4206" // 交易编码 inputData["fixmedins_mdtrt_id"] = "" // 开始时间 inputData["fixmedins_code"] = "" // 开始时间 input["input"] = inputData // 开始时间 inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "1101" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4207(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, struct4207 models.Struct4207) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4207" // 交易编码 inputData["fixmedins_mdtrt_id"] = struct4207.FixmedinsMdtrtID // 开始时间 inputData["fixmedins_code"] = struct4207.FixmedinsCode // 人员姓名 inputData["page_num"] = struct4207.PageNum // 人员姓名 inputData["page_size"] = struct4207.PageSize // 人员姓名 input["input"] = inputData inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "4207" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4208(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, struct4208 models.Struct4208) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4208" // 交易编码 inputData["psn_cert_type"] = struct4208.PsnCertType // 开始时间 inputData["certno"] = struct4208.Certno // 人员姓名 inputData["psn_name"] = struct4208.PsnName // 人员姓名 inputData["begintime"] = struct4208.Begntime // 人员姓名 inputData["endtime"] = struct4208.Endtime // 人员姓名 inputData["med_type"] = struct4208.MedType // 人员姓名 inputData["medfee_sumamt"] = struct4208.MedfeeSumamt // 人员姓名 inputData["elec_billno_code"] = struct4208.ElecBillnoCode // 人员姓名 inputData["page_num"] = struct4208.PageNum // 人员姓名 inputData["page_size"] = struct4208.PageSize // 人员姓名 input["input"] = inputData inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "1101" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func Gdyb4209(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, struct4209 models.Struct4209) (string, string) { //生成签名 nonce := GetRandomString(32) timestamp := time.Now().Unix() signature := setSignature(timestamp, nonce, secret_key) //生成输入报文 inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputMessage["infno"] = "4209" // 交易编码 inputData["fixmedins_mdtrt_id"] = struct4209.FixmedinsMdtrtID // 开始时间 inputData["fixmedins_code"] = struct4209.FixmedinsCode // 人员姓名 inputData["page_num"] = struct4209.PageNum // 人员姓名 inputData["page_size"] = struct4209.PageSize // 人员姓名 input["input"] = inputData inputMessage["input"] = input //交易输入 var inputLog string bytesData, err := json.Marshal(inputMessage) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) gdyb_url := beego.AppConfig.String("gdyb_url") gdyb_paasid := beego.AppConfig.String("gdyb_paasid") var url string if fixmedins_code == "H15049901371" { url = gdyb_url } else { url = gdyb_url + "1101" } //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("x-tif-paasid", gdyb_paasid) request.Header.Set("x-tif-signature", signature) request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10)) request.Header.Set("x-tif-nonce", nonce) client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog }