浏览代码

fix: 移动支付正式环境支持异步通知

zhengjie 1 年之前
父节点
当前提交
cd7e98f825
共有 2 个文件被更改,包括 55 次插入46 次删除
  1. 1 1
      Business/CenterBusiness.cs
  2. 54 45
      Business/MobilePay.cs

+ 1 - 1
Business/CenterBusiness.cs

@@ -174,7 +174,7 @@ namespace PTMedicalInsurance.Business
                 {
                     jsonSignIn.opter_no = "4D91C975CF902EB2";
                 }
-                jsonSignIn.opter_no = "888888";  //测试账号
+                //jsonSignIn.opter_no = "888888";  //测试账号
 
                 jsonSignIn.mac = Global.curEvt.mac;
                 

+ 54 - 45
Business/MobilePay.cs

@@ -233,6 +233,15 @@ namespace PTMedicalInsurance.Business
                 }
                 JObject joEncData = JObject.Parse((errMsg));
                 Global.writeLog(JsonHelper.Compress(joEncData));
+
+                string setlInfo = JsonHelper.getDestValue(joEncData, "extData.setlinfo");
+                if (string.IsNullOrEmpty(setlInfo))
+                {
+                    //此时为异步返回结算内容
+                    string ordStatus = JsonHelper.getDestValue(joEncData, "ordStas");
+                    outPar = JsonHelper.setExceptionJson(0, "移动医保结算", "当前订单状态为:【"+ordStatus+"】,结算成功,但未返回结算明细!").ToString();
+                    return 0;
+                }
                 //设置
                 setSettlementsBy6301Rtn(joEncData);
                 MSettl.confirmFlag = 1;
