Skip to content

Commit

Permalink
🆕 #2022 【微信支付】增加智慧商圈相关接口和解析支付营销代金券核销回调消息的方法
Browse files Browse the repository at this point in the history
* 增加解析支付营销代金券核销回调消息解析

* 增加微信支付智慧商圈接口和回调解析

Co-authored-by: 黄星 <huang.xing@aquilaflycloud.com>
  • Loading branch information
thinsstar and 黄星 authored Mar 9, 2021
1 parent e46c6c1 commit 30155b3
Show file tree
Hide file tree
Showing 25 changed files with 1,226 additions and 56 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package com.github.binarywang.wxpay.bean.businesscircle;

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

import java.io.Serializable;

/**
* 智慧商圈回调通知对象
* <pre>
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/businesscircle/chapter3_1.shtml
* https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/businesscircle/chapter3_3.shtml
* </pre>
*
* @author thinsstar
*/
@NoArgsConstructor
@Data
public class BusinessCircleNotifyData implements Serializable {
private static final long serialVersionUID = 1L;

/**
* 通知ID
*/
@SerializedName("id")
private String id;

/**
* 通知创建时间
*/
@SerializedName("create_time")
private String createTime;

/**
* 通知类型
*/
@SerializedName("event_type")
private String eventType;

/**
* 通知数据类型
*/
@SerializedName("resource_type")
private String resourceType;

/**
* 回调摘要
* summary
*/
@SerializedName("summary")
private String summary;

/**
* 通知数据
*/
@SerializedName("resource")
private Resource resource;

@Data
public static class Resource implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 加密算法类型
*/
@SerializedName("algorithm")
private String algorithm;

/**
* 数据密文
*/
@SerializedName("ciphertext")
private String cipherText;

/**
* 附加数据
*/
@SerializedName("associated_data")
private String associatedData;

/**
* 随机串
*/
@SerializedName("nonce")
private String nonce;

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

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

import java.io.Serializable;

/**
* 商圈支付结果通知内容
* <pre>
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/businesscircle/chapter3_1.shtml
* </pre>
*
* @author thinsstar
*/
@NoArgsConstructor
@Data
public class PaidResult implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 商户号
* <p>
* 微信支付分配的商户号
* 示例值:1230000109
*/
@SerializedName("mchid")
private String mchid;

/**
* 商圈商户名称
* <p>
* 商圈商户名称
* 示例值:微信支付
*/
@SerializedName("merchant_name")
private String merchantName;

/**
* 门店名称
* <p>
* 门店名称,商圈在商圈小程序上圈店时填写的门店名称
* 示例值:微信支付
*/
@SerializedName("shop_name")
private String shopName;

/**
* 门店编号
* <p>
* 门店编号,商圈在商圈小程序上圈店时填写的门店编号,用于跟商圈自身已有的商户识别码对齐
* 示例值:123456
*/
@SerializedName("shop_number")
private String shop_number;

/**
* 小程序APPID
* <p>
* 顾客授权积分时使用的小程序的appid
* 示例值:wxd678efh567hg6787
*/
@SerializedName("appid")
private String appid;

/**
* 用户标识
* <p>
* 顾客授权时使用的小程序上的openid
* 示例值:oUpF8uMuAJ2pxb1Q9zNjWeS6o
*/
@SerializedName("openid")
private String openid;

/**
* 交易完成时间
* <p>
* 交易完成时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒毫秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示北京时间2015年05月20日13点29分35秒(需要增加所有跟时间有关的参数的描述)
* 示例值:2015-05-20T13:29:35+08:00
*/
@SerializedName("time_end")
private String timeEnd;

/**
* 金额
* <p>
* 用户实际消费金额,单位(分)
* 示例值:200
*/
@SerializedName("amount")
private Integer amount;

/**
* 微信支付订单号
* <p>
* 微信支付订单号
* 示例值:1234567890
*/
@SerializedName("transaction_id")
private String transactionId;

/**
* 手动提交积分标记
* <p>
* 手动提交积分标记,自动提交时无该字段,用于区分用户手动申请后推送的积分数据
* 示例值:oUpF8uMuAJ2pxb1Q9zNjWUHsd
*/
@SerializedName("commit_tag")
private String commitTag;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
package com.github.binarywang.wxpay.bean.businesscircle;

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

import java.io.Serializable;

/**
* 商圈积分同步
* <pre>
* 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/businesscircle/chapter3_2.shtml
* </pre>
*
* @author thinsstar
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PointsNotifyRequest implements Serializable {

private static final long serialVersionUID = 1L;

/**
* <pre>
* 字段名:商圈商户ID
* 变量名:sub_mchid
* 是否必填:否
* 类型:string[1,64]
* 描述:
* 当以服务商模式管理商圈积分能力时,则要带上商圈商户ID,否则留空
* 示例值:1234567890
* </pre>
*/
@SerializedName(value = "sub_mchid")
private String subMchid;

/**
* <pre>
* 字段名:微信订单号
* 变量名:transaction_id
* 是否必填:是
* 类型:string[1,64]
* 描述:
* 微信支付推送的商圈内交易通知里携带的微信订单号
* 示例值:1217752501201407033233368018
* </pre>
*/
@SerializedName(value = "transaction_id")
private String transactionId;

/**
* <pre>
* 字段名:小程序appid
* 变量名:appid
* 是否必填:是
* 类型:string[1,128]
* 描述:
* 顾客授权积分时使用的小程序的appid
* 示例值:wx1234567890abcdef
* </pre>
*/
@SerializedName(value = "appid")
private String appid;

/**
* <pre>
* 字段名:用户标识
* 变量名:openid
* 是否必填:是
* 类型:string[1,64]
* 描述:
* 顾客授权时使用的小程序上的openid
* 示例值:oWmnN4xxxxxxxxxxe92NHIGf1xd8
* </pre>
*/
@SerializedName(value = "openid")
private String openid;

/**
* <pre>
* 字段名:是否获得积分
* 变量名:earn_points
* 是否必填:是
* 类型:boolean
* 描述:
* 用于标明此单是否获得积分,
* true为获得积分,
* false为未获得
* 示例值:true
* </pre>
*/
@SerializedName(value = "earn_points")
private Boolean earnPoints;

/**
* <pre>
* 字段名:订单新增积分值
* 变量名:increased_points
* 是否必填:是
* 类型:int
* 描述:
* 顾客此笔交易新增的积分值
* 示例值:100
* </pre>
*/
@SerializedName(value = "increased_points")
private Integer increasedPoints;

/**
* <pre>
* 字段名:积分更新时间
* 变量名:points_update_time
* 是否必填:是
* 类型:string[1,32]
* 描述:
* 为顾客此笔交易成功积分的时间
* 示例值:2020-05-20T13:29:35.120+08:00
* </pre>
*/
@SerializedName(value = "points_update_time")
private String pointsUpdateTime;

/**
* <pre>
* 字段名:未获得积分的备注信息
* 变量名:no_points_remarks
* 是否必填:否
* 类型:string[1,128]
* 描述:
* 当未获得积分时,提供未获得积分的原因等备注信息
* 示例值:商品不参与积分活动
* </pre>
*/
@SerializedName(value = "no_points_remarks")
private String noPointsRemarks;

/**
* <pre>
* 字段名:顾客积分总额
* 变量名:total_points
* 是否必填:否
* 类型:int
* 描述:
* 当前顾客积分总额
* 示例值:888888
* </pre>
*/
@SerializedName(value = "total_points")
private Integer totalPoints;
}
Loading

0 comments on commit 30155b3

Please sign in to comment.