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>
生产接口地址:
核心生产外网:<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>因加密后存在特殊字符,需要针对整个报文进行urlencode转码</li>
<li>在线转码地址:<a href="http://www.jsons.cn/urlencode">http://www.jsons.cn/urlencode</a></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-渠道来源-时间戳。希望保--HopeBao, 示例:TACommon-HopeBao-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>date</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>出险的省(省编码),广东省_440000后的编码code</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>出险的市(市编码),广州市_440100后的编码code</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>出险原因:401-疾病 402-意外</td>
</tr>
<tr>
<td style="text-align: left;">赔付责任类型</td>
<td style="text-align: left;">paidDutyType</td>
<td>String</td>
<td>10</td>
<td>no</td>
<td>no</td>
<td>出险原因401疾病对应责任为200疾病医疗、201疾病伤残、202疾病死亡、204疾病大病;出险原因402意外对应责任为100意外医疗、101意外伤残、102意外死亡、104意外大病、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>报案来源:希望保--HopeBao</td>
</tr>
<tr>
<td style="text-align: left;">险别信息</td>
<td style="text-align: left;">List</td>
<td>kindList</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;">projectCode</td>
<td>String</td>
<td>no</td>
<td>no</td>
<td><strong>希望保使用</strong></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>险别编码,例 学生平安意外伤害医疗保险1107180</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>损失对象类型: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;">sex</td>
<td>String</td>
<td>no</td>
<td>CY(人伤必填)</td>
<td>人伤性别。1-男,2-女。传值数字</td>
</tr>
<tr>
<td style="text-align: left;">人伤证件类型</td>
<td style="text-align: left;">identifyType</td>
<td>String</td>
<td>no</td>
<td>CY(人伤必填)</td>
<td>人伤证件类型。必传</td>
</tr>
<tr>
<td style="text-align: left;">人伤证件号</td>
<td style="text-align: left;">identifyNo</td>
<td>String</td>
<td>no</td>
<td>CY(人伤必填)</td>
<td>人伤证件号。必传</td>
</tr>
<tr>
<td style="text-align: left;">人伤年龄</td>
<td style="text-align: left;">age</td>
<td>String</td>
<td>no</td>
<td>CY(人伤必填)</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>损失明细枚举(代码-名称):人伤损失:学生平安意外伤害医疗保险04-医疗费;意外身故伤残保险责任03-伤残赔偿金;学生住院医疗补助保险04-医疗费;疾病身故保险责任03-伤残赔偿金 。<strong>损失明细枚举(代码-名称):车物损失:01-物损费用;人伤损失:01-死亡赔偿金、03-伤残赔偿金、04-医疗费、05-误工费、12-营养费、16-其它;</strong>传值对应费用编码</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>赔付比例,传值100</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>
</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-HopeBao-1592292706&quot;,
&quot;userName&quot;: &quot;Tuxy/bHcJinqTiCMQkunzdfAE0D3BFOSFzDd+Gpg/W32+ssf4N0MLv/ht1k2bzRenjOqvLgFucGgjBrm9pRCnbvBlpgybgP1UaHz5zFW4s6KwnhLMjZh7tfkqKVlpYmU9t6pakuWTvtatMq6KwxKScojv2ebWL5w0V9KFgr6eoA=&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;402&quot;,
&quot;lossFee&quot;: &quot;100.00&quot;,
&quot;reportResource&quot;: &quot;HopeBao&quot;,
&quot;kindList&quot;: [
{
&quot;lossType&quot;: &quot;2&quot;,
&quot;lossName&quot;: &quot;张无忌&quot;,
&quot;sex&quot;: &quot;1&quot;,
&quot;identifyType&quot;: &quot;01&quot;,
&quot;identifyNo&quot;: &quot;450200198807169335&quot;,
&quot;age&quot;: &quot;34&quot;,
&quot;kindCode&quot;: &quot;1107096&quot;,
&quot;chargeCode&quot;: &quot;03&quot;,
&quot;chargeName&quot;: &quot;伤残赔偿金&quot;,
&quot;undwrtRate&quot;: &quot;100&quot;,
&quot;paidAmount&quot;: &quot;100.00&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>人伤证件类型</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;">550</td>
<td style="text-align: left;">港澳台居民居住证</td>
</tr>
<tr>
<td style="text-align: left;">551</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>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">8901010</td>
<td style="text-align: left;">非机动车第三者人员伤亡及财产损失责任</td>
<td>敬之:物,三者人</td>
</tr>
<tr>
<td style="text-align: left;">8901004</td>
<td style="text-align: left;">意外伤害身故、伤残</td>
<td>敬之:出现人为被保险人,根据实际情况传值</td>
</tr>
<tr>
<td style="text-align: left;">8901007</td>
<td style="text-align: left;">意外医疗保险</td>
<td>敬之:出现人为被保险人,根据实际情况传值</td>
</tr>
<tr>
<td style="text-align: left;">8901008</td>
<td style="text-align: left;">猝死保险</td>
<td>敬之:出现人为被保险人,根据实际情况传值</td>
</tr>
</tbody>
</table>
<p><strong>加解密</strong></p>
<ul>
<li>针对userCode进行加密,加密后密文存值userName中
--密钥群里或者邮件提供</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>
<ul>
<li>接口编号说明</li>
</ul>
<p>欢迎使用ShowDoc!</p>