@@ -404,51 +413,51 @@ namespace PTMedicalInsurance.Business
 
         public void setSettlementsBy6301Rtn(JObject joRtn)
         {
-            JObject jo = JObject.Parse(JsonHelper.getDestValue(joRtn, "extData.setlinfo"));
-
-            MPat.settlID = JsonHelper.getDestValue(jo, "setlId");
-            MPat.psn_no = JsonHelper.getDestValue(jo, "psnNo");
-            MPat.naty = JsonHelper.getDestValue(jo, "naty");
-            MPat.name = JsonHelper.getDestValue(jo, "psnName");
-            MPat.age = JsonHelper.getDestValue(jo, "age");
-            MPat.gend = JsonHelper.getDestValue(jo, "gend");
-            MPat.certNO = JsonHelper.getDestValue(jo, "certno");
-            MPat.brdy = JsonHelper.getDestValue(jo, "brdy");
-            MPat.insuType = JsonHelper.getDestValue(jo, "insutype");
-            MPat.psn_type = JsonHelper.getDestValue(jo, "psnType");
-            MPat.mdtrtcertType = JsonHelper.getDestValue(jo, "mdtrtCertType");
-            MPat.medType = JsonHelper.getDestValue(jo, "medType");
-            MPat.insuplc_admdvs = JsonHelper.getDestValue(joRtn, "extData.insuplcAdmdvs");
-
-            MPat.payOrdId = JsonHelper.getDestValue(joRtn, "payOrdId");
-            MSettl.ordStas = JsonHelper.getDestValue(joRtn, "ordStas");
-            MSettl.sumamt = getDecimalFee(joRtn, "feeSumamt");
-
-            MSettl.personCashPay = getDecimalFee(jo, "psnCashPay");
-            MSettl.accountPaySumamt = getDecimalFee(jo, "acctPay");
-            MSettl.fundPaySumamt = getDecimalFee(jo, "fundPaySumamt");
-
-            //MSettl.deposit = getDecimalFee(jo, "deposit");
-            MSettl.clearingOrgan = JsonHelper.getDestValue(jo, "clrOptins");
-            MSettl.clearingType = JsonHelper.getDestValue(jo, "clrType");
-            MSettl.clearingWay = JsonHelper.getDestValue(jo, "clrWay");
-            MSettl.civilserviceAllowancePay = getDecimalFee(jo, "cvlservPay");
-            MSettl.ownPayAmount = getDecimalFee(jo, "fulamtOwnpayAmt");
-            MSettl.overLimitAmountmt = getDecimalFee(jo, "overlmtSelfpay");
-            MSettl.preSelfPayAmount = getDecimalFee(jo, "preselfpayAmt");
-            MSettl.inPolicyRangeAmount = getDecimalFee(jo, "inscpScpAmt");
-            MSettl.actualPayDeductible = getDecimalFee(jo, "actPayDedc");
-            MSettl.healthInsurancePay = getDecimalFee(jo, "hifpPay");
-            MSettl.healthInsuranceRatio = getDecimalFee(jo, "poolPropSelfpay");
-            MSettl.enterpriseSupplementPay = getDecimalFee(jo, "hifesPay");
-            MSettl.seriousIllnessPay = getDecimalFee(jo, "hifmiPay");
-            MSettl.largeExpensesSupplementPay = getDecimalFee(jo, "hifobPay");
-            MSettl.medicalAssistPay = getDecimalFee(jo, "mafPay");
-            MSettl.hospitalPartAmount = getDecimalFee(jo, "hospPartAmt");
-            MSettl.otherPay = getDecimalFee(jo, "othPay");
-            MSettl.personPaySumamt = getDecimalFee(jo, "psnPartAmt");
-            MSettl.balance = getDecimalFee(jo, "balc");
-            MSettl.accountMutualAidAmount = getDecimalFee(jo, "acctMulaidPay");
+                JObject jo = JObject.Parse(JsonHelper.getDestValue(joRtn, "extData.setlinfo"));
+
+                MPat.settlID = JsonHelper.getDestValue(jo, "setlId");
+                MPat.psn_no = JsonHelper.getDestValue(jo, "psnNo");
+                MPat.naty = JsonHelper.getDestValue(jo, "naty");
+                MPat.name = JsonHelper.getDestValue(jo, "psnName");
+                MPat.age = JsonHelper.getDestValue(jo, "age");
+                MPat.gend = JsonHelper.getDestValue(jo, "gend");
+                MPat.certNO = JsonHelper.getDestValue(jo, "certno");
+                MPat.brdy = JsonHelper.getDestValue(jo, "brdy");
+                MPat.insuType = JsonHelper.getDestValue(jo, "insutype");
+                MPat.psn_type = JsonHelper.getDestValue(jo, "psnType");
+                MPat.mdtrtcertType = JsonHelper.getDestValue(jo, "mdtrtCertType");
+                MPat.medType = JsonHelper.getDestValue(jo, "medType");
+                MPat.insuplc_admdvs = JsonHelper.getDestValue(joRtn, "extData.insuplcAdmdvs");
+
+                MPat.payOrdId = JsonHelper.getDestValue(joRtn, "payOrdId");
+                MSettl.ordStas = JsonHelper.getDestValue(joRtn, "ordStas");
+                MSettl.sumamt = getDecimalFee(joRtn, "feeSumamt");
+
+                MSettl.personCashPay = getDecimalFee(jo, "psnCashPay");
+                MSettl.accountPaySumamt = getDecimalFee(jo, "acctPay");
+                MSettl.fundPaySumamt = getDecimalFee(jo, "fundPaySumamt");
+
+                //MSettl.deposit = getDecimalFee(jo, "deposit");
+                MSettl.clearingOrgan = JsonHelper.getDestValue(jo, "clrOptins");
+                MSettl.clearingType = JsonHelper.getDestValue(jo, "clrType");
+                MSettl.clearingWay = JsonHelper.getDestValue(jo, "clrWay");
+                MSettl.civilserviceAllowancePay = getDecimalFee(jo, "cvlservPay");
+                MSettl.ownPayAmount = getDecimalFee(jo, "fulamtOwnpayAmt");
+                MSettl.overLimitAmountmt = getDecimalFee(jo, "overlmtSelfpay");
+                MSettl.preSelfPayAmount = getDecimalFee(jo, "preselfpayAmt");
+                MSettl.inPolicyRangeAmount = getDecimalFee(jo, "inscpScpAmt");
+                MSettl.actualPayDeductible = getDecimalFee(jo, "actPayDedc");
+                MSettl.healthInsurancePay = getDecimalFee(jo, "hifpPay");
+                MSettl.healthInsuranceRatio = getDecimalFee(jo, "poolPropSelfpay");
+                MSettl.enterpriseSupplementPay = getDecimalFee(jo, "hifesPay");
+                MSettl.seriousIllnessPay = getDecimalFee(jo, "hifmiPay");
+                MSettl.largeExpensesSupplementPay = getDecimalFee(jo, "hifobPay");
+                MSettl.medicalAssistPay = getDecimalFee(jo, "mafPay");
+                MSettl.hospitalPartAmount = getDecimalFee(jo, "hospPartAmt");
+                MSettl.otherPay = getDecimalFee(jo, "othPay");
+                MSettl.personPaySumamt = getDecimalFee(jo, "psnPartAmt");
+                MSettl.balance = getDecimalFee(jo, "balc");
+                MSettl.accountMutualAidAmount = getDecimalFee(jo, "acctMulaidPay");
         }
 
         public void setSettlementsByInPar()