首次提交
This commit is contained in:
6
SMCryptoUtilsTest/App.config
Normal file
6
SMCryptoUtilsTest/App.config
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
||||
210
SMCryptoUtilsTest/Program.cs
Normal file
210
SMCryptoUtilsTest/Program.cs
Normal file
@ -0,0 +1,210 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SMCryptoUtils;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace SMCryptoUtilsTest
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
|
||||
//应用ID
|
||||
String appId = "57E2D561E97141A3871DEFB410ADD920";
|
||||
//应用秘钥
|
||||
String appSecret = "F30D0D261BA04063A0BCAEF19F8ADBCC";
|
||||
//应用私钥
|
||||
String privateKey = "AKyhfvPbT+tIJHJkZSDILrw7t+FOG1U58UcupYYTzCOj";
|
||||
//平台公钥(为了测试用例能验签成功,平台公钥当前赋值为应用公钥的值,应用公钥存放于处方中心不对外提供,实际上拿到的平台公钥是用于验签处方中心返回的数据,不能用于此demo)
|
||||
String publicKey = "BIFd2+2CgjuPAj5FMj5L/L3azTWu86suPtlIJkCo8zjQ44R7SQUUkTgZGdVelRQCM5pW+x9tZGzDPaUNbfD499w=";
|
||||
|
||||
JObject requestData = new JObject();
|
||||
requestData.Add("appId", appId);
|
||||
requestData.Add("encType", "SM4");
|
||||
requestData.Add("signType", "SM2");
|
||||
requestData.Add("timestamp", (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds);
|
||||
|
||||
JObject data = new JObject();
|
||||
// data.Add("userName", "张三");
|
||||
/***********说明:此次data对象替换为实际传递的业务数据结构,以下结构仅供测试参考。***********/
|
||||
data = JObject.Parse("{\n" +
|
||||
" \"insuPlcNo\": \"350100\",\n" +
|
||||
" \"hospRxno\": \"3504874534935555553312259665232132\",\n" +
|
||||
" \"prscTime\": \"2022-06-06 10:10:00\",\n" +
|
||||
" \"valiDays\": 1,\n" +
|
||||
" \"valiEndTime\": \"2022-06-07 10:10:00\",\n" +
|
||||
" \"authNo\": \"\",\n" +
|
||||
" \"bizTypeCode\": \"01\",\n" +
|
||||
" \"diseinfo\": [\n" +
|
||||
" {\n" +
|
||||
" \"diagCode\": \"E11.900\",\n" +
|
||||
" \"diagDept\": \"心血管内科\",\n" +
|
||||
" \"diagDrName\": \"吴丽雅\",\n" +
|
||||
" \"diagDrNo\": \"PTYS0000818231\",\n" +
|
||||
" \"diagName\": \"急性胃炎\",\n" +
|
||||
" \"diagSrtNo\": \"1\",\n" +
|
||||
" \"diagTime\": \"2022-04-07 10:10:00\",\n" +
|
||||
" \"diagType\": \"1\",\n" +
|
||||
" \"maindiagFlag\": \"1\",\n" +
|
||||
" \"tcmDiseCode\": \"\",\n" +
|
||||
" \"tcmDiseName\": \"\",\n" +
|
||||
" \"tcmsymp\": \"\",\n" +
|
||||
" \"tcmsympCode\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"ecToken\": \"\",\n" +
|
||||
" \"initRxno\": \"\",\n" +
|
||||
" \"longRxFlag\": \"1\",\n" +
|
||||
" \"maxReptCnt\": 0,\n" +
|
||||
" \"mdtrtCertType\": \"02\",\n" +
|
||||
" \"mdtrtCertNo\": \"110101198811090049\",\n" +
|
||||
" \"cardSn\":\"\",\n" +
|
||||
" \"mdtrtinfo\": {\n" +
|
||||
" \"algsHis\": \"注射过敏\",\n" +
|
||||
" \"certno\": \"110101198811090049\",\n" +
|
||||
" \"diseCodg\": \"\",\n" +
|
||||
" \"diseCondDscr\": \"\",\n" +
|
||||
" \"diseName\": \"\",\n" +
|
||||
" \"drCode\": \"YS9083982313\",\n" +
|
||||
" \"drDeptCode\": \"KSBM89981\",\n" +
|
||||
" \"drDeptName\": \"外科\",\n" +
|
||||
" \"drProfttlCodg\": \"ZCBM29931\",\n" +
|
||||
" \"drProfttlName\": \"主任医师\",\n" +
|
||||
" \"extras\": {\n" +
|
||||
" \"1\": \"1\"\n" +
|
||||
" },\n" +
|
||||
" \"fixmedinsCode\": \"H35010200364\",\n" +
|
||||
" \"fixmedinsName\": \"福建中医药大学附属第二人民医院\",\n" +
|
||||
" \"fstdiagFlag\": \"0\",\n" +
|
||||
" \"gend\": \"1\",\n" +
|
||||
" \"gesoVal\": 0,\n" +
|
||||
" \"hiFeesetlName\": \"本地医疗保险\",\n" +
|
||||
" \"hiFeesetlType\": \"2\",\n" +
|
||||
" \"insutype\": \"310\",\n" +
|
||||
" \"iptOtpNo\": \"ZYMZ8909232131231\",\n" +
|
||||
" \"maindiagCode\": \"E11.900\",\n" +
|
||||
" \"maindiagName\": \"急性胃炎\",\n" +
|
||||
" \"mdtrtId\": \"JZID888888\",\n" +
|
||||
" \"mdtrtTime\": \"2022-05-19 14:10:00\",\n" +
|
||||
" \"medType\": \"11\",\n" +
|
||||
" \"medTypeName\": \"普通门诊\",\n" +
|
||||
" \"medfeeSumamt\": 36.88,\n" +
|
||||
" \"nwbAge\": \"\",\n" +
|
||||
" \"nwbFlag\": \"0\",\n" +
|
||||
" \"otpIptFlag\": \"1\",\n" +
|
||||
" \"patnAge\": 27,\n" +
|
||||
" \"patnHgt\": 180,\n" +
|
||||
" \"patnName\": \"张三三\",\n" +
|
||||
" \"patnWt\": 80,\n" +
|
||||
" \"pharCertType\": \"01\",\n" +
|
||||
" \"pharCertno\": \"350401198510101010\",\n" +
|
||||
" \"pharChkTime\": \"2022-04-07 10:10:01\",\n" +
|
||||
" \"pharCode\": \"PTYS000088232\",\n" +
|
||||
" \"pharDeptCode\": \"KS989831\",\n" +
|
||||
" \"pharDeptName\": \"内科\",\n" +
|
||||
" \"pharName\": \"林玉英\",\n" +
|
||||
" \"pharPracCertNo\": \"YSBH99032313\",\n" +
|
||||
" \"pharProfttlCodg\": \"01\",\n" +
|
||||
" \"pharProfttlName\": \"高级药师\",\n" +
|
||||
" \"prscDeptCode\": \"KFKS98231\",\n" +
|
||||
" \"prscDeptName\": \"内科\",\n" +
|
||||
" \"prscDrCertType\": \"01\",\n" +
|
||||
" \"prscDrCertno\": \"350422196510101010\",\n" +
|
||||
" \"prscDrName\": \"吴丽雅\",\n" +
|
||||
" \"psnCertType\": \"01\",\n" +
|
||||
" \"psnNo\": \"RYBH38384\",\n" +
|
||||
" \"rgstFee\": 15.88,\n" +
|
||||
" \"spDiseFlag\": \"1\",\n" +
|
||||
" \"suckPrdFlag\": \"0\"\n" +
|
||||
" },\n" +
|
||||
" \"minInrvDays\": 2,\n" +
|
||||
" \"reptFlag\": \"0\",\n" +
|
||||
" \"reptdCnt\": 0,\n" +
|
||||
" \"rxCotnFlag\": \"0\",\n" +
|
||||
" \"rxDoscnt\": 1,\n" +
|
||||
" \"rxDosePrdDays\": 3,\n" +
|
||||
" \"rxDosunt\": \"包\",\n" +
|
||||
" \"rxDrordDscr\": \"多喝水\",\n" +
|
||||
" \"rxDrugCnt\": 1,\n" +
|
||||
" \"rxFrquCodg\": \"13\",\n" +
|
||||
" \"rxFrquName\": \"每天三次(tid)\",\n" +
|
||||
" \"rxTypeCode\": \"1\",\n" +
|
||||
" \"rxUsedWayCodg\": \"1\",\n" +
|
||||
" \"rxUsedWayName\": \"口服\",\n" +
|
||||
" \"rxdrugdetail\": [\n" +
|
||||
" {\n" +
|
||||
" \"basMednFlag\": \"1\",\n" +
|
||||
" \"chemname\": \"恩替卡韦口服溶液\",\n" +
|
||||
" \"diseCodg\": \"BZML000000001\",\n" +
|
||||
" \"drugCnt\": 1,\n" +
|
||||
" \"drugDosform\": \"片剂\",\n" +
|
||||
" \"drugDosunt\": \"盒\",\n" +
|
||||
" \"drugGenname\": \"恩替卡韦口服溶液\",\n" +
|
||||
" \"drugPric\": 1.5,\n" +
|
||||
" \"drugProdname\": \"恩替卡韦口服溶液\",\n" +
|
||||
" \"drugSpec\": \"1支/盒\",\n" +
|
||||
" \"drugSumamt\": 27,\n" +
|
||||
" \"drugTotlcnt\": \"1\",\n" +
|
||||
" \"drugTotlcntEmp\": \"盒\",\n" +
|
||||
" \"drugstdcode\": \"BWM99-03131\",\n" +
|
||||
" \"extras\": {},\n" +
|
||||
" \"fixmedinsHilistId\": \"\",\n" +
|
||||
" \"hospApprFlag\": \"1\",\n" +
|
||||
" \"hospPrepFlag\": \"0\",\n" +
|
||||
" \"impDrugFlag\": \"0\",\n" +
|
||||
" \"mainMedcFlag\": \"\",\n" +
|
||||
" \"medListCodg\": \"XJ05AFE013X001010108569\",\n" +
|
||||
" \"medcBegntime\": \"2022-04-08 10:10:00\",\n" +
|
||||
" \"medcDays\": 0,\n" +
|
||||
" \"medcEndtime\": \"2022-04-08 10:10:00\",\n" +
|
||||
" \"medcWayCodg\": \"1\",\n" +
|
||||
" \"medcWayDscr\": \"口服\",\n" +
|
||||
" \"mednTypeCode\": \"0100\",\n" +
|
||||
" \"mednTypeName\": \"抗生素类抗感染药物\",\n" +
|
||||
" \"prdrName\": \"成都第一制药有限公司\",\n" +
|
||||
" \"prodBarc\": \"111111111\",\n" +
|
||||
" \"rxItemTypeCode\": \"11\",\n" +
|
||||
" \"rxItemTypeName\": \"西药\",\n" +
|
||||
" \"sinDoscnt\": 2,\n" +
|
||||
" \"sinDosunt\": \"片\",\n" +
|
||||
" \"tcmdrugTypeCode\": \"1\",\n" +
|
||||
" \"tcmdrugTypeName\": \"\",\n" +
|
||||
" \"tcmherbFoote\": \"\",\n" +
|
||||
" \"urgtFlag\": \"\",\n" +
|
||||
" \"usedFrquCodg\": \"13\",\n" +
|
||||
" \"usedFrquName\": \"每天三次(tid)\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
"}");
|
||||
|
||||
SMUtil sMUtil = new SMUtil();
|
||||
|
||||
//加密
|
||||
String encData = sMUtil.encrypt(JsonConvert.SerializeObject(data, Formatting.None), appId, appSecret);
|
||||
Console.WriteLine("加密:" + encData);
|
||||
|
||||
JObject signDto = (JObject)JObject.Parse(JsonConvert.SerializeObject(requestData, Formatting.None));
|
||||
signDto.Add("data", data);
|
||||
|
||||
//加签
|
||||
String signData = sMUtil.sign(signDto, appSecret, privateKey);
|
||||
Console.WriteLine("加签:" + signData);
|
||||
//报文
|
||||
requestData.Add("encData", encData);
|
||||
requestData.Add("signData", signData);
|
||||
Console.WriteLine("报文:" + JsonConvert.SerializeObject(requestData, Formatting.None));
|
||||
//解密
|
||||
String decData = sMUtil.decrypt(encData, appId, appSecret);
|
||||
Console.WriteLine("解密:" + decData);
|
||||
//验签
|
||||
Boolean isVerify = sMUtil.verify(signDto, appSecret, publicKey, signData);
|
||||
Console.WriteLine("验签:" + isVerify);
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
36
SMCryptoUtilsTest/Properties/AssemblyInfo.cs
Normal file
36
SMCryptoUtilsTest/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("SMCryptoUtilsTest")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("SMCryptoUtilsTest")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("8b808c3c-450e-4771-ab15-11b980cec34b")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
62
SMCryptoUtilsTest/SMCryptoUtilsTest.csproj
Normal file
62
SMCryptoUtilsTest/SMCryptoUtilsTest.csproj
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{8B808C3C-450E-4771-AB15-11B980CEC34B}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>SMCryptoUtilsTest</RootNamespace>
|
||||
<AssemblyName>SMCryptoUtilsTest</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>E:\DingDownload\医保局加解密方法工具类及调用demo(医保电子处方中心)V1.0\医保局加解密方法工具类及调用demo(医保电子处方中心)V1.0\C#\SMCryptoUtils\SMCryptoUtils\bin\Debug\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SMCryptoUtils\SMCryptoUtils.csproj">
|
||||
<Project>{164f1097-1277-42dd-a4ad-dc9bd59be320}</Project>
|
||||
<Name>SMCryptoUtils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
Reference in New Issue
Block a user