cn.felord.payment.wechat.v3

## 类 WechatPayCallback

- java.lang.Object
- - cn.felord.payment.wechat.v3.WechatPayCallback

    public class WechatPayCallback
    extends Object

微信支付回调工具.

注意：开发者应该保证回调调用的幂等性

支付通知http应答码为200或204才会当作正常接收，当回调处理异常时，应答的HTTP状态码应为500，或者4xx。

从以下版本开始:
  1.0.0.RELEASE
作者:
  felord.cn

### 嵌套类概要

嵌套类
`(专用程序包) static class` `WechatPayCallback.EventType` 事件类型用于处理回调.

### 字段概要

字段
`private static com.fasterxml.jackson.databind.ObjectMapper` `MAPPER` The constant MAPPER.
`private SignatureProvider` `signatureProvider` The Signature provider.
`private String` `tenantId` The Tenant id.

### 构造器概要

构造器
构造器和说明
`WechatPayCallback(SignatureProvider signatureProvider, String tenantId)` Instantiates a new Wechat pay callback.

### 方法概要

所有方法 实例方法 具体方法
`Map<String,String>` `busiFavorReceiveCallback(ResponseSignVerifyParams params, Consumer<BusiFavorReceiveConsumeData> consumeDataConsumer)` 商家券领券事件回调通知API 领券完成后，微信会把相关支付结果和用户信息发送给商户，商户需要接收处理，并按照文档规范返回应答。
`private String` `callback(ResponseSignVerifyParams params, WechatPayCallback.EventType eventType)` Callback.
`Map<String,String>` `combineTransactionCallback(ResponseSignVerifyParams params, Consumer<CombineTransactionConsumeData> consumeDataConsumer)` 微信合单支付成功回调.
`Map<String,String>` `couponCallback(ResponseSignVerifyParams params, Consumer<CouponConsumeData> consumeDataConsumer)` 微信支付代金券核销回调.
`private String` `decrypt(CallbackParams callbackParams)` Decrypt.
`Map<String,?>` `discountCardCallback(ResponseSignVerifyParams params, DiscountCardConsumer discountCardConsumer)` 用户领卡、守约状态变化、扣费状态变化通知API 用户领取优惠卡后或者用户守约状态发生变更后或扣费状态变化后，微信会把对应信息发送给商户。
`Map<String,String>` `payscoreParkingCallback(ResponseSignVerifyParams params, Consumer<ParkingCallback> parkingCallbackConsumer)` 支付分停车入场状态变更通知.
`Map<String,String>` `payscoreTransParkingCallback(ResponseSignVerifyParams params, Consumer<TransParkingCallback> transParkingCallbackConsumer)` 支付分停车订单支付结果通知 商户请求微信支付分停车服务扣费受理接口，会完成订单受理。
`Map<String,String>` `payscoreUserOrderCallback(ResponseSignVerifyParams params, PayScoreConsumer payScoreConsumer)` 微信支付分确认订单、支付成功回调通知.
`Map<String,String>` `permissionCallback(ResponseSignVerifyParams params, Consumer<PayScoreUserPermissionConsumeData> consumeDataConsumer)` 授权/解除授权服务回调通知API.
`Map<String,String>` `profitsharingCallback(ResponseSignVerifyParams params, Consumer<ProfitsharingConsumeData> profitsharingConsumeDataConsumer)` 微信支付分账V3动账通知
`Map<String,String>` `profitSharingCallback(ResponseSignVerifyParams params, Consumer<ProfitSharingConsumeData> consumeDataConsumer)` 微信支付分账V2回调.
`Map<String,String>` `refundCallback(ResponseSignVerifyParams params, Consumer<RefundConsumeData> consumeDataConsumer)` 退款结果通知API 退款状态改变后，微信会把相关退款结果发送给商户。
`private CallbackParams` `resolve(ResponseSignVerifyParams params)` Resolve callback params.
`private Map<String,String>` `response()` 回调应答
`Map<String,String>` `transactionCallback(ResponseSignVerifyParams params, Consumer<TransactionConsumeData> consumeDataConsumer)` 微信支付成功回调,在1.0.8.RELEASE时支持服务商模式支付回调通知 无需开发者判断，只有扣款成功微信才会回调此接口

### 从类继承的方法 java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 字段详细资料

