mirror of
https://github.com/dromara/payment-spring-boot.git
synced 2026-03-13 21:33:41 +08:00
微信先享卡API
This commit is contained in:
@@ -95,7 +95,7 @@
|
||||
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
|
||||
<li>
|
||||
<ul class="inheritance">
|
||||
<li>cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount</li>
|
||||
<li>cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
|
||||
<li>
|
||||
<ul class="inheritance">
|
||||
<li>cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback</li>
|
||||
<li>cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
|
||||
<li>
|
||||
<ul class="inheritance">
|
||||
<li>cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData</li>
|
||||
<li>cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<!-- Generated by javadoc (1.8.0_252) on Sun Dec 13 22:43:48 CST 2020 -->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>类 cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount的使用 (payment-spring-boot 1.0.0.RELEASE API)</title>
|
||||
<title>类 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount的使用 (payment-spring-boot 1.0.0.RELEASE API)</title>
|
||||
<meta name="date" content="2020-12-13">
|
||||
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
|
||||
<script type="text/javascript" src="../../../../../../../script.js"></script>
|
||||
@@ -13,7 +13,7 @@
|
||||
<script type="text/javascript"><!--
|
||||
try {
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="\u7C7B cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount\u7684\u4F7F\u7528 (payment-spring-boot 1.0.0.RELEASE API)";
|
||||
parent.document.title="\u7C7B cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount\u7684\u4F7F\u7528 (payment-spring-boot 1.0.0.RELEASE API)";
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
@@ -71,7 +71,7 @@
|
||||
</a></div>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
<div class="header">
|
||||
<h2 title="类的使用 cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount" class="title">类的使用<br>cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount</h2>
|
||||
<h2 title="类的使用 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount" class="title">类的使用<br>cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount</h2>
|
||||
</div>
|
||||
<div class="classUseContainer">
|
||||
<ul class="blockList">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<!-- Generated by javadoc (1.8.0_252) on Sun Dec 13 22:43:48 CST 2020 -->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>类 cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback的使用 (payment-spring-boot 1.0.0.RELEASE API)</title>
|
||||
<title>类 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback的使用 (payment-spring-boot 1.0.0.RELEASE API)</title>
|
||||
<meta name="date" content="2020-12-13">
|
||||
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
|
||||
<script type="text/javascript" src="../../../../../../../script.js"></script>
|
||||
@@ -13,7 +13,7 @@
|
||||
<script type="text/javascript"><!--
|
||||
try {
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="\u7C7B cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback\u7684\u4F7F\u7528 (payment-spring-boot 1.0.0.RELEASE API)";
|
||||
parent.document.title="\u7C7B cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback\u7684\u4F7F\u7528 (payment-spring-boot 1.0.0.RELEASE API)";
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
@@ -71,7 +71,7 @@
|
||||
</a></div>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
<div class="header">
|
||||
<h2 title="类的使用 cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback" class="title">类的使用<br>cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback</h2>
|
||||
<h2 title="类的使用 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback" class="title">类的使用<br>cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback</h2>
|
||||
</div>
|
||||
<div class="classUseContainer">
|
||||
<ul class="blockList">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<script type="text/javascript"><!--
|
||||
try {
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="\u7C7B cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData\u7684\u4F7F\u7528 (payment-spring-boot 1.0.0.RELEASE API)";
|
||||
parent.document.title="\u7C7B cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData\u7684\u4F7F\u7528 (payment-spring-boot 1.0.0.RELEASE API)";
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
@@ -71,7 +71,7 @@
|
||||
</a></div>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
<div class="header">
|
||||
<h2 title="类的使用 cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData" class="title">类的使用<br>cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData</h2>
|
||||
<h2 title="类的使用 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData" class="title">类的使用<br>cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData</h2>
|
||||
</div>
|
||||
<div class="classUseContainer">
|
||||
<ul class="blockList">
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package cn.felord.payment.wechat.enumeration;
|
||||
|
||||
/**
|
||||
* 微信先享卡的守约状态
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
public enum ContractStatus {
|
||||
/**
|
||||
* 约定进行中,表示用户在约定有效期内,尚未完成所有目标时,守约状态为约定进行中。
|
||||
*/
|
||||
ONGOING,
|
||||
|
||||
/**
|
||||
* 约定到期核对中,在约定有效期结束后的一段时间,商户可对卡记录进行校对并做必要调整,守约状态为约定到期核对调整中。
|
||||
*/
|
||||
SETTLING,
|
||||
/**
|
||||
* 已完成约定,表示用户在约定有效期内,已完成所有目标,守约状态为已完成约定。
|
||||
*/
|
||||
FINISHED,
|
||||
|
||||
/**
|
||||
* 未完成约定,表示用户在约定有效期到期后,最终未完成所有约定目标,或用户提前退出约定,守约状态为未完成约定。
|
||||
*/
|
||||
UNFINISHED
|
||||
}
|
||||
@@ -203,6 +203,27 @@ public enum WechatPayV3Type {
|
||||
*/
|
||||
PAY_SCORE_SYNC_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder/{out_order_no}/sync"),
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/**
|
||||
* 微信先享卡预受理领卡请求API.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
DISCOUNT_CARD_PRE_REQUEST(HttpMethod.POST, "%s/v3/discount-card/cards"),
|
||||
/**
|
||||
* 微信先享卡增加用户记录API.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
DISCOUNT_CARD_ADD_USER_RECORDS(HttpMethod.POST, "%s/v3/discount-card/cards/{out_card_code}/add-user-records"),
|
||||
/**
|
||||
* 微信先享卡查询先享卡订单API.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
DISCOUNT_CARD_INFO(HttpMethod.POST, "%s/v3/discount-card/cards/{out_card_code}"),
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
/**
|
||||
|
||||
@@ -66,8 +66,19 @@ public class WechatApiProvider {
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调.
|
||||
* 微信支付先享卡.
|
||||
*
|
||||
* @param tenantId the tenant id
|
||||
* @return the wechat discount card api
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
public WechatDiscountCardApi discountCardApi(String tenantId) {
|
||||
return new WechatDiscountCardApi(wechatPayClient, tenantId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调.
|
||||
* <p>
|
||||
* 需要处理白名单、幂等性问题。
|
||||
*
|
||||
* @param tenantId the tenant id
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
package cn.felord.payment.wechat.v3;
|
||||
|
||||
import cn.felord.payment.wechat.WechatPayProperties;
|
||||
import cn.felord.payment.wechat.enumeration.WeChatServer;
|
||||
import cn.felord.payment.wechat.enumeration.WechatPayV3Type;
|
||||
import cn.felord.payment.wechat.v3.model.discountcard.DiscountCardPreRequestParams;
|
||||
import cn.felord.payment.wechat.v3.model.discountcard.UserRecordsParams;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
/**
|
||||
* 微信支付先享卡.
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
public class WechatDiscountCardApi extends AbstractApi {
|
||||
/**
|
||||
* Instantiates a new Abstract api.
|
||||
*
|
||||
* @param wechatPayClient the wechat pay client
|
||||
* @param tenantId the tenant id
|
||||
*/
|
||||
public WechatDiscountCardApi(WechatPayClient wechatPayClient, String tenantId) {
|
||||
super(wechatPayClient, tenantId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 预受理领卡请求API
|
||||
* <p>
|
||||
* 商户在引导用户跳转先享卡领卡前,需要请求先享卡预受理领卡请求接口,再根据返回数据引导用户跳转领卡。
|
||||
*
|
||||
* @param params the params
|
||||
* @return the wechat response entity
|
||||
*/
|
||||
public WechatResponseEntity<ObjectNode> preRequest(DiscountCardPreRequestParams params) {
|
||||
WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>();
|
||||
this.client().withType(WechatPayV3Type.DISCOUNT_CARD_PRE_REQUEST, params)
|
||||
.function((wechatPayV3Type, requestParams) -> {
|
||||
URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA))
|
||||
.build()
|
||||
.toUri();
|
||||
|
||||
WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3();
|
||||
requestParams.setAppid(v3.getAppId());
|
||||
requestParams.setNotifyUrl(v3.getDomain().concat(requestParams.getNotifyUrl()));
|
||||
return Post(uri, requestParams);
|
||||
})
|
||||
.consumer(wechatResponseEntity::convert)
|
||||
.request();
|
||||
return wechatResponseEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加用户记录API
|
||||
* <p>
|
||||
* 当用户在商户侧消费时,用户完成了微信先享卡的目标或者获取使用优惠时,商户需要把这个信息同步给微信先享卡平台,用于在微信先享卡小程序展示及先享卡到期后的用户结算。
|
||||
*
|
||||
* @param params the params
|
||||
* @return 返回http状态码 204 处理成功,应答无内容
|
||||
*/
|
||||
public WechatResponseEntity<ObjectNode> addUserRecords(UserRecordsParams params) {
|
||||
WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>();
|
||||
this.client().withType(WechatPayV3Type.DISCOUNT_CARD_ADD_USER_RECORDS, params)
|
||||
.function((wechatPayV3Type, recordsParams) -> {
|
||||
URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA))
|
||||
.build()
|
||||
.expand(recordsParams.getOutCardCode())
|
||||
.toUri();
|
||||
recordsParams.setOutCardCode(null);
|
||||
return Post(uri, recordsParams);
|
||||
})
|
||||
.consumer(wechatResponseEntity::convert)
|
||||
.request();
|
||||
return wechatResponseEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询先享卡订单API
|
||||
* <p>
|
||||
* 商户可以通过商户领卡号查询指定的先享卡,可用于对账或者界面展示。
|
||||
*
|
||||
* @param outCardCode 商户领卡号
|
||||
* @return the wechat response entity
|
||||
*/
|
||||
public WechatResponseEntity<ObjectNode> addUserRecords(String outCardCode) {
|
||||
WechatResponseEntity<ObjectNode> wechatResponseEntity = new WechatResponseEntity<>();
|
||||
this.client().withType(WechatPayV3Type.DISCOUNT_CARD_INFO, outCardCode)
|
||||
.function((wechatPayV3Type, cardCode) -> {
|
||||
URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA))
|
||||
.build()
|
||||
.expand(cardCode)
|
||||
.toUri();
|
||||
return Get(uri);
|
||||
})
|
||||
.consumer(wechatResponseEntity::convert)
|
||||
.request();
|
||||
return wechatResponseEntity;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,12 @@
|
||||
package cn.felord.payment.wechat.v3;
|
||||
|
||||
import cn.felord.payment.PayException;
|
||||
import cn.felord.payment.wechat.v3.model.*;
|
||||
import cn.felord.payment.wechat.v3.model.CallbackParams;
|
||||
import cn.felord.payment.wechat.v3.model.CouponConsumeData;
|
||||
import cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams;
|
||||
import cn.felord.payment.wechat.v3.model.TransactionConsumeData;
|
||||
import cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData;
|
||||
import cn.felord.payment.wechat.v3.model.discountcard.DiscountCardAcceptedConsumeData;
|
||||
import cn.felord.payment.wechat.v3.model.payscore.PayScoreUserConfirmConsumeData;
|
||||
import cn.felord.payment.wechat.v3.model.payscore.PayScoreUserPaidConsumeData;
|
||||
import cn.felord.payment.wechat.v3.model.payscore.PayScoreUserPermissionConsumeData;
|
||||
@@ -71,8 +76,8 @@ public class WechatPayCallback {
|
||||
@SneakyThrows
|
||||
public Map<String, ?> couponCallback(ResponseSignVerifyParams params, Consumer<CouponConsumeData> consumeDataConsumer) {
|
||||
String data = this.callback(params, EventType.COUPON);
|
||||
CouponConsumeData couponConsumeData = MAPPER.readValue(data, CouponConsumeData.class);
|
||||
consumeDataConsumer.accept(couponConsumeData);
|
||||
CouponConsumeData consumeData = MAPPER.readValue(data, CouponConsumeData.class);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
Map<String, Object> responseBody = new HashMap<>();
|
||||
responseBody.put("code", 200);
|
||||
responseBody.put("message", "SUCCESS");
|
||||
@@ -93,8 +98,8 @@ public class WechatPayCallback {
|
||||
@SneakyThrows
|
||||
public Map<String, ?> transactionCallback(ResponseSignVerifyParams params, Consumer<TransactionConsumeData> consumeDataConsumer) {
|
||||
String data = this.callback(params, EventType.TRANSACTION);
|
||||
TransactionConsumeData transactionConsumeData = MAPPER.readValue(data, TransactionConsumeData.class);
|
||||
consumeDataConsumer.accept(transactionConsumeData);
|
||||
TransactionConsumeData consumeData = MAPPER.readValue(data, TransactionConsumeData.class);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
return Collections.singletonMap("code", "SUCCESS");
|
||||
|
||||
}
|
||||
@@ -112,8 +117,8 @@ public class WechatPayCallback {
|
||||
@SneakyThrows
|
||||
public Map<String, ?> combineTransactionCallback(ResponseSignVerifyParams params, Consumer<CombineTransactionConsumeData> consumeDataConsumer) {
|
||||
String data = this.callback(params, EventType.TRANSACTION);
|
||||
CombineTransactionConsumeData combineTransactionConsumeData = MAPPER.readValue(data, CombineTransactionConsumeData.class);
|
||||
consumeDataConsumer.accept(combineTransactionConsumeData);
|
||||
CombineTransactionConsumeData consumeData = MAPPER.readValue(data, CombineTransactionConsumeData.class);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
return Collections.singletonMap("code", "SUCCESS");
|
||||
|
||||
}
|
||||
@@ -132,8 +137,8 @@ public class WechatPayCallback {
|
||||
@SneakyThrows
|
||||
public Map<String, ?> payscoreUserConfirmCallback(ResponseSignVerifyParams params, Consumer<PayScoreUserConfirmConsumeData> consumeDataConsumer) {
|
||||
String data = this.callback(params, EventType.PAYSCORE_USER_CONFIRM);
|
||||
PayScoreUserConfirmConsumeData payScoreUserConfirmConsumeData = MAPPER.readValue(data, PayScoreUserConfirmConsumeData.class);
|
||||
consumeDataConsumer.accept(payScoreUserConfirmConsumeData);
|
||||
PayScoreUserConfirmConsumeData consumeData = MAPPER.readValue(data, PayScoreUserConfirmConsumeData.class);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
return Collections.singletonMap("code", "SUCCESS");
|
||||
}
|
||||
|
||||
@@ -150,8 +155,8 @@ public class WechatPayCallback {
|
||||
@SneakyThrows
|
||||
public Map<String, ?> payscoreUserPaidCallback(ResponseSignVerifyParams params, Consumer<PayScoreUserPaidConsumeData> consumeDataConsumer) {
|
||||
String data = this.callback(params, EventType.PAYSCORE_USER_PAID);
|
||||
PayScoreUserPaidConsumeData payScoreUserPaidConsumeData = MAPPER.readValue(data, PayScoreUserPaidConsumeData.class);
|
||||
consumeDataConsumer.accept(payScoreUserPaidConsumeData);
|
||||
PayScoreUserPaidConsumeData consumeData = MAPPER.readValue(data, PayScoreUserPaidConsumeData.class);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
return Collections.singletonMap("code", "SUCCESS");
|
||||
}
|
||||
|
||||
@@ -180,13 +185,26 @@ public class WechatPayCallback {
|
||||
throw new PayException(" wechat pay event type is not matched");
|
||||
}
|
||||
String data = this.decrypt(callbackParams);
|
||||
PayScoreUserPermissionConsumeData payScoreUserPermissionConsumeData = MAPPER.readValue(data, PayScoreUserPermissionConsumeData.class);
|
||||
payScoreUserPermissionConsumeData.setClosed(closed);
|
||||
|
||||
consumeDataConsumer.accept(payScoreUserPermissionConsumeData);
|
||||
PayScoreUserPermissionConsumeData consumeData = MAPPER.readValue(data, PayScoreUserPermissionConsumeData.class);
|
||||
consumeData.setClosed(closed);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
return Collections.singletonMap("code", "SUCCESS");
|
||||
}
|
||||
|
||||
/**
|
||||
* Discount card user accepted callback map.
|
||||
*
|
||||
* @param params the params
|
||||
* @param consumeDataConsumer the consume data consumer
|
||||
* @return the map
|
||||
*/
|
||||
@SneakyThrows
|
||||
public Map<String, ?> discountCardUserAcceptedCallback(ResponseSignVerifyParams params, Consumer<DiscountCardAcceptedConsumeData> consumeDataConsumer) {
|
||||
String data = this.callback(params, EventType.DISCOUNT_CARD_USER_ACCEPTED);
|
||||
DiscountCardAcceptedConsumeData consumeData = MAPPER.readValue(data, DiscountCardAcceptedConsumeData.class);
|
||||
consumeDataConsumer.accept(consumeData);
|
||||
return Collections.singletonMap("code", "SUCCESS");
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback.
|
||||
@@ -253,24 +271,49 @@ public class WechatPayCallback {
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
PAYSCORE_USER_CONFIRM("PAYSCORE.USER_CONFIRM"),
|
||||
|
||||
/**
|
||||
* 微信支付分用户支付成功订单事件.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
PAYSCORE_USER_PAID("PAYSCORE.USER_PAID"),
|
||||
|
||||
/**
|
||||
* 微信支付分授权事件.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
PAYSCORE_USER_OPEN("PAYSCORE.USER_OPEN_SERVICE"),
|
||||
|
||||
/**
|
||||
* 微信支付分解除授权事件.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
PAYSCORE_USER_CLOSE("PAYSCORE.USER_CLOSE_SERVICE"),
|
||||
|
||||
/**
|
||||
* 用户领取微信先享卡事件.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
DISCOUNT_CARD_USER_ACCEPTED("DISCOUNT_CARD.USER_ACCEPTED"),
|
||||
|
||||
/**
|
||||
* TODO 微信先享卡守约状态变化事件.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
DISCOUNT_CARD_AGREEMENT_ENDED("DISCOUNT_CARD.AGREEMENT_ENDED"),
|
||||
|
||||
/**
|
||||
* TODO 微信先享卡扣费状态变化事件.
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
DISCOUNT_CARD_USER_PAID("DISCOUNT_CARD.USER_PAID"),
|
||||
|
||||
/**
|
||||
* 优惠券核销事件.
|
||||
*
|
||||
@@ -299,5 +342,4 @@ public class WechatPayCallback {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -12,23 +12,84 @@ import lombok.Data;
|
||||
@Data
|
||||
public class CouponConsumeData {
|
||||
|
||||
|
||||
/**
|
||||
* The Available begin time.
|
||||
*/
|
||||
private String availableBeginTime;
|
||||
/**
|
||||
* The Available end time.
|
||||
*/
|
||||
private String availableEndTime;
|
||||
/**
|
||||
* The Consume information.
|
||||
*/
|
||||
private ConsumeInformation consumeInformation;
|
||||
/**
|
||||
* The Coupon id.
|
||||
*/
|
||||
private String couponId;
|
||||
/**
|
||||
* The Coupon name.
|
||||
*/
|
||||
private String couponName;
|
||||
private String couponType;
|
||||
/**
|
||||
* The Coupon type.
|
||||
*/
|
||||
private CouponType couponType;
|
||||
/**
|
||||
* The Create time.
|
||||
*/
|
||||
private String createTime;
|
||||
/**
|
||||
* The Description.
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* The Discount to.
|
||||
*/
|
||||
private DiscountTo discountTo;
|
||||
private boolean noCash;
|
||||
/**
|
||||
* The No cash.
|
||||
*/
|
||||
private Boolean noCash;
|
||||
/**
|
||||
* The Normal coupon information.
|
||||
*/
|
||||
private NormalCouponInformation normalCouponInformation;
|
||||
private boolean singleitem;
|
||||
/**
|
||||
* The Singleitem.
|
||||
*/
|
||||
private Boolean singleitem;
|
||||
/**
|
||||
* The Singleitem discount off.
|
||||
*/
|
||||
private SingleitemDiscountOff singleitemDiscountOff;
|
||||
/**
|
||||
* The Status.
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* The Stock creator mchid.
|
||||
*/
|
||||
private String stockCreatorMchid;
|
||||
/**
|
||||
* The Stock id.
|
||||
*/
|
||||
private String stockId;
|
||||
|
||||
|
||||
/**
|
||||
* 券类型
|
||||
*
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
public enum CouponType{
|
||||
/**
|
||||
* 满减券
|
||||
*/
|
||||
NORMAL,
|
||||
/**
|
||||
* 减至券
|
||||
*/
|
||||
CUT_TO
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,9 @@ public class SettleInfo {
|
||||
/**
|
||||
* 是否指定分账
|
||||
*/
|
||||
private boolean profitSharing;
|
||||
private Boolean profitSharing;
|
||||
/**
|
||||
* 补差金额
|
||||
*/
|
||||
private int subsidyAmount;
|
||||
private Integer subsidyAmount;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
|
||||
package cn.felord.payment.wechat.v3.model;
|
||||
|
||||
import cn.felord.payment.wechat.enumeration.TradeState;
|
||||
import cn.felord.payment.wechat.enumeration.TradeType;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
@@ -54,17 +56,19 @@ public class TransactionConsumeData {
|
||||
*/
|
||||
private String successTime;
|
||||
/**
|
||||
* The Trade state.
|
||||
* 在 1.0.0.RELEASE 直接返回了枚举字符串,1.0.2.RELEASE 中变更为枚举
|
||||
* @since 1.0.0.RELEASE
|
||||
*/
|
||||
private String tradeState;
|
||||
private TradeState tradeState;
|
||||
/**
|
||||
* The Trade state desc.
|
||||
*/
|
||||
private String tradeStateDesc;
|
||||
/**
|
||||
* The Trade type.
|
||||
* 在 1.0.0.RELEASE 直接返回了枚举字符串,1.0.2.RELEASE 中变更为枚举
|
||||
* @since 1.0.0.RELEASE
|
||||
*/
|
||||
private String tradeType;
|
||||
private TradeType tradeType;
|
||||
/**
|
||||
* The Transaction id.
|
||||
*/
|
||||
@@ -110,11 +114,11 @@ public class TransactionConsumeData {
|
||||
/**
|
||||
* The Total.
|
||||
*/
|
||||
private int total;
|
||||
private Integer total;
|
||||
/**
|
||||
* The Payer total.
|
||||
*/
|
||||
private int payerTotal;
|
||||
private Integer payerTotal;
|
||||
/**
|
||||
* The Currency.
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
|
||||
package cn.felord.payment.wechat.v3.model;
|
||||
package cn.felord.payment.wechat.v3.model.combine;
|
||||
|
||||
import cn.felord.payment.wechat.v3.model.combine.CombinePayerInfo;
|
||||
import cn.felord.payment.wechat.enumeration.TradeState;
|
||||
import cn.felord.payment.wechat.enumeration.TradeType;
|
||||
import cn.felord.payment.wechat.v3.model.SceneInfo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
@@ -94,12 +96,12 @@ public class CombineTransactionConsumeData {
|
||||
/**
|
||||
* The Trade state.
|
||||
*/
|
||||
private String tradeState;
|
||||
private TradeState tradeState;
|
||||
|
||||
/**
|
||||
* The Trade type.
|
||||
*/
|
||||
private String tradeType;
|
||||
private TradeType tradeType;
|
||||
|
||||
/**
|
||||
* The Transaction id.
|
||||
@@ -0,0 +1,173 @@
|
||||
|
||||
package cn.felord.payment.wechat.v3.model.discountcard;
|
||||
|
||||
import cn.felord.payment.wechat.enumeration.ContractStatus;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户领取微信先享卡通知解密
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public class DiscountCardAcceptedConsumeData {
|
||||
|
||||
/**
|
||||
* The Appid.
|
||||
*/
|
||||
private String appid;
|
||||
/**
|
||||
* The Card id.
|
||||
*/
|
||||
private String cardId;
|
||||
/**
|
||||
* The Card template id.
|
||||
*/
|
||||
private String cardTemplateId;
|
||||
/**
|
||||
* The Create time.
|
||||
*/
|
||||
private String createTime;
|
||||
/**
|
||||
* The Mchid.
|
||||
*/
|
||||
private String mchid;
|
||||
/**
|
||||
* The Objectives.
|
||||
*/
|
||||
private List<Objective> objectives;
|
||||
/**
|
||||
* The Openid.
|
||||
*/
|
||||
private String openid;
|
||||
/**
|
||||
* The Out card code.
|
||||
*/
|
||||
private String outCardCode;
|
||||
/**
|
||||
* The Rewards.
|
||||
*/
|
||||
private List<Reward> rewards;
|
||||
/**
|
||||
* The Sharer openid.
|
||||
*/
|
||||
private String sharerOpenid;
|
||||
/**
|
||||
* The State.
|
||||
*/
|
||||
private ContractStatus state;
|
||||
/**
|
||||
* The Time range.
|
||||
*/
|
||||
private TimeRange timeRange;
|
||||
|
||||
/**
|
||||
* 用户先享卡目标列表
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public static class Objective {
|
||||
|
||||
/**
|
||||
* The Count.
|
||||
*/
|
||||
private Long count;
|
||||
/**
|
||||
* The Description.
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* The Name.
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* The Objective id.
|
||||
*/
|
||||
private String objectiveId;
|
||||
/**
|
||||
* The Unit.
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户先享卡优惠列表
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public static class Reward {
|
||||
|
||||
/**
|
||||
* The Amount.
|
||||
*/
|
||||
private Long amount;
|
||||
/**
|
||||
* The Count.
|
||||
*/
|
||||
private Long count;
|
||||
/**
|
||||
* The Count type.
|
||||
*/
|
||||
private CountType countType;
|
||||
/**
|
||||
* The Description.
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* The Name.
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* The Reward id.
|
||||
*/
|
||||
private String rewardId;
|
||||
/**
|
||||
* The Unit.
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The type Time range.
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public static class TimeRange {
|
||||
/**
|
||||
* The Betin time.
|
||||
*/
|
||||
private String betinTime;
|
||||
/**
|
||||
* The End time.
|
||||
*/
|
||||
private String endTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 优惠数量的类型标识
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
public enum CountType{
|
||||
/**
|
||||
* 不限数量
|
||||
*/
|
||||
COUNT_UNLIMITED,
|
||||
/**
|
||||
* 有限数量
|
||||
*/
|
||||
COUNT_LIMIT
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
package cn.felord.payment.wechat.v3.model.discountcard;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 预受理领卡请求参数
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public class DiscountCardPreRequestParams {
|
||||
|
||||
/**
|
||||
* 商户领卡号,必传
|
||||
*/
|
||||
private String outCardCode;
|
||||
/**
|
||||
* 先享卡模板ID,必传
|
||||
*/
|
||||
private String cardTemplateId;
|
||||
/**
|
||||
* APPID,必传,自动从配置中注入
|
||||
*/
|
||||
private String appid;
|
||||
/**
|
||||
* 通知商户URL,必传
|
||||
*/
|
||||
private String notifyUrl;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
|
||||
package cn.felord.payment.wechat.v3.model.discountcard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 增加用户记录请求参数
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public class UserRecordsParams {
|
||||
|
||||
/**
|
||||
* The Out card code.
|
||||
*/
|
||||
private String outCardCode;
|
||||
/**
|
||||
* The Card template id.
|
||||
*/
|
||||
private String cardTemplateId;
|
||||
/**
|
||||
* The Objective completion records.
|
||||
*/
|
||||
private List<ObjectiveCompletionRecord> objectiveCompletionRecords;
|
||||
/**
|
||||
* The Reward usage records.
|
||||
*/
|
||||
private List<RewardUsageRecord> rewardUsageRecords;
|
||||
|
||||
/**
|
||||
* The type Objective completion record.
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public static class ObjectiveCompletionRecord {
|
||||
|
||||
/**
|
||||
* The Completion count.
|
||||
*/
|
||||
private Long completionCount;
|
||||
/**
|
||||
* The Completion time.
|
||||
*/
|
||||
private String completionTime;
|
||||
/**
|
||||
* The Completion type.
|
||||
*/
|
||||
private StrategyType completionType;
|
||||
/**
|
||||
* The Description.
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* The Objective completion serial no.
|
||||
*/
|
||||
private String objectiveCompletionSerialNo;
|
||||
/**
|
||||
* The Objective id.
|
||||
*/
|
||||
private String objectiveId;
|
||||
/**
|
||||
* The Remark.
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The type Reward usage record.
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
@Data
|
||||
public static class RewardUsageRecord {
|
||||
|
||||
/**
|
||||
* The Amount.
|
||||
*/
|
||||
private Long amount;
|
||||
/**
|
||||
* The Description.
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* The Remark.
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* The Reward id.
|
||||
*/
|
||||
private String rewardId;
|
||||
/**
|
||||
* The Reward usage serial no.
|
||||
*/
|
||||
private String rewardUsageSerialNo;
|
||||
/**
|
||||
* The Usage count.
|
||||
*/
|
||||
private Long usageCount;
|
||||
/**
|
||||
* The Usage time.
|
||||
*/
|
||||
private String usageTime;
|
||||
/**
|
||||
* The Usage type.
|
||||
*/
|
||||
private StrategyType usageType;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 目标完成类型、优惠使用类型
|
||||
*
|
||||
* @author felord.cn
|
||||
* @since 1.0.2.RELEASE
|
||||
*/
|
||||
public enum StrategyType {
|
||||
/**
|
||||
* 增加数量,表示用户发生了履约行为
|
||||
*/
|
||||
INCREASE,
|
||||
/**
|
||||
* 减少数量,表示取消用户的履约行为(例如用户取消购买、退货退款等)
|
||||
*/
|
||||
DECREASE
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user