支付回调模板
<p>支付回调地址
测试环境 <a href="https://uat-miapi.ins10.cn/rpa/rpa/callback/****callback">https://uat-miapi.ins10.cn/rpa/rpa/callback/****callback</a>
生产环境 <a href="https://miapi.ins10.cn/rpa/rpa/callback/****callback">https://miapi.ins10.cn/rpa/rpa/callback/****callback</a></p>
<p>支付回调主要就是给万家传的内容.
关键就是组装 result 参数</p>
<p><strong>写法如下</strong></p>
<pre><code class="language-java">ServiceResult result = new ServiceResult();
/****/
//自己写逻辑取得保单号,投保单号以及订单状态.
/*****/
HashMap<String, Object> map = new HashMap<>();
map.put("flowId",AppOrderNo);
map.put("orderState","8");
map.put("policyNo",policyNo);
map.put("mtplPolicyNo",mtplPolicyNo);
map.put("proposalNo",proposal);
map.put("proposalMptl",proposalMptl);
result.setResult(map);
result.setSuccess();
HttpAndHttpsUtil.postJsonReturnJsonSt(byFlowId==null?"":byFlowId.getStatusCallBackUrl(), JSON.toJSONString(result),"UTF-8");//回写利宝万家状态</code></pre>
<p>下面是安诚的模板</p>
<pre><code class="language-java">@Override
public String payCallBack(String xml) {
log.info(xml);
if(StringUtils.isBlank(xml)){
return "";
}
ServiceResult result = new ServiceResult();
try {
String policyNo="";
String mtplPolicyNo="";
cn.hutool.json.JSONObject requestBodTmp = XML.toJSONObject(xml);
JSONObject xmlObj = JSON.parseObject(requestBodTmp.toString());
JSONObject packet = xmlObj.getJSONObject("Packet");
JSONObject head = packet.getJSONObject("Head");
String ErrorCode = head.getString("ErrorCode");
if(!"0000".equals(ErrorCode) ){
return "Success";
}
JSONObject Body = packet.getJSONObject("Body");
String AppOrderNo = Body.getString("AppOrderNo");
if(Strings.isNullOrEmpty(AppOrderNo)){return "Success";}
JSONObject policyList = Body.getJSONObject("PolicyList");
Object PolicyItem = policyList.get("PolicyItem");
JSONArray orderInfo = new JSONArray();
if(PolicyItem instanceof JSONObject ){
orderInfo.add(policyList.getJSONObject("PolicyItem"));
}else{
orderInfo=policyList.getJSONArray("PolicyItem");
}
// policyList.getJSONArray("PolicyItem");
TbRpaTask byFlowId = tbRpaTaskRepository.findByFlowId(AppOrderNo);
if(byFlowId!=null){
tbRpaTaskRepository.updateState("成功", DateUtil.getBeiJinDate(),AppOrderNo);
}
String proposal = "";//byFlowId.getProposal();//数据库商业险
String proposalMptl = "";// byFlowId.getProposalMptl();//数据库交强险
if (orderInfo!=null&&orderInfo.size()>0){
if (orderInfo.size()==2){
//联合单 0330:交强险 //0333:商业险
if ("0333".equals(orderInfo.getJSONObject(0).getString("ProdNo"))){
//商业险
policyNo = orderInfo.getJSONObject(0).getString("PolicyNo");//商业险保单号
proposal = orderInfo.getJSONObject(0).getString("ConfirmNo");//商业险投保单号
mtplPolicyNo = orderInfo.getJSONObject(1).getString("PolicyNo");//交强险保单号
proposalMptl = orderInfo.getJSONObject(1).getString("ConfirmNo");//交强险投保单号
}else{
mtplPolicyNo = orderInfo.getJSONObject(0).getString("PolicyNo");//交强险保单号
proposalMptl = orderInfo.getJSONObject(0).getString("ConfirmNo");//交强险投保单号
policyNo = orderInfo.getJSONObject(1).getString("PolicyNo");//商业险保单号
proposal = orderInfo.getJSONObject(1).getString("ConfirmNo");//商业险投保单号
}
}else{
if ("0333".equals(orderInfo.getJSONObject(0).getString("ProdNo"))){
//单商
policyNo = orderInfo.getJSONObject(0).getString("PolicyNo");//商业险保单号
proposal = orderInfo.getJSONObject(0).getString("ConfirmNo");//商业险投保单号
}else{
//单交
mtplPolicyNo = orderInfo.getJSONObject(0).getString("PolicyNo");//交强险保单号
proposalMptl = orderInfo.getJSONObject(0).getString("ConfirmNo");//交强险投保单号
}
}
HashMap<String, Object> map = new HashMap<>();
map.put("flowId",AppOrderNo);
map.put("orderState","8");
map.put("policyNo",policyNo);
map.put("mtplPolicyNo",mtplPolicyNo);
map.put("proposalNo",proposal);
map.put("proposalMptl",proposalMptl);
result.setResult(map);
result.setSuccess();
HttpAndHttpsUtil.postJsonReturnJsonSt(byFlowId==null?"":byFlowId.getStatusCallBackUrl(), JSON.toJSONString(result),"UTF-8");//回写利宝万家状态
return "Success";
}else{
return "Success";
}
} catch (Exception e) {
e.printStackTrace();
return "Success";
}
}</code></pre>