中付-机构交易流水通知内容

2023-12-19 00:39:00

把你的接口部署到线上之后,跟中付的人说一下,他们就会把你的接口与你的服务商号进行关联。

每当有自己服务商名下pos机交易时就会自动推送到你的接口,这不是实时的,可能会有几分钟的延时。

dataList是一个数组,一般为一个元素,但是有时候会有多个元素。

{
    "configAgentId": "87200005",
    "dataList": [
        {
            "sysRespDesc": "交易[]返回[00]:交易成功",
            "agentId": "87200005",
            "amount": "100000",
            "batchNo": "000004",
            "authCode": "170010",
            "sysRespCode": "00",
            "traceNo": "000351",
            "settleAmount": "99400",
            "cardType": "0",
            "settleDate": "20200422",
            "mobileNo": "180****0000",
            "feeType": "B",
            "cardNo": "623094*********2550",
            "termModel": "T3",
            "merchLevel": "2",
            "merchantName": "新乡餐饮(测试商户)个体商户冯",
            "rrn": "170009361911",
            "sysTraceNo": "000351",
            "termId": "01612571",
            "termSn": "00005702230010000103",
            "tranTime": "20200421170009",
            "merchantId": "872491555410010",
            "inputMode": "072",
            "tranCode": "020000"
        },
        {
            "sysRespDesc": "交易[]返回[00]:交易成功",
            "agentId": "87200005",
            "amount": "1",
            "batchNo": "000001",
            "authCode": "170016",
            "sysRespCode": "00",
            "traceNo": "000050",
            "settleAmount": "1",
            "cardType": "0",
            "settleDate": "20200422",
            "mobileNo": "180****0000",
            "feeType": "B",
            "cardNo": "621483******5142",
            "termModel": "F7",
            "merchLevel": "2",
            "merchantName": "个体商户冯",
            "rrn": "170016361912",
            "sysTraceNo": "000050",
            "termId": "01612605",
            "termSn": "00000304R1NL00000361",
            "tranTime": "20200421170016",
            "merchantId": "872491555410010",
            "inputMode": "911",
            "tranCode": "020000"
        }
    ],
    "sendBatchNo": "000200",
    "sendNum": 2,
    "sendTime": "20200421170019",
    "sign": "26958a257194a457e1cc5f1c0745545c",
    "transDate": "20200421"
}

对应的java实体类:
?

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("commercial_tenant_order_zf")
public class CommercialTenantOrderZF {

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 020000	消费	加款
     * 020002	消费撤销	减款
     * 020003	消费冲正	减款
     * 020023	消费撤销冲正	加款
     * U20000	电子现金	加款
     * T20003	日结消费冲正	减款
     * T20000	日结消费	加款
     * 024100	预授权完成	加款
     * 024102	预授权完成撤销	减款
     * 024103	预授权完成冲正	减款
     * 024123	预授权完成撤销 冲正	加款
     * 020001	退货	减款
     */

    @TableField("tranCode")
    private String tranCode; // 交易码,根据这个判断他的交易类型

    @TableField("agentId")
    private String agentId; // 商户直属机构号

    @TableField("tranTime")
    private String tranTime; // 交易时间

    @TableField("cardNo")
    private String cardNo; // 卡号ji

    @TableField("traceNo")
    private String traceNo; // 凭证号

    @TableField("sysTraceNo")
    private String sysTraceNo; // 系统流水号

    @TableField("channelTraceNo")
    private String channelTraceNo; // 渠道凭证号

    @TableField("channelSerialNo")
    private String channelSerialNo; // 渠道流水号

    @TableField("channelRrn")
    private String channelRrn; // 渠道参考号

    @TableField("rrn")
    private String rrn; // 参考号

    @TableField("authCode")
    private String authCode; // 授权码

    @TableField("batchNo")
    private String batchNo; // 终端批次号

    @TableField("orderId")
    private String orderId; // 订单号

    @TableField("inputMode")
    private String inputMode; // 输入方式

    @TableField("cardType")
    private String cardType; // 卡类型

    @TableField("bankName")
    private String bankName; // 发卡行

    @TableField("merchantId")
    private String merchantId; // 商户号