#### MAPPER

    private static final com.fasterxml.jackson.databind.ObjectMapper MAPPER

The constant MAPPER.

#### signatureProvider

    private final SignatureProvider signatureProvider

The Signature provider.

#### tenantId

    private final String tenantId

The Tenant id.

### 构造器详细资料

#### WechatPayCallback

    public WechatPayCallback(SignatureProvider signatureProvider,
                             String tenantId)

Instantiates a new Wechat pay callback.

参数:
  `signatureProvider` - the signature provider
  `tenantId` - the tenant id

### 方法详细资料

#### profitSharingCallback

    public Map<String,String> profitSharingCallback(ResponseSignVerifyParams params,
                                                    Consumer<ProfitSharingConsumeData> consumeDataConsumer)

微信支付分账V2回调.

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  the map
从以下版本开始:
  1.0.10.RELEASE

#### couponCallback

    public Map<String,String> couponCallback(ResponseSignVerifyParams params,
                                             Consumer<CouponConsumeData> consumeDataConsumer)

微信支付代金券核销回调.

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  the map
从以下版本开始:
  1.0.0.RELEASE

#### transactionCallback

    public Map<String,String> transactionCallback(ResponseSignVerifyParams params,
                                                  Consumer<TransactionConsumeData> consumeDataConsumer)

微信支付成功回调,在1.0.8.RELEASE时支持服务商模式支付回调通知

无需开发者判断，只有扣款成功微信才会回调此接口

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  the map
从以下版本开始:
  1.0.0.RELEASE

#### combineTransactionCallback

    public Map<String,String> combineTransactionCallback(ResponseSignVerifyParams params,
                                                         Consumer<CombineTransactionConsumeData> consumeDataConsumer)

微信合单支付成功回调.

无需开发者判断，只有扣款成功微信才会回调此接口

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  the map
从以下版本开始:
  1.0.0.RELEASE

#### payscoreUserOrderCallback

    public Map<String,String> payscoreUserOrderCallback(ResponseSignVerifyParams params,
                                                        PayScoreConsumer payScoreConsumer)

微信支付分确认订单、支付成功回调通知.

该链接是通过商户 创建支付分订单 提交notify_url参数，必须为https协议。如果链接无法访问，商户将无法接收到微信通知。 通知url必须为直接可访问的url，不能携带参数。示例： `https://pay.weixin.qq.com/wxpay/pay.action`

参数:
  `params` - the params
  `payScoreConsumer` - the pay score consumer
返回:
  the map
从以下版本开始:
  1.0.2.RELEASE

#### payscoreParkingCallback

    public Map<String,String> payscoreParkingCallback(ResponseSignVerifyParams params,
                                                      Consumer<ParkingCallback> parkingCallbackConsumer)

支付分停车入场状态变更通知.

从用户进入开通微信支付分停车服务的停车场（用户入场通知接口），到用户离场期间（扣款接口）， 这个时间段内如果停车入场状态变为可用或者不可用，微信会把相关状态变更情况（可用/不可用）异步发送给商户， 回调url为调用用户入场通知接口时填写的notify_url字段。 商户在收到停车入场状态变更通知后，需进行接收处理并返回应答。

参数:
  `params` - the params
  `parkingCallbackConsumer` - the parking callback consumer
返回:
  the map
从以下版本开始:
  1.0.13.RELEASE

#### payscoreTransParkingCallback

    public Map<String,String> payscoreTransParkingCallback(ResponseSignVerifyParams params,
                                                           Consumer<TransParkingCallback> transParkingCallbackConsumer)

支付分停车订单支付结果通知

商户请求微信支付分停车服务扣费受理接口，会完成订单受理。 订单实际支付完成后，微信支付会把订单支付结果信息发送给商户，商户需要接收处理，并返回应答。 同时，如果由于用户余额不足等原因，微信支付会进行垫资，用户对该垫资单进行了还款以后，微信支付会把该笔订单还款信息通知到商户。

注意：

- 同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是，当商户系统收到通知进行处理时，先检查对应业务数据的状态，并判断该通知是否已经处理。 如果未处理，则再进行处理；如果已处理，则直接返回结果成功。 在对业务数据进行状态检查和处理之前，要采用数据锁进行并发控制，以避免函数重入造成的数据混乱。
- 如果在所有通知频率后没有收到微信侧回调,商户应调用查询订单接口确认订单状态。

