|
@@ -568,92 +568,21 @@ namespace PTMedicalInsurance.Helper
|
|
|
/// <returns></returns>
|
|
|
public static string setCenterInparPresCirNew(JObject data)
|
|
|
{
|
|
|
- #region【测试环境】
|
|
|
- /*
|
|
|
- //应用ID
|
|
|
- Global.inf.appId = "6582E8493AFE477BB7C6F3A46B5CEB1A";
|
|
|
- //Global.inf.appId = "57E2D561E97141A3871DEFB410ADD920";
|
|
|
- //应用秘钥
|
|
|
- Global.inf.Secret = "AD3731D4509A4186A177B8701DB4069F";
|
|
|
- //Global.inf.Secret = "F30D0D261BA04063A0BCAEF19F8ADBCC";
|
|
|
- //应用私钥
|
|
|
- Global.inf.privateKey = "ANxsfa0qU4Oc4WBG/oA41Z4+goGfJW/ovzz47VQcunKd"; //中心邮件下发
|
|
|
- //Global.inf.privateKey = "AKyhfvPbT+tIJHJkZSDILrw7t+FOG1U58UcupYYTzCOj"; //中心Demo
|
|
|
- //应用公钥
|
|
|
- //Global.inf.publicKey = "BKRejz4MwM8G8Krc4hyIIvhphvwrQpnHIsGWTd0sn0TJYr2eKJGAv87AKnrT8pL50H6hdVHdU0FFaL18GApDEbU"; //中心邮件下发
|
|
|
- Global.inf.publicKey = "BIFd2+2CgjuPAj5FMj5L/L3azTWu86suPtlIJkCo8zjQ44R7SQUUkTgZGdVelRQCM5pW+x9tZGzDPaUNbfD499w="; //中心Demo
|
|
|
-
|
|
|
- Global.inf.cardURL = "http://10.126.105.66/hsa-hgs-adapt/api/card/initDll"; //测试环境
|
|
|
- Global.inf.presCenterURL = "http://10.126.40.12:8080/epc/api";
|
|
|
- */
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region【正式环境】
|
|
|
- if (Global.inf.interfaceDr == 21) //兰2
|
|
|
- {
|
|
|
- //应用ID
|
|
|
- Global.inf.appId = "4D967CAB5DA44E3583F4246D7FE897F0";
|
|
|
- //应用秘钥
|
|
|
- Global.inf.privateKey = "586BD24D03E5481C8AE4FE9DD8424FFE";
|
|
|
- //应用私钥
|
|
|
- Global.inf.secretKey = "XTbX+Tt1np5Fma0+twhYi+vtM4J0UJ8VX5fFEZ7t/ro=";
|
|
|
- //应用公钥
|
|
|
- Global.inf.publicKey = "BIFd2+2CgjuPAj5FMj5L/L3azTWu86suPtlIJkCo8zjQ44R7SQUUkTgZGdVelRQCM5pW+x9tZGzDPaUNbfD499w=";
|
|
|
- }
|
|
|
-
|
|
|
- Global.curEvt.URL = "http://10.126.34.36:8080/epc/api";
|
|
|
- #endregion
|
|
|
-
|
|
|
- Global.writeLog("密钥id:" + Global.inf.appId);
|
|
|
- Global.writeLog("密钥key:" + Global.inf.secretKey);
|
|
|
- Global.writeLog("定点医药机构私钥:" + Global.inf.privateKey);
|
|
|
- Global.writeLog("医保电子处方中心公钥:" + Global.inf.publicKey);
|
|
|
+ EncryptHelper encrypt = new EncryptHelper();
|
|
|
|
|
|
- //Global.curEvt.msgid = Global.inf.hospitalNO + DateTime.Now.ToString("yyyyMMddHHmmssffff");
|
|
|
- string timestamp = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds).ToString();
|
|
|
- Global.curEvt.msgid = timestamp;
|
|
|
+ string txtData = JsonHelper.toJsonString(data);
|
|
|
|
|
|
- JObject requestData = new JObject();
|
|
|
- requestData.Add("appId", Global.inf.appId);
|
|
|
- //requestData.Add("version", "2.0.1");
|
|
|
- requestData.Add("encType", "SM4");
|
|
|
- requestData.Add("signType", "SM2");
|
|
|
- requestData.Add("timestamp", timestamp);
|
|
|
+ string plainText = SignUtil.SortInput(data);
|
|
|
|
|
|
- //加密
|
|
|
- String encData = SMUtil.encrypt(JsonConvert.SerializeObject(data, Formatting.None), Global.inf.appId, Global.inf.secretKey);
|
|
|
- //Global.writeLog("入参加密前:" + "\r\n" + JsonConvert.DeserializeObject(data.ToString()) + "\r\n" + "入参加密后:" + "\r\n" + encData);
|
|
|
+ Global.writeLog("【明文入参】:\r\n" + plainText);
|
|
|
|
|
|
- JObject signDto = (JObject)JObject.Parse(JsonConvert.SerializeObject(requestData, Formatting.None));
|
|
|
- signDto.Add("data", data);
|
|
|
+ string signData = "";
|
|
|
|
|
|
- //加签
|
|
|
- String signData = SMUtil.sign(signDto, Global.inf.secretKey, Global.inf.appId);
|
|
|
- Global.writeLog("签名结果:" + "\r\n" + signData);
|
|
|
+ string output = encrypt.encrypt(txtData, ref signData);
|
|
|
|
|
|
- //报文
|
|
|
- requestData.Add("encData", encData);
|
|
|
- requestData.Add("signData", signData);
|
|
|
+ Global.writeLog("【密文入参】:\r\n" + output);
|
|
|
|
|
|
- dynamic Jo = new JObject();
|
|
|
- Jo.appId = Global.inf.appId;
|
|
|
- //Jo.version = "2.0.1";
|
|
|
- Jo.timestamp = timestamp;
|
|
|
- Jo.encType = "SM4";
|
|
|
- Jo.signType = "SM2";
|
|
|
- Jo.signData = signDto.ToString();
|
|
|
- Jo.encData = data.ToString();
|
|
|
-
|
|
|
- Global.writeLog("加密前报文:" + "\r\n" + Jo.ToString() + "\r\n" + "加密后报文:" + "\r\n" + JsonConvert.SerializeObject(requestData, Formatting.None));
|
|
|
-
|
|
|
- //本地解密
|
|
|
- //String decData = SMUtil.decrypt(encData, Global.inf.appId, Global.inf.Secret);
|
|
|
- //Global.writeLog("解密:" + decData);
|
|
|
- //使用应用公钥(publicKey示例默认值)对本地自签名的数据进行验签示例
|
|
|
- //Boolean isVerify = SMUtil.verify(signDto, Global.inf.Secret, Global.inf.publicKey, signData);
|
|
|
- //Global.writeLog("验签:" + isVerify);
|
|
|
-
|
|
|
- return requestData.ToString();
|
|
|
+ return output;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|