    @TableField("merchLevel")
    private String merchLevel; // 商户类别

    @TableField("termId")
    private String termId; // 终端号

    @TableField("termSn")
    private String termSn; // 终端SN

    @TableField("termModel")
    private String termModel; // 终端型号

    @TableField("mobileNo")
    private String mobileNo; // 商户手机号

    @TableField("merchantName")
    private String merchantName; // 商户名称

    @TableField("amount")
    private BigDecimal amount; // 交易金额

    @TableField("o_amount")
    private BigDecimal oAmount; // 交易金额备用字段

    @TableField("settleAmount")
    private BigDecimal settleAmount; // 结算金额

    @TableField("feeType")
    private String feeType; // 手续费计算类型

    @TableField("settleDate")
    private String settleDate; // 清算日期

    @TableField("sysRespCode")
    private String sysRespCode; // 收单平台应答码

    @TableField("sysRespDesc")
    private String sysRespDesc; // 收单平台应答描述

    @TableField("createtime")
    private String createtime; // 写入平台时间

    @TableField("updatetime")
    private String updatetime; // 修改时间

    @TableField("is_chuli")
    private Boolean isChuli; // 订单状态

    @TableField("logno")
    private String logno; // 交易日期+参考号

    public Boolean getChuli() {
        if (this.isChuli == null)
            return false;
        return isChuli;
    }

    public String getLogno() {
        if (logno == null)
            return "";
        return logno;
    }
}

对应的数据表sql:
?