特别提醒：商户系统对于支付成功通知的内容一定要做签名验证，并校验通知的信息是否与商户侧的信息一致，防止数据泄露导致出现“假通知”，造成资金损失。

参数:
  `params` - the params
  `transParkingCallbackConsumer` - the transParkingCallbackConsumer
返回:
  the map
从以下版本开始:
  1.0.13.RELEASE

#### permissionCallback

    public Map<String,String> permissionCallback(ResponseSignVerifyParams params,
                                                 Consumer<PayScoreUserPermissionConsumeData> consumeDataConsumer)

授权/解除授权服务回调通知API.

微信支付分通过授权/解除授权服务通知接口将用户过授权/解除授权服务消息通知给商户

普通授权模式是通过[商户入驻配置申请表]提交service_notify_url设置，预授权模式是通过[商户预授权]提交的notify_url设置，必须为https协议。如果链接无法访问，商户将无法接收到微信通知。 通知url必须为直接可访问的url，不能携带参数。示例： `https://pay.weixin.qq.com/wxpay/pay.action`

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  the map

#### discountCardCallback

    public Map<String,?> discountCardCallback(ResponseSignVerifyParams params,
                                              DiscountCardConsumer discountCardConsumer)

用户领卡、守约状态变化、扣费状态变化通知API

用户领取优惠卡后或者用户守约状态发生变更后或扣费状态变化后，微信会把对应信息发送给商户。

该链接是通过商户预受理领卡请求中提交notify_url参数，必须为https协议。如果链接无法访问，商户将无法接收到微信通知。 通知url必须为直接可访问的url，不能携带参数。示例： `https://pay.weixin.qq.com/wxpay/pay.action`

参数:
  `params` - the params
  `discountCardConsumer` - the discount card consumer
返回:
  the map

#### busiFavorReceiveCallback

    public Map<String,String> busiFavorReceiveCallback(ResponseSignVerifyParams params,
                                                       Consumer<BusiFavorReceiveConsumeData> consumeDataConsumer)

商家券领券事件回调通知API

领券完成后，微信会把相关支付结果和用户信息发送给商户，商户需要接收处理，并按照文档规范返回应答。出于安全的考虑，我们对支付结果数据进行了加密，商户需要先对通知数据进行解密，才能得到支付结果数据。

该链接是通过商户设置商家券事件通知地址API中提交notify_url参数，必须为https协议。如果链接无法访问，商户将无法接收到微信通知。 通知url必须为直接可访问的url，不能携带参数。示例： `https://pay.weixin.qq.com/wxpay/pay.action`

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  the map

#### refundCallback

    public Map<String,String> refundCallback(ResponseSignVerifyParams params,
                                             Consumer<RefundConsumeData> consumeDataConsumer)

退款结果通知API

退款状态改变后，微信会把相关退款结果发送给商户。

参数:
  `params` - the params
  `consumeDataConsumer` - the consume data consumer
返回:
  map map

#### profitsharingCallback

    public Map<String,String> profitsharingCallback(ResponseSignVerifyParams params,
                                                    Consumer<ProfitsharingConsumeData> profitsharingConsumeDataConsumer)

微信支付分账V3动账通知

参数:
  `params` - the params
  `profitsharingConsumeDataConsumer` - the profitsharing consume data consumer
返回:
  map map

#### callback

    private String callback(ResponseSignVerifyParams params,
                            WechatPayCallback.EventType eventType)

Callback.

参数:
  `params` - the params
  `eventType` - the event type
返回:
  the string

#### resolve

    private CallbackParams resolve(ResponseSignVerifyParams params)
                            throws com.fasterxml.jackson.core.JsonProcessingException

Resolve callback params.

参数:
  `params` - the params
返回:
  the callback params
抛出:
  `com.fasterxml.jackson.core.JsonProcessingException` - the json processing exception
从以下版本开始:
  1.0.2.RELEASE

#### decrypt

    private String decrypt(CallbackParams callbackParams)

Decrypt.

参数:
  `callbackParams` - the callback params
返回:
  the string
从以下版本开始:
  1.0.2.RELEASE

#### response

    private Map<String,String> response()

回调应答

返回:
  response