package com.ydtech.modules.ins.model.yc; import com.ydtech.utils.Base64Utils; import com.ydtech.utils.StringUtils; import lombok.Data; import java.io.Serializable; import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * 回调请求参数 * * @author: lig * @date: 2023年02月17日 0017 */ @Data public class CallBackRequest implements Serializable { /** * 交易流水号 * 与支付时相同 支付使用 */ private String transNo; /** * 回调类型 * 0 支付回调 1承保回调 */ private String type; /** * 回调结果 * 0 成功,1 失败 */ private String result; /** * 商业险保单号 * Type为1 且投保商业险时有值 */ private String bizPolicyNo; /** * 交强险保单号 * Type为1 且投保交强险时有值 */ private String ciPolicyNo; /** * 失败原因 * 回调结果失败时有值 */ private String message; /** * 商业险投保单号 * 报价时产生 */ private String bizPolicyAppNo; /** * 交强险投保单号 * 报价时产生 */ private String ciPolicyAppNo; /** * 意外险保单号 * 报价时产生 */ private String ywPolicyNo; /** * 意外险投保单号 * 报价时产生 */ private String ywPolicyAppNo; /** * 投保单状态 * 0待核保 5上报复核 9已核保未交费 3退回修改 1已核保且交费 */ private String status; /** * 交强 投保单状态 * 0待核保 5上报复核 9已核保未交费 3退回修改 1已核保且交费 */ private String jqstatus; /** * 交强 消息 */ private String jqmessage; /** * 商业 投保单状态 * 0待核保 5上报复核 9已核保未交费 3退回修改 1已核保且交费 */ private String systatus; /** * 商业 消息 */ private String symessage; /** * 备注 */ private String remark; public static CallBackRequest buildCallBackParam(String str) { CallBackRequest cbr = new CallBackRequest(); if (StringUtils.isNotEmpty(str)) { String str222 = Base64Utils.getBase64Decode(str); String str333 = str222.replaceAll("\n", ""); String paramStr = Base64Utils.getBase64Decode(str333); String[] paramArr = paramStr.split("&"); Map reqMap = new HashMap<>(); Arrays.stream(paramArr).forEach(a -> { String[] pArr = a.split("="); reqMap.put(pArr[0], pArr.length > 1 ? pArr[1] : ""); }); cbr.setTransNo(StringUtils.toString(reqMap.get("transNo"))); cbr.setType(StringUtils.toString(reqMap.get("type"))); cbr.setResult(StringUtils.toString(reqMap.get("result"))); cbr.setBizPolicyNo(StringUtils.toString(reqMap.get("biz_policy_no"))); cbr.setCiPolicyNo(StringUtils.toString(reqMap.get("ci_policy_no"))); cbr.setMessage(StringUtils.toString(reqMap.get("message"))); cbr.setBizPolicyAppNo(StringUtils.toString(reqMap.get("biz_policy_app_no"))); cbr.setCiPolicyAppNo(StringUtils.toString(reqMap.get("ci_policy_app_no"))); cbr.setStatus(StringUtils.toString(reqMap.get("status"))); cbr.setRemark(StringUtils.toString(reqMap.get("remark"))); cbr.setJqstatus(StringUtils.toString(reqMap.get("jqstatus"))); cbr.setSystatus(StringUtils.toString(reqMap.get("systatus"))); cbr.setJqmessage(StringUtils.toString(reqMap.get("jqmessage"))); cbr.setSymessage(StringUtils.toString(reqMap.get("symessage"))); cbr.setYwPolicyNo(StringUtils.toString(reqMap.get("yw_policy_no"))); cbr.setYwPolicyAppNo(StringUtils.toString(reqMap.get("yw_policy_app_no"))); } return cbr; } public static void main(String[] args) { String s = "ZEhKaGJuTk9iejB4TkRBd01EZ3pNVEV5TURjME9UQTRKblI1Y0dVOU5TWnlaWE4xYkhROU1DWmlhWHBmY0c5c2FXTjVYMjV2UFNaagphVjl3YjJ4cFkzbGZibTg5TVRFMFFqZ3dNekkyTWpBeU16QXdNVEF4TmpjbVltbDZYM0J2YkdsamVWOWhjSEJmYm04OUptTnBYM0J2CmJHbGplVjloY0hCZmJtODlOVEUwUWpnd016STJNakF5TXpBd01UQXhOamNtZVhkZmNHOXNhV041WDJGd2NGOXViejBtZVhkZmNHOXMKYVdONVgyNXZQU1pxY1hOMFlYUjFjejB4Sm5ONWMzUmhkSFZ6UFNacWNXMWxjM05oWjJVOVFWVlVUenJqZ0pEbW9Mamt2NTNwZ0pybwp2NGZqZ0pFajU1UzE1YTJRNVpXRzVZcWg1TGlhNVlxaExlZTlrZW1VZ0NaemVXMWxjM05oWjJVOUpuQmhlVjlrWVhSbFBUSXdNak10Ck1EZ3RNekVnTVRRNk1USTZOVGM9"; CallBackRequest cbr = CallBackRequest.buildCallBackParam(s); } }