CREATE TABLE `commercial_tenant_order_zf`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `tranCode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '交易码\r\n020000	消费\r\n020002	消费撤销\r\n020003	消费冲正\r\n020023	消费撤销冲正\r\nU20000	电子现金\r\nT20003	日结消费冲正\r\nT20000	日结消费\r\n024100	预授权完成\r\n024102	预授权完成撤销\r\n024103	预授权完成冲正\r\n024123	预授权完成撤销 冲正\r\n020001	退货\r\n02B100	支付宝被扫\r\n02B200	支付宝主扫\r\n02W100	微信被扫\r\n02W200	微信主扫\r\n02Y100	银联被扫\r\n02Y200	银联主扫\r\n02Y600	银联二维码撤销\r\n02W100	微信被扫\r\n02W200	微信主扫\r\n02Y100	银联被扫\r\n02Y200	银联主扫\r\n02Y600	银联二维码撤销',
  `agentId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商户直属机构号',
  `tranTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '交易时间 YYYYMMDDHHmmss',
  `cardNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '卡号',
  `traceNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '凭证号',
  `sysTraceNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '系统流水号',
  `channelTraceNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '渠道凭证号',
  `channelSerialNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '渠道流水号',
  `channelRrn` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '渠道参考号',
  `rrn` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参考号',
  `authCode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '授权码',
  `batchNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '终端批次号',
  `orderId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号',
  `inputMode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '输入方式\r\n000	未指明\r\n011	手工凭密\r\n012	手工无密\r\n021	磁条凭密\r\n022	磁条无密\r\n051	IC卡凭密\r\n052	IC卡无密\r\n071	闪付凭密\r\n072	闪付无密\r\n031 	被扫(B 扫C)\r\n032	主扫(C 扫 B)',
  `cardType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '卡类型 0:借记卡,1:信用卡',
  `bankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发卡行',
  `merchantId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商户号',
  `merchLevel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商户类别 1 - A类商户; 2 - B类商户; 3 - C类商户; 4 - Z 类商户',
  `termId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '终端号',
  `termSn` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '终端SN',
  `termModel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '终端型号',
  `mobileNo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商户手机号',
  `merchantName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商户名称',
  `amount` decimal(20, 4) NULL DEFAULT NULL COMMENT '交易金额',
  `o_amount` decimal(20, 4) NULL DEFAULT NULL COMMENT '交易金额备用字段',
  `settleAmount` decimal(20, 4) NULL DEFAULT NULL COMMENT '结算金额',
  `feeType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手续费计算类型 Y - 优惠,M - 减免,B - 标准,YN - 云闪付NFC, YM - 云闪付双免 ',
  `settleDate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '清算日期',
  `sysRespCode` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收单平台应答码\r\n00	交易成功\r\n01	请持卡人与发卡银行联\r\n03	无效商户\r\n04	此卡被没收\r\n05	持卡人认证失败\r\n07	没收卡\r\n10	交易成功,但为部分承兑\r\n11	成功,VIP 客户\r\n12	无效交易\r\n13	无效金额\r\n14	无效卡号\r\n15	此卡无对应发卡方\r\n21	该卡未初始化或睡眠卡\r\n22	操作有误,或超出交易允许天数\r\n25	没有原始交易记录\r\n30	请重试\r\n34	作弊卡\r\n38	密码错误次数超限,请与发卡方联系\r\n40	发卡方不支持的交易类型\r\n41	挂失卡\r\n42	此卡为黑卡\r\n43	被窃卡\r\n45	交易失败,请使用芯片\r\n51	可用余额不足\r\n54	该卡已过期\r\n55	密码错\r\n57	不允许此卡交易\r\n58	发卡方不允许该卡在本终端进行此交易\r\n59	卡片校验错\r\n61	交易金额超限\r\n62	受限制的卡\r\n64	交易金额与原交易不匹配\r\n65	超出消费次数限制\r\n68	交易超时,请重试\r\n75	密码错误次数超限\r\n90	系统日切,请稍后重试\r\n91	发卡方状态不正常,请稍后重试\r\n92	发卡方线路异常,请稍后重试\r\n94	拒绝,重复交易,请稍后重试\r\n96	拒绝,系统出错,请稍后重试\r\n97	终端未登记\r\n98	发卡方超时\r\n99	PIN格式错,请重新签到\r\nA0	MAC校验错,请重新签到\r\nA1	转账货币不一致\r\nA2	交易成功,请向发卡行确认\r\nA3	账户不正确\r\nA4	交易成功,请向发卡行确认\r\nA5	交易成功,请向发卡行确认\r\nA6	交易成功,请向发卡行确认\r\nA7	拒绝,系统异常,请稍后重试\r\nB1	收单方不允许本商户进行此交易\r\nB2	收单方不允许该种卡在本商户进行交易\r\nB3	商户不支持免密交易\r\nB4	交易失败,IC借记卡单笔金额超限\r\nB5	交易失败,IC借记卡单日金额超限\r\nB6	交易失败,IC借记卡当月金额超限\r\nB7	交易失败,二维码单笔金额超限\r\nB8	交易失败,二维码单日金额超限\r\nB9	交易失败,二维码单日金额超限\r\nBA	交易失败,磁条借记卡单笔金额超限\r\nBB	交易失败,磁条借记卡单日金额超限\r\nBC	交易失败,磁条借记卡当月金额超限\r\nBD	商户资料不全,无法交易\r\nC0	交易失败,不支持信用卡交易\r\nC1	交易失败,终端未开通\r\nC2	交易失败,商户未开通\r\nC3	交易失败,IC信用卡单笔金额超限\r\nC4	交易失败,IC信用卡单日金额超限',
  `sysRespDesc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收单平台应答描述',
  `createtime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '写入平台时间',
  `updatetime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改时间',
  `is_chuli` tinyint(1) NOT NULL DEFAULT 0 COMMENT '订单状态  0未处理 1已处理',
  `logno` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '交易日期+参考号 确定 唯一 一笔交易',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1655 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '中付--交易流水' ROW_FORMAT = COMPACT;

Controller直接用@RequestBody接收就行。
?

@RestController
@RequestMapping("/admin/CommercialTenantOrderZF")
public class CommercialTenantOrderZFController {

    @Autowired
    CommercialTenantOrderZFService commercialTenantOrderZFService;

    /**
     * 中付推送到这个接口上,对应文档:服务商交易通知API文档-V1->机构交易流水通知内容
     * @param commercialTenantOrderZFPush,中付推送的:”机构交易流水流水通知“
     * @return
     */
    @PostMapping("/add")
    public ResponseResult add(@RequestBody CommercialTenantOrderZFPush<CommercialTenantOrderZF> commercialTenantOrderZFPush) {
        return commercialTenantOrderZFService.add(commercialTenantOrderZFPush);
    }
}

文章来源:https://blog.csdn.net/LYXlyxll/article/details/135073251
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。