All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.binarywang.wxpay.bean.result.WxSignStatusNotifyResult Maven / Gradle / Ivy

The newest version!
package com.github.binarywang.wxpay.bean.result;

import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import me.chanjar.weixin.common.util.xml.XStreamInitializer;
import org.w3c.dom.Document;

/**
 * @author chenliang
 * created on  2021-08-02 4:59 下午
 * 
 *   微信签约/解约 回调结果
 * 
*/ @Data @EqualsAndHashCode(callSuper = true) @NoArgsConstructor @XStreamAlias("xml") public class WxSignStatusNotifyResult extends BaseWxPayResult { private static final long serialVersionUID = 1L; /** * 签约协议号 */ @XStreamAlias("contract_code") private String contractCode; /** * 模板ID */ @XStreamAlias("plan_id") private String planId; /** * 用户表示 */ @XStreamAlias("openid") private String openId; /** * 变更类型, ADD:签约,DELETE:解约 */ @XStreamAlias("change_type") private String changeType; /** * 操作时间 */ @XStreamAlias("operate_time") private String operateTime; /** * 委托代扣协议ID */ @XStreamAlias("contract_id") private String contractId; /** * 协议到期时间,ADD会有,长期有效,忽略 * 非必传 */ @XStreamAlias("contract_expired_time") private String contractExpiredTime; /** * DELETE时返回,0: 未解约,1:有效期过期自动解约,2:用户主动解约,3:商户api解约,4:商户平台解约,5:用户账号注销 * 非必传 */ @XStreamAlias("contract_termination_mode") private Integer contractTerminationMode; /** * 请求序列号 */ @XStreamAlias("request_serial") private Long requestSerial; @Override public void checkResult(WxPayService wxPayService, String signType, boolean checkSuccess) throws WxPayException { //防止伪造成功通知 if (WxPayConstants.ResultCode.SUCCESS.equals(getReturnCode()) && getSign() == null) { throw new WxPayException("伪造的通知!"); } super.checkResult(wxPayService, signType, checkSuccess); } /** * From xml wx sign notify result. * * @param xmlString the xml string * @return the wx sign result */ public static WxSignStatusNotifyResult fromXML(String xmlString) { XStream xstream = XStreamInitializer.getInstance(); xstream.processAnnotations(WxSignStatusNotifyResult.class); WxSignStatusNotifyResult result = (WxSignStatusNotifyResult) xstream.fromXML(xmlString); result.setXmlString(xmlString); return result; } @Override protected void loadXml(Document d) { contractCode = readXmlString(d, "contract_code"); planId = readXmlString(d, "plan_id"); openId = readXmlString(d, "openid"); changeType = readXmlString(d, "change_type"); operateTime = readXmlString(d, "operate_time"); contractId = readXmlString(d, "contract_id"); contractExpiredTime = readXmlString(d, "contract_expired_time"); contractTerminationMode = readXmlInteger(d, "contract_termination_mode"); requestSerial = readXmlLong(d, "request_serial"); } @Override public String toString() { return WxGsonBuilder.create().toJson(this); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy