多应用多平台支付模块-微信V2JsApi支付( 二 )

回调接口此接口继承基础回调实现类,并实现是否支付成功函数 。
并,在其内部拼接签名验证是否正确 。从而保证错误回调请求 。
package com.threeox.biz.order.api.notify;import com.alibaba.fastjson.JSONObject;import com.threeox.biz.order.api.notify.base.BasePayNotifyExtend;import com.threeox.biz.order.config.OrderResponseConfig;import com.threeox.biz.order.entity.OrderInfo;import com.threeox.biz.order.entity.wx.WxNotifyInfo;import com.threeox.biz.order.utils.wx.WXPayConstants;import com.threeox.biz.order.utils.wx.WXPayUtil;import com.threeox.drivenlibrary.engine.annotation.api.Api;import com.threeox.drivenlibrary.engine.entity.driven.config.OpenPlatformConfigMessage;import com.threeox.drivenlibrary.enums.dictionary.ContentType;import com.threeox.drivenlibrary.enums.dictionary.ResponseType;/** * 微信JSApi支付回调通知 * * @author 赵屈犇 * @version 1.0 * @date 创建时间: 2022/4/28 23:38 */@Api(apiUrl = "notify", apiName = "支付回调", moduleUrl = "pay/wxJsApi/v2", isVerifyToken = false, isVerifyLogin = false,isEncryptedResult = false, isDecryptParams = false, isStartAuth = false, requestContentType = ContentType.TEXT_XML,responseCode = OrderResponseConfig.WX_NOTIFY_RESPONSE, responseType = ResponseType.XML)public class WxJsV2PayNotifyExtend extends BasePayNotifyExtend<WxNotifyInfo> {@Overrideprotected boolean isPaySuccess(OrderInfo orderInfo, OpenPlatformConfigMessage openPlatform) throws Exception {String returnCode = getRequestParams().getReturn_code();if ("SUCCESS".equals(returnCode)) {//验证签名是否正确// 回调验签时需要去除sign和空值参数JSONObject validParams = WXPayUtil.paraFilter(getParams());// 拼装生成服务器端验证的签名String sign = WXPayUtil.generateSignature(validParams, openPlatform.getWxMchSecret(), WXPayConstants.SignType.MD5);// 因为微信回调会有八次之多,所以当第一次回调成功了,那么我们就不再执行逻辑了// 根据微信官网的介绍,此处不仅对回调的参数进行验签,还需要对返回的金额与系统订单的金额进行比对等if (sign.equals(getParamValue("sign"))) {return true;}}return false;}}至此的话,微信V2JsApi业已完成开发 。后期会逐渐完善更多三方支付功能 。

【多应用多平台支付模块-微信V2JsApi支付】


推荐阅读