Skip to content

接入微信支付分签约计划 #3162

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Nov 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package com.github.binarywang.wxpay.bean.payscore;

import com.github.binarywang.wxpay.bean.payscore.enums.SignPlanServiceOrderPlanDetailStateEnum;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
* @author UltramanNoa
* @className PartnerUserSignPlanDetail
* @description 签约计划明细列表
* @createTime 2023/11/3 17:19
**/
@Data
@NoArgsConstructor
public class PartnerUserSignPlanDetail implements Serializable {

private static final long serialVersionUID = 2089297485318293622L;
/**
* 计划明细序号
*/
@SerializedName("plan_detail_no")
private Integer planDetailNo;

/**
* 计划明细原支付金额(单位分)
*/
@SerializedName("original_price")
private Integer originalPrice;

/**
* 计划明细优惠说明
*/
@SerializedName("plan_discount_description")
private String planDiscountDescription;

/**
* 计划明细实际支付金额(单位分)
*/
@SerializedName("actual_price")
private Integer actualPrice;

/**
* 计划明细状态
*
* @see SignPlanServiceOrderPlanDetailStateEnum
*/
@SerializedName("plan_detail_state")
private String planDetailState;

/**
* 计划明细对应的支付分服务单号
*/
@SerializedName("order_id")
private String orderId;

/**
* 商户侧计划明细使用订单号
*/
@SerializedName("merchant_plan_detail_no")
private String merchantPlanDetailNo;

/**
* 计划详情名称
*/
@SerializedName("plan_detail_name")
private Integer planDetailName;

/**
* 计划明细对应订单实际支付金额(单位分)
*/
@SerializedName("actual_pay_price")
private Integer actualPayPrice;

/**
* 详情使用时间
*/
@SerializedName("use_time")
private String useTime;

/**
* 详情完成时间
*/
@SerializedName("complete_time")
private String completeTime;

/**
* 详情取消时间
*/
@SerializedName("cancel_time")
private String cancelTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
package com.github.binarywang.wxpay.bean.payscore;

import com.github.binarywang.wxpay.bean.payscore.enums.SignPlanServiceOrderStateEnum;
import com.github.binarywang.wxpay.bean.payscore.enums.UserSignPlanCancelSignTypeEnum;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;

import java.io.Serializable;
import java.util.List;

/**
* @author UltramanNoa
* @className PartnerUserSignPlanEntity
* @description 用户的签约计划
* @createTime 2023/11/3 16:05
**/
@Data
@NoArgsConstructor
public class PartnerUserSignPlanEntity implements Serializable {

private static final long serialVersionUID = -662901613603698430L;

public static PartnerUserSignPlanEntity fromJson(String json) {
return WxGsonBuilder.create().fromJson(json, PartnerUserSignPlanEntity.class);
}


/**
* 待创建服务订单对应的用户的签约计划
*/
@SerializedName("sign_plan_id")
private String signPlanId;

@SerializedName("openid")
private String openid;

/**
* <pre>
* 字段名:二级商户用户标识
* 变量名:sub_openid
* 是否必填:否
* 类型:string(128)
* 描述:
* 用户在二级商户appid下的唯一标识。
* 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
* </pre>
*/
@SerializedName(value = "sub_openid")
private String subOpenid;


@SerializedName("service_id")
private String serviceId;

@SerializedName("mchid")
private String mchid;

/**
* 子商户商户号
*/
@SerializedName("sub_mchid")
private String subMchid;

@SerializedName("appid")
private String appid;

/**
* 子商户AppID
*/
@SerializedName("sub_appid")
private String subAppid;

/**
* 商户签约计划单号
*/
@SerializedName("merchant_sign_plan_no")
private String merchantSignPlanNo;

/**
* 商户回调地址
*/
@SerializedName("merchant_callback_url")
private String merchantCallbackUrl;

/**
* 支付分计划ID
*/
@SerializedName("plan_id")
private String planId;

/**
* 目前用户进行到的计划详情序号
*/
@SerializedName("going_detail_no")
private Integer goingDetailNo;

/**
* 计划签约状态
*
* @see SignPlanServiceOrderStateEnum
*/
@SerializedName("sign_state")
private String signState;

/**
* 签约计划取消时间
*/
@SerializedName("cancel_sign_time")
private String cancelSignTime;

/**
* 签约计划取消类型
*
* @see UserSignPlanCancelSignTypeEnum
*/
@SerializedName("cancel_sign_type")
private String cancelSignType;

/**
* 签约计划取消原因
*/
@SerializedName("cancel_reason")
private String cancelReason;

/**
* 签约计划的名称
*/
@SerializedName("plan_name")
private String planName;

/**
* 签约计划的过期时间
*/
@SerializedName("plan_over_time")
private String planOverTime;

/**
* 签约计划原总金额(单位分)
*/
@SerializedName("total_origin_price")
private Integer totalOriginPrice;

/**
* 签约计划扣费次数
*/
@SerializedName("deduction_quantity")
private Integer deductionQuantity;

/**
* 签约计划实际总金额(单位分)
*/
@SerializedName("total_actual_price")
private Integer totalActualPrice;

@SerializedName("signed_detail_list")
private List<PartnerUserSignPlanDetail> signedDetailList;

/**
* 签约时间
*/
@SerializedName("sign_time")
private String signTime;
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public class PayScoreNotifyData implements Serializable {
* <p>2、解除授权成功通知的类型为PAYSCORE.USER_CLOSE_SERVICE</p>
* <p>3、用户确认成功通知的类型为PAYSCORE.USER_CONFIRM</p>
* <p>4、支付成功通知的类型为PAYSCORE.USER_PAID</p>
* <p>5、取消签约成功通知类型为PAYSCORE.USER_CANCEL_SIGN_PLAN</p>
* <p>6、签约计划成功通知类型为PAYSCORE</p>
*/
@SerializedName("event_type")
private String eventType;
Expand Down Expand Up @@ -85,5 +87,11 @@ public static class Resource implements Serializable {
*/
@SerializedName("associated_data")
private String associatedData;

/**
* 原始回调类型,支付分的原始回调类型为payscore
*/
@SerializedName("original_type")
private String originalType;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.github.binarywang.wxpay.bean.payscore;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
* @author UltramanNoa
* @className PayScorePlanDetail
* @description 支付分计划明细列表
* @createTime 2023/11/3 11:22
**/
@Data
@NoArgsConstructor
public class PayScorePlanDetail implements Serializable {

private static final long serialVersionUID = 999251141141181820L;
/**
* 计划明细原支付金额(单位分)
*/
@SerializedName("original_price")
private Integer originalPrice;

/**
* 计划明细优惠说明
*/
@SerializedName("plan_discount_description")
private String planDiscountDescription;

/**
* 计划明细实际支付金额(单位分)
*/
@SerializedName("actual_price")
private String actualPrice;

/**
* 计划明细名称
*/
@SerializedName("plan_detail_name")
private String planDetailName;

/**
* 计划明细序号(返回参数)
*/
@SerializedName("plan_detail_no")
private Integer planDetailNo;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.github.binarywang.wxpay.bean.payscore;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
* @author UltramanNoa
* @className UserSignPlanDetailMerchatNo
* @description 签约计划对应的计划详情列表的商户侧单号信息
* @createTime 2023/11/3 15:51
**/
@Data
@NoArgsConstructor
public class UserSignPlanDetailMerchatNo implements Serializable {

private static final long serialVersionUID = 2668791598158720023L;

/**
* 计划明细序号
*/
@SerializedName("plan_detail_no")
private Integer planDetailNo;

/**
* 商户侧计划明细使用订单号
*/
@SerializedName("merchant_plan_detail_no")
private String merchantPlanDetailNo;
}
Loading