PayDTO.java 3.23 KB
package com.infoloop.tianting.model.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@ApiModel(description = "支付DTO")
public class PayDTO {

  @Data
  @ApiModel(description = "支付请求dto")
  @NoArgsConstructor
  @AllArgsConstructor
  public static class PayInformRequestDto {
    private String clientId;
    private String orderId;
    private String hospitalCode;
    private String price;
    private String phone;
  }

  @Data
  @ApiModel(description = "支付撤销请求dto")
  @NoArgsConstructor
  @AllArgsConstructor
  public static class PayRefundRequestDto {
    private Integer orderId;
    private List<Integer> orderDetailIds;
    private String hospitalCode;
  }

  @Data
  @ApiModel(description = "支付MiniPay结果")
  @NoArgsConstructor
  @AllArgsConstructor
  @JacksonXmlRootElement(localName = "miniPayRequest")
  public static class MiniPayRequest {
    @JacksonXmlProperty(localName = "timeStamp")
    private String timeStamp;
    @JacksonXmlProperty(localName = "package")
    private String packageInfo;
    @JacksonXmlProperty(localName = "paySign")
    private String paySign;
    @JacksonXmlProperty(localName = "appId")
    private String appId;
    @JacksonXmlProperty(localName = "signType")
    private String signType;
    @JacksonXmlProperty(localName = "nonceStr")
    private String nonceStr;
  }

  @Data
  @ApiModel(description = "支付结果")
  @NoArgsConstructor
  @AllArgsConstructor
  public static class PayResult{
    @JacksonXmlProperty(localName = "TransSN")
    private String TransSN;
    @JacksonXmlProperty(localName = "MsgId")
    private String MsgId;
    @JacksonXmlProperty(localName = "tradeId")
    private String tradeId;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JacksonXmlProperty(localName = "miniPayRequest")
    private MiniPayRequest miniPayRequest;
  }

  @Data
  @ApiModel(description = "支付响应")
  @NoArgsConstructor
  @AllArgsConstructor
  @JacksonXmlRootElement(localName = "JSONObject")
  public static class PayResponseDto {
    @JacksonXmlProperty(localName = "success")
    private Boolean success;
    @JacksonXmlProperty(localName = "error")
    private String error;
    @JacksonXmlProperty(localName = "result")
    private PayResult result;
  }

  @Data
  @ApiModel(description = "取消支付响应")
  @NoArgsConstructor
  @AllArgsConstructor
  public static class CancelPayResponseDto {
    private Integer code;
    private String message;
  }

  @Data
  @Builder
  @ApiModel(description = "第三方支付平台通知请求dto")
  @NoArgsConstructor
  @AllArgsConstructor
  public static class ThirdPartyPayInformRequestDto {
    private String ClientId;
    private String TradeId;
    private String RequestDate;
    private String RequestSource;
    private String PayerOpenId;
    private String HospitalCode;
    private String PID;
    private String Remark;
    private String TransAmount;
    private String TradeDesc;
    private String Sign;
  }
}