HWA005-理赔晶世科保报案-结案接口
<p><strong>简要描述:</strong></p>
<ul>
<li>理赔 晶世科保 报案-结案接口,对接第三方</li>
</ul>
<p><strong>应用场景:</strong></p>
<ul>
<li>晶世科保通过接口实时推送赔案信息,申能自动完成从报案到结案;并将结果反馈至晶世科保</li>
</ul>
<p><strong>流程图:</strong></p>
<p><strong>请求URL:</strong></p>
<p>135.169地址
外网网135地址:<a href="https://sit-claim.95505.cn/httpClaimServices">https://sit-claim.95505.cn/httpClaimServices</a></p>
<p>生产接口地址:
核心生产外网:<a href="https://claim-net-api.95505.cn/httpClaimServices">https://claim-net-api.95505.cn/httpClaimServices</a></p>
<p><strong>请求方式:</strong></p>
<ul>
<li>POST +JSON</li>
</ul>
<p><strong>调用方法名:</strong></p>
<ul>
<li>autoCommonClaim</li>
</ul>
<p><strong>输入参数:</strong></p>
<ul>
<li>输入流+json</li>
</ul>
<p><strong>输出参数:</strong></p>
<ul>
<li>输入流+json</li>
</ul>
<p><strong>入参返参参数说明</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">字段名称</th>
<th style="text-align: left;">英文</th>
<th>类型</th>
<th>字段长度</th>
<th>是否可空</th>
<th>是否多值</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">httpRequest(请求消息体)</td>
</tr>
<tr>
<td style="text-align: left;">请求交易头信息</td>
<td style="text-align: left;">requestHead</td>
<td>RequestHead</td>
<td>no</td>
<td>no</td>
<td>详见公共参数</td>
</tr>
<tr>
<td style="text-align: left;">客户必须提供的参数对象</td>
<td style="text-align: left;">requestBody</td>
<td>RequestBody</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">RequestHead (请求交易头信息)</td>
</tr>
<tr>
<td style="text-align: left;">服务代码</td>
<td style="text-align: left;">serviceClass</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>HWA005</td>
</tr>
<tr>
<td style="text-align: left;">服务名称</td>
<td style="text-align: left;">serviceName</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>autoCommonClaim</td>
</tr>
<tr>
<td style="text-align: left;">用户代码</td>
<td style="text-align: left;">userCode</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>TACommon-JSTPA(晶世科保平台)-时间戳,示例:TACommon-JSTPA-1592292706</td>
</tr>
<tr>
<td style="text-align: left;">用户名称</td>
<td style="text-align: left;">userName</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>对usercode值进行公钥加密后的密文值</td>
</tr>
<tr>
<td style="text-align: left;">RequestBody (客户必须提供的参数对象)</td>
</tr>
<tr>
<td style="text-align: left;">保单号</td>
<td style="text-align: left;">policyNo</td>
<td>String</td>
<td>50</td>
<td>no</td>
<td>no</td>
<td>保单号</td>
</tr>
<tr>
<td style="text-align: left;">订单号</td>
<td style="text-align: left;">orderNo</td>
<td>String</td>
<td>50</td>
<td>no</td>
<td>no</td>
<td>订单号</td>
</tr>
<tr>
<td style="text-align: left;">报案人名称</td>
<td style="text-align: left;">reporterName</td>
<td>String</td>
<td>255</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">报案人电话</td>
<td style="text-align: left;">reporterPhoneNumber</td>
<td>String</td>
<td>30</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">出险时间</td>
<td style="text-align: left;">damageStartDate</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>出险时间:格式:yyyy-MM-dd HH:mm:ss</td>
</tr>
<tr>
<td style="text-align: left;">被保险人</td>
<td style="text-align: left;">insuredName</td>
<td>String</td>
<td>255</td>
<td>no</td>
<td>no</td>
<td>被保险人</td>
</tr>
<tr>
<td style="text-align: left;">出险省</td>
<td style="text-align: left;">damageProvince</td>
<td>String</td>
<td>30</td>
<td>no</td>
<td>no</td>
<td>出险的省(省编码)</td>
</tr>
<tr>
<td style="text-align: left;">出险市</td>
<td style="text-align: left;">damageCity</td>
<td>String</td>
<td>30</td>
<td>no</td>
<td>no</td>
<td>出险的市(市编码)</td>
</tr>
<tr>
<td style="text-align: left;">出险区/镇</td>
<td style="text-align: left;">damageDistrict</td>
<td>String</td>
<td>30</td>
<td>no</td>
<td>no</td>
<td>出险的区县(区县编码)</td>
</tr>
<tr>
<td style="text-align: left;">出险地点</td>
<td style="text-align: left;">address</td>
<td>String</td>
<td>255</td>
<td>no</td>
<td>no</td>
<td>详细地址</td>
</tr>
<tr>
<td style="text-align: left;">出险经过</td>
<td style="text-align: left;">registContext</td>
<td>String</td>
<td>255</td>
<td>no</td>
<td>no</td>
<td>出险经过</td>
</tr>
<tr>
<td style="text-align: left;">出险原因</td>
<td style="text-align: left;">damageCode</td>
<td>String</td>
<td>255</td>
<td>no</td>
<td>no</td>
<td>出险原因:411其他;对应损失明细:16其他;赔付责任类型:306其他赔付</td>
</tr>
<tr>
<td style="text-align: left;">赔付金额</td>
<td style="text-align: left;">lossFee</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>理赔总金额(险别金额合计)</td>
</tr>
<tr>
<td style="text-align: left;">报案来源</td>
<td style="text-align: left;">reportResource</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>报案来源:晶世科保-JSKB</td>
</tr>
<tr>
<td style="text-align: left;">kindList</td>
<td style="text-align: left;">List</td>
<td>no</td>
<td>no</td>
<td>损失明细,必传</td>
</tr>
<tr>
<td style="text-align: left;">kindList</td>
</tr>
<tr>
<td style="text-align: left;">险别编码</td>
<td style="text-align: left;">kindCode</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>险别编码</td>
</tr>
<tr>
<td style="text-align: left;">险别损失金额</td>
<td style="text-align: left;">sumLoss</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>险别损失金额</td>
</tr>
<tr>
<td style="text-align: left;">损失对象类型</td>
<td style="text-align: left;">lossType</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>损失对象类型:1-车物、2-人</td>
</tr>
<tr>
<td style="text-align: left;">损失对象名称</td>
<td style="text-align: left;">lossName</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>损失对象名称。</td>
</tr>
<tr>
<td style="text-align: left;">损失明细代码</td>
<td style="text-align: left;">chargeCode</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>损失明细枚举(代码-名称):车物损失:01-物损费用;人伤损失:01-死亡赔偿金、03-伤残赔偿金、04-医疗费、05-误工费、12-营养费、16-其它</td>
</tr>
<tr>
<td style="text-align: left;">损失明细名称</td>
<td style="text-align: left;">chargeName</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>损失明细名称</td>
</tr>
<tr>
<td style="text-align: left;">赔付比例</td>
<td style="text-align: left;">undwrtRate</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>赔付比例</td>
</tr>
<tr>
<td style="text-align: left;">赔付金额</td>
<td style="text-align: left;">paidAmount</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>赔付金额 = 险别损失金额 * 赔付比例</td>
</tr>
<tr>
<td style="text-align: left;">clmPaymentInfoList</td>
<td style="text-align: left;">List</td>
<td>no</td>
<td>no</td>
<td>赔付对象信息,必传</td>
</tr>
<tr>
<td style="text-align: left;">clmPaymentInfoList</td>
</tr>
<tr>
<td style="text-align: left;">对公对私</td>
<td style="text-align: left;">bankPayType</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>0-对公、1-对私</td>
</tr>
<tr>
<td style="text-align: left;">分支行Code</td>
<td style="text-align: left;">payeeBankCode</td>
<td>String</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">银行账号</td>
<td style="text-align: left;">accountNo</td>
<td>String</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">账户名称</td>
<td style="text-align: left;">accountName</td>
<td>String</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">证件类型</td>
<td style="text-align: left;">idType</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>单独码表</td>
</tr>
<tr>
<td style="text-align: left;">证件号码</td>
<td style="text-align: left;">idNo</td>
<td>String</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">赔付金额</td>
<td style="text-align: left;">payAmount</td>
<td>String</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td style="text-align: left;">联系电话</td>
<td style="text-align: left;">payeeMobile</td>
<td>String</td>
<td>no</td>
<td>no</td>
</tr>
</tbody>
</table>
<p><strong>入参示例</strong></p>
<pre><code>--因加密后存在特殊字符,需要针对整个报文进行urlencode转码
--在线转码地址:http://www.jsons.cn/urlencode
{
&quot;httpRequest&quot;: {
&quot;requestHead&quot;: {
&quot;serviceClass&quot;: &quot;HWA005&quot;,
&quot;serviceName&quot;: &quot;autoCommonClaim&quot;,
&quot;userCode&quot;: &quot;TACommon-JSTPA-1592292706&quot;,
&quot;userName&quot;: &quot;S9VIiY/9SiArQnKSxOn9Xx/FjvvRuwDdELjhhkB79J3ZCsResOOB1PT9lnlOIfWT6U7/vJa3mydzDEw3BaBA73vN0QruAhQJXAdyFUE+oj4z1yg0yLm24YBqpHvBUzXKtIUG5fd3exqia6AiHxkmJGdrWsw8vfcDOhzx5GAfjvM=&quot;
},
&quot;requestBody&quot;: {
&quot;policyNo&quot;: &quot;6614030110706220000037&quot;,
&quot;orderNo&quot;: &quot;ordremoteDev20220803001&quot;,
&quot;reporterName&quot;: &quot;张无忌&quot;,
&quot;reporterPhoneNumber&quot;: &quot;18404983580&quot;,
&quot;damageStartDate&quot;: &quot;2022-07-10 07:19:33&quot;,
&quot;insuredName&quot;: &quot;张无忌&quot;,
&quot;damageProvince&quot;: &quot;320000&quot;,
&quot;damageCity&quot;: &quot;320200&quot;,
&quot;damageDistrict&quot;: &quot;320282&quot;,
&quot;address&quot;: &quot;卡园三路58号&quot;,
&quot;registContext&quot;: &quot;卡园三路58号xxxxxxxxxx&quot;,
&quot;damageCode&quot;: &quot;411&quot;,
&quot;lossFee&quot;: &quot;100.00&quot;,
&quot;reportResource&quot;: &quot;JSKB&quot;,
&quot;kindList&quot;: [
{
&quot;lossType&quot;: &quot;1&quot;,
&quot;lossName&quot;: &quot;物品&quot;,
&quot;sex&quot;: &quot;&quot;,
&quot;identifyType&quot;: &quot;&quot;,
&quot;identifyNo&quot;: &quot;&quot;,
&quot;age&quot;: &quot;&quot;,
&quot;kindCode&quot;: &quot;1107001&quot;,
&quot;chargeCode&quot;: &quot;01&quot;,
&quot;chargeName&quot;: &quot;物损费用&quot;,
&quot;sumLoss&quot;: &quot;111.00&quot;,
&quot;undwrtRate&quot;: &quot;100&quot;,
&quot;paidAmount&quot;: &quot;111.00&quot;
}
],
&quot;clmPaymentInfoList&quot;: [
{
&quot;bankPayType&quot;: &quot;1&quot;,
&quot;payeeBankProvinceCode&quot;: &quot;11&quot;,
&quot;payeeBankProvinceName&quot;: &quot;北京市&quot;,
&quot;payeeBankCityCode&quot;: &quot;1100&quot;,
&quot;payeeBankCityName&quot;: &quot;北京市&quot;,
&quot;bankCode&quot;: &quot;ICBC&quot;,
&quot;bankName&quot;: &quot;中国工商银行&quot;,
&quot;payee&quot;: &quot;张三&quot;,
&quot;payeeBankCode&quot;: &quot;10209452&quot;,
&quot;payeeBankName&quot;: &quot;北京市工商银行XX分行&quot;,
&quot;accountNo&quot;: &quot;6210812430015711712&quot;,
&quot;accountName&quot;: &quot;xxx&quot;,
&quot;idType&quot;: &quot;01&quot;,
&quot;idNo&quot;: &quot;411024199911267718&quot;,
&quot;payAmount&quot;: &quot;422.0&quot;
}
]
}
}
}
</code></pre>
<p><strong>返回示例</strong></p>
<pre><code> {
&quot;httpResponse&quot;: {
&quot;responseHead&quot;: {
&quot;resultCode&quot;: &quot;000&quot;,
&quot;errorMessage&quot;: &quot;成功&quot;,
&quot;serviceClass&quot;: &quot;HWA005&quot;,
&quot;serviceName&quot;: &quot;autoCommonClaim&quot;
},
&quot;responseBody&quot;: {
&quot;registNo&quot;: &quot;07613108082020000050&quot;
}
}
}</code></pre>
<p><strong>备注</strong></p>
<ul>
<li>无</li>
</ul>
<p><strong>加解密</strong></p>
<ul>
<li>针对userCode进行加密,加密后密文存值userName中</li>
</ul>
<ul>
<li>测试环境私钥:
<pre><code>MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJQYdcMn9YKaIIsQQ+PXXO11EF3IKJ6qugvPAs/oZS/NPKWndVcWBVhSdAD3vd+Vd75VTaHUSI0w55QGbEQCNuVYuWPsCnkpksSjWruUKtSovAYVtchFHMJJKdAU8TiQXIKnhiNowBiT1l4dvt4Xt1gdf1UVWKUzTRIjhO9pUnF/AgMBAAECgYB5TwvvnyTBJWUw5FLoKDpLnE+asmFrjue00o44JeH05QYfn2tDuZsJPQke3dBfe/zJIPDldZE0bnHTU+uNTc8OkDtyrL1y92MdJ+PvzknPyeFeGcPykhgPDoFDWR5fiTaO2seU11CSiUW5TW1TKhwwnSgOH5tZE01CH2qab1SqkQJBANapPYzQAxp15vD3/bUo6Oenjc6iFRdVzYlaU3iCkiyXeOPSwKb+A9OD1UObcRdXpBpA3m2I4X1ChcM0XgnRhscCQQCwnYxP9VIYEWxYDk7TRgIwFMBT7HdHTlSG0CQKHoXGB22bGP65PnSEilEGF/V8P+RrH3hcDGaFq5sG/2PxDyeJAkEAiJ1LA8v6vaNdp+xcNihkGdJkCKbUv3YnCgxHZUHMH78C/BNL8rtk2f9kAdPypIVtdhvks1dTErH8iWBRnPQRTwJBALCR0eVebWSChr7CDyxJoYZQOLeugNFZDkh5bo5vVW5Vns6gfojUV8jqP3bIHTTK66HtJHdiLl0U4zhru48Uh4ECQFkySfVrLRZ3lAtSBX/hOJEmo5pzcAsjXbl2+uwilgjhnFsZy4z3L7RRuEl2oxF9vpAZG3uSuDnlhb3MnuOC93I=</code></pre></li>
<li>测试环境公钥:
<pre><code>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUGHXDJ/WCmiCLEEPj11ztdRBdyCieqroLzwLP6GUvzTylp3VXFgVYUnQA973flXe+VU2h1EiNMOeUBmxEAjblWLlj7Ap5KZLEo1q7lCrUqLwGFbXIRRzCSSnQFPE4kFyCp4YjaMAYk9ZeHb7eF7dYHX9VFVilM00SI4TvaVJxfwIDAQAB</code></pre></li>
</ul>
<pre><code> package com.sinosoft.application.common;
import org.apache.commons.codec.binary.Base64;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.crypto.Cipher;
import java.io.ByteArrayOutputStream;
import java.security.*;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Map;
import java.util.TreeMap;
public class RSASecurityUtil {
/**
* RSA最大加密明文大小
*/
private static final int MAX_ENCRYPT_BLOCK = 117;
/**
* RSA最大解密密文大小
*/
private static final int MAX_DECRYPT_BLOCK = 128;
/**
* 获取密钥对
*
* @return 密钥对
*/
public static KeyPair getKeyPair() throws Exception {
KeyPairGenerator generator = KeyPairGenerator.getInstance(&quot;RSA&quot;);
generator.initialize(1024);
return generator.generateKeyPair();
}
/**
* 获取私钥
*
* @param privateKey 私钥字符串
* @return
*/
public static PrivateKey getPrivateKey(String privateKey) throws Exception {
KeyFactory keyFactory = KeyFactory.getInstance(&quot;RSA&quot;);
byte[] decodedKey = Base64.decodeBase64(privateKey.getBytes());
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(decodedKey);
return keyFactory.generatePrivate(keySpec);
}
/**
* 获取公钥
*
* @param publicKey 公钥字符串
* @return
*/
public static PublicKey getPublicKey(String publicKey) throws Exception {
KeyFactory keyFactory = KeyFactory.getInstance(&quot;RSA&quot;);
byte[] decodedKey = Base64.decodeBase64(publicKey.getBytes());
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(decodedKey);
return keyFactory.generatePublic(keySpec);
}
/**
* RSA加密
*
* @param data 待加密数据
* @param publicKey 公钥
* @return
*/
public static String encrypt(String data, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance(&quot;RSA&quot;);
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
int inputLen = data.getBytes().length;
ByteArrayOutputStream out = new ByteArrayOutputStream();
int offset = 0;
byte[] cache;
int i = 0;
// 对数据分段加密
while (inputLen - offset &gt; 0) {
if (inputLen - offset &gt; MAX_ENCRYPT_BLOCK) {
cache = cipher.doFinal(data.getBytes(), offset, MAX_ENCRYPT_BLOCK);
} else {
cache = cipher.doFinal(data.getBytes(), offset, inputLen - offset);
}
out.write(cache, 0, cache.length);
i++;
offset = i * MAX_ENCRYPT_BLOCK;
}
byte[] encryptedData = out.toByteArray();
out.close();
// 获取加密内容使用base64进行编码,并以UTF-8为标准转化成字符串
// 加密后的字符串
return new String(Base64.encodeBase64(encryptedData));
}
/**
* RSA解密
*
* @param data 待解密数据
* @param privateKey 私钥
* @return
*/
public static String decrypt(String data, PrivateKey privateKey) throws Exception {
Cipher cipher = Cipher.getInstance(&quot;RSA&quot;);
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] dataBytes = Base64.decodeBase64(data.getBytes());
int inputLen = dataBytes.length;
ByteArrayOutputStream out = new ByteArrayOutputStream();
int offset = 0;
byte[] cache;
int i = 0;
// 对数据分段解密
while (inputLen - offset &gt; 0) {
if (inputLen - offset &gt; MAX_DECRYPT_BLOCK) {
cache = cipher.doFinal(dataBytes, offset, MAX_DECRYPT_BLOCK);
} else {
cache = cipher.doFinal(dataBytes, offset, inputLen - offset);
}
out.write(cache, 0, cache.length);
i++;
offset = i * MAX_DECRYPT_BLOCK;
}
byte[] decryptedData = out.toByteArray();
out.close();
// 解密后的内容
return new String(decryptedData, &quot;UTF-8&quot;);
}
/**
* 签名
*
* @param data 待签名数据
* @param privateKey 私钥
* @return 签名
*/
public static String sign(String data, PrivateKey privateKey) throws Exception {
byte[] keyBytes = privateKey.getEncoded();
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance(&quot;RSA&quot;);
PrivateKey key = keyFactory.generatePrivate(keySpec);
Signature signature = Signature.getInstance(&quot;MD5withRSA&quot;);
signature.initSign(key);
signature.update(data.getBytes(&quot;UTF-8&quot;));
return new String(Base64.encodeBase64(signature.sign()));
}
/**
* 验签
*
* @param srcData 原始字符串
* @param publicKey 公钥
* @param sign 签名
* @return 是否验签通过
*/
public static boolean verify(String srcData, PublicKey publicKey, String sign) throws Exception {
byte[] keyBytes = publicKey.getEncoded();
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance(&quot;RSA&quot;);
PublicKey key = keyFactory.generatePublic(keySpec);
Signature signature = Signature.getInstance(&quot;MD5withRSA&quot;);
signature.initVerify(key);
signature.update(srcData.getBytes(&quot;UTF-8&quot;));
return signature.verify(Base64.decodeBase64(sign.getBytes()));
}
/**
* GET请求,业务参数签名
* @param paramsMap get请求参数的map集合
* @param privateKeyStr 参与签名的私钥
* @return
*/
public static String signForHttpGet(Map&lt;String, String&gt; paramsMap, String privateKeyStr) {
TreeMap&lt;String, String&gt; treeMap = new TreeMap&lt;String, String&gt;(paramsMap);
// 将入参进行排序
String data = treeMap.toString();
String sign = null;
try {
sign = RSASecurityUtil.sign(data, RSASecurityUtil.getPrivateKey(privateKeyStr));
} catch (Exception e) {
e.printStackTrace();
}
return sign;
}
/**
* POST请求,body业务参数签名
* @param bodyEntity post请求的body参数对象
* @param privateKeyStr 参与签名的私钥
* @return
*/
public static String signForHttpPost(Object bodyEntity, String privateKeyStr) {
String json = null;
if (bodyEntity instanceof String) {
json = bodyEntity.toString();
} else {
ObjectMapper mapper = new ObjectMapper();
try {
json = mapper.writeValueAsString(bodyEntity);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
String sign = null;
try {
sign = RSASecurityUtil.sign(json, RSASecurityUtil.getPrivateKey(privateKeyStr));
} catch (Exception e) {
e.printStackTrace();
}
return sign;
}
public static void main(String[] args) throws Exception {
try {
// 生成密钥对
KeyPair keyPair = getKeyPair();
String privateKey = new String(Base64.encodeBase64(keyPair.getPrivate().getEncoded()));
String publicKey = new String(Base64.encodeBase64(keyPair.getPublic().getEncoded()));
System.out.println(&quot;私钥:&quot; + privateKey);
System.out.println(&quot;公钥:&quot; + publicKey);
// RSA加密
String data = &quot;1234&quot;;
String encryptData = encrypt(data, getPublicKey(publicKey));
System.out.println(&quot;加密后内容:&quot; + encryptData);
// RSA解密
String decryptData = decrypt(encryptData, getPrivateKey(privateKey));
System.out.println(&quot;解密后内容:&quot; + decryptData);
// RSA签名
String sign = sign(data, getPrivateKey(privateKey));
// RSA验签
boolean result = verify(data, getPublicKey(publicKey), sign);
System.out.print(&quot;验签结果:&quot; + result);
} catch (Exception e) {
e.printStackTrace();
System.out.print(&quot;加解密异常&quot;);
}
}
}
</code></pre>
<ul>
<li>httpResponse (公共返回信息)</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">字段名称</th>
<th style="text-align: left;">变量名</th>
<th>类型</th>
<th>字段长度</th>
<th>是否可空</th>
<th>是否多值</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">responseHead </td>
<td style="text-align: left;"> (公共返回信息head)</td>
</tr>
<tr>
<td style="text-align: left;">结果代码</td>
<td style="text-align: left;">resultCode</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>000-处理成功,999处理失败</td>
</tr>
<tr>
<td style="text-align: left;">服务代码</td>
<td style="text-align: left;">serviceClass</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>HWA005</td>
</tr>
<tr>
<td style="text-align: left;">服务名称</td>
<td style="text-align: left;">serviceName</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>autoCommonClaim</td>
</tr>
<tr>
<td style="text-align: left;">错误信息</td>
<td style="text-align: left;">errorMessage</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>错误信息</td>
</tr>
<tr>
<td style="text-align: left;">responseBody </td>
<td style="text-align: left;"> (公共返回信息body)</td>
</tr>
<tr>
<td style="text-align: left;">报案号</td>
<td style="text-align: left;">registNo</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td>处理成功时返回,失败时为空</td>
</tr>
</tbody>
</table>
<p><strong>枚举信息</strong></p>
<ul>
<li>赔付信息收款人证件类型</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">代码</th>
<th style="text-align: left;">名称</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">01</td>
<td style="text-align: left;">居民身份证</td>
</tr>
<tr>
<td style="text-align: left;">02</td>
<td style="text-align: left;">居民户口簿</td>
</tr>
<tr>
<td style="text-align: left;">03</td>
<td style="text-align: left;">驾驶证</td>
</tr>
<tr>
<td style="text-align: left;">04</td>
<td style="text-align: left;">军官证</td>
</tr>
<tr>
<td style="text-align: left;">05</td>
<td style="text-align: left;">士兵证</td>
</tr>
<tr>
<td style="text-align: left;">06</td>
<td style="text-align: left;">军官离退休</td>
</tr>
<tr>
<td style="text-align: left;">07</td>
<td style="text-align: left;">中国护照</td>
</tr>
<tr>
<td style="text-align: left;">08</td>
<td style="text-align: left;">异常身份证</td>
</tr>
<tr>
<td style="text-align: left;">09</td>
<td style="text-align: left;">港澳通行证</td>
</tr>
<tr>
<td style="text-align: left;">10</td>
<td style="text-align: left;">台湾通行证</td>
</tr>
<tr>
<td style="text-align: left;">11</td>
<td style="text-align: left;">回乡证</td>
</tr>
<tr>
<td style="text-align: left;">12</td>
<td style="text-align: left;">统一社会信用代码</td>
</tr>
<tr>
<td style="text-align: left;">14</td>
<td style="text-align: left;">外国人永久居留身份证</td>
</tr>
<tr>
<td style="text-align: left;">31</td>
<td style="text-align: left;">组织机构代码证</td>
</tr>
<tr>
<td style="text-align: left;">32</td>
<td style="text-align: left;">营业执照</td>
</tr>
<tr>
<td style="text-align: left;">33</td>
<td style="text-align: left;">税务登记证</td>
</tr>
<tr>
<td style="text-align: left;">34</td>
<td style="text-align: left;">工商登记证</td>
</tr>
<tr>
<td style="text-align: left;">51</td>
<td style="text-align: left;">外国护照</td>
</tr>
<tr>
<td style="text-align: left;">52</td>
<td style="text-align: left;">旅行证</td>
</tr>
<tr>
<td style="text-align: left;">53</td>
<td style="text-align: left;">居留证</td>
</tr>
<tr>
<td style="text-align: left;">55</td>
<td style="text-align: left;">港澳台居民居住证</td>
</tr>
<tr>
<td style="text-align: left;">98</td>
<td style="text-align: left;">武警身份证</td>
</tr>
<tr>
<td style="text-align: left;">99</td>
<td style="text-align: left;">其他证件</td>
</tr>
</tbody>
</table>
<ul>
<li>人伤证件类型</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">代码</th>
<th style="text-align: left;">名称</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">01</td>
<td style="text-align: left;">居民身份证</td>
</tr>
<tr>
<td style="text-align: left;">02</td>
<td style="text-align: left;">居民户口簿</td>
</tr>
<tr>
<td style="text-align: left;">03</td>
<td style="text-align: left;">驾驶证</td>
</tr>
<tr>
<td style="text-align: left;">04</td>
<td style="text-align: left;">军官证</td>
</tr>
<tr>
<td style="text-align: left;">05</td>
<td style="text-align: left;">士兵证</td>
</tr>
<tr>
<td style="text-align: left;">06</td>
<td style="text-align: left;">军官离退休</td>
</tr>
<tr>
<td style="text-align: left;">07</td>
<td style="text-align: left;">中国护照</td>
</tr>
<tr>
<td style="text-align: left;">08</td>
<td style="text-align: left;">异常身份证</td>
</tr>
<tr>
<td style="text-align: left;">09</td>
<td style="text-align: left;">港澳通行证</td>
</tr>
<tr>
<td style="text-align: left;">10</td>
<td style="text-align: left;">台湾通行证</td>
</tr>
<tr>
<td style="text-align: left;">11</td>
<td style="text-align: left;">回乡证</td>
</tr>
<tr>
<td style="text-align: left;">12</td>
<td style="text-align: left;">统一社会信用代码</td>
</tr>
<tr>
<td style="text-align: left;">14</td>
<td style="text-align: left;">外国人永久居留身份证</td>
</tr>
<tr>
<td style="text-align: left;">31</td>
<td style="text-align: left;">组织机构代码证</td>
</tr>
<tr>
<td style="text-align: left;">32</td>
<td style="text-align: left;">营业执照</td>
</tr>
<tr>
<td style="text-align: left;">33</td>
<td style="text-align: left;">税务登记证</td>
</tr>
<tr>
<td style="text-align: left;">34</td>
<td style="text-align: left;">工商登记证</td>
</tr>
<tr>
<td style="text-align: left;">51</td>
<td style="text-align: left;">外国护照</td>
</tr>
<tr>
<td style="text-align: left;">52</td>
<td style="text-align: left;">旅行证</td>
</tr>
<tr>
<td style="text-align: left;">53</td>
<td style="text-align: left;">居留证</td>
</tr>
<tr>
<td style="text-align: left;">55</td>
<td style="text-align: left;">港澳台居民居住证</td>
</tr>
<tr>
<td style="text-align: left;">98</td>
<td style="text-align: left;">武警身份证</td>
</tr>
<tr>
<td style="text-align: left;">99</td>
<td style="text-align: left;">其他证件</td>
</tr>
</tbody>
</table>
<p>欢迎使用ShowDoc!</p>