From e98a1802fe2052a19ee30bfcba90d7c9371ffa8c Mon Sep 17 00:00:00 2001 From: xiafang Date: Fri, 27 Nov 2020 17:45:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=90=AF=E6=89=B9=E6=AC=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=20=20=E8=90=A5=E9=94=80=E5=9B=9E=E8=B0=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payment/wechat/v3/WechatPayCallback.java | 15 +++++++++++++-- .../wechat/v3/model/ResponseSignVerifyParams.java | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/WechatPayCallback.java b/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/WechatPayCallback.java index 1f74dc6..1be1233 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/WechatPayCallback.java +++ b/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/WechatPayCallback.java @@ -8,12 +8,18 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.springframework.util.Assert; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; + /** * @author Dax * @since 10:21 */ +@Slf4j public class WechatPayCallback { private static final ObjectMapper MAPPER = new ObjectMapper(); private final SignatureProvider signatureProvider; @@ -29,7 +35,7 @@ public class WechatPayCallback { @SneakyThrows - public CouponConsumeData wechatPayCouponCallback(ResponseSignVerifyParams params) { + public Map wechatPayCouponCallback(ResponseSignVerifyParams params, Consumer couponConsumeDataConsumer) { if (signatureProvider.responseSignVerify(params)) { CallbackParams callbackParams = MAPPER.readValue(params.getBody(), CallbackParams.class); @@ -40,7 +46,12 @@ public class WechatPayCallback { String ciphertext = resource.getCiphertext(); String data = signatureProvider.decryptResponseBody(associatedData, nonce, ciphertext); Assert.hasText(data, "decryptData is required"); - return MAPPER.readValue(data, CouponConsumeData.class); + CouponConsumeData couponConsumeData = MAPPER.readValue(data, CouponConsumeData.class); + couponConsumeDataConsumer.accept(couponConsumeData); + Map responseBody = new HashMap<>(); + responseBody.put("code", 200); + responseBody.put("message", "核销成功"); + return responseBody; } throw new PayException("invalid wechat pay coupon callback"); } diff --git a/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/model/ResponseSignVerifyParams.java b/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/model/ResponseSignVerifyParams.java index b828927..15ecdef 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/model/ResponseSignVerifyParams.java +++ b/payment-spring-boot-autoconfigure/src/main/java/com/enongm/dianji/payment/wechat/v3/model/ResponseSignVerifyParams.java @@ -6,7 +6,7 @@ import lombok.Data; * 微信的响应签名校验参数 * * @author Dax - * @see com.enongm.dianji.payment.wechat.v3.SignatureProvider#responseSignVerify(String, String, String, String, String) + * @see com.enongm.dianji.payment.wechat.v3.SignatureProvider#responseSignVerify(ResponseSignVerifyParams) * @since 16:32 */ @Data