🆕 #2501【微信支付】增加V3版本回调通知应答

This commit is contained in:
0katekate0 2022-08-16 19:46:27 +08:00 committed by GitHub
parent c84b46a55b
commit 6472484b32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 89 additions and 0 deletions

View File

@ -0,0 +1,50 @@
package com.github.binarywang.wxpay.bean.notify;
import com.google.gson.Gson;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 微信支付订单和退款的异步通知V3版本共用的响应类.
* https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_11.shtml
*
* @author <a href="https://github.com/0katekate0">Wang_Wong</a>
* @date 2022-08-15
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WxPayNotifyV3Response {
private static final transient String SUCCESS = "SUCCESS";
private static final transient String FAIL = "FAIL";
private String code;
private String message;
/**
* 返回成功
*
* @param msg
* @return
*/
public static String success(String msg) {
WxPayNotifyV3Response response = new WxPayNotifyV3Response(SUCCESS, msg);
return new Gson().toJson(response);
}
/**
* 返回失败
*
* @param msg 返回信息如非空为错误原因
* @return
*/
public static String fail(String msg) {
WxPayNotifyV3Response response = new WxPayNotifyV3Response(FAIL, msg);
return new Gson().toJson(response);
}
}

View File

@ -311,6 +311,7 @@ public class WxPayConstants {
public static final String SUCCESS = "SUCCESS";
/**
* v2
* 退款关闭.
*/
public static final String REFUND_CLOSE = "REFUNDCLOSE";
@ -321,10 +322,23 @@ public class WxPayConstants {
public static final String PROCESSING = "PROCESSING";
/**
* v2
* 退款异常.
* 退款到银行发现用户的卡作废或者冻结了导致原路退款银行卡失败可前往商户平台pay.weixin.qq.com-交易中心手动处理此笔退款
*/
public static final String CHANGE = "CHANGE";
/**
* v3
* 退款关闭
*/
public static final String CLOSED = "CLOSED";
/**
* v3
* 退款异常
*/
public static final String ABNORMAL = "ABNORMAL";
}
public static class ReceiverType {
@ -345,4 +359,5 @@ public class WxPayConstants {
*/
public static final String PERSONAL_SUB_OPENID = "PERSONAL_SUB_OPENID";
}
}

View File

@ -1,5 +1,6 @@
package com.github.binarywang.wxpay.bean.notify;
import lombok.extern.slf4j.Slf4j;
import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.assertThat;
@ -10,8 +11,12 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author <a href="https://github.com/binarywang">Binary Wang</a>
* @date 2019-06-30
*/
@Slf4j
public class WxPayNotifyResponseTest {
/**
* V2版本
*/
@Test
public void testSuccess() {
final String result = WxPayNotifyResponse.success("OK");
@ -38,4 +43,23 @@ public class WxPayNotifyResponseTest {
"<return_msg><![CDATA[500]]></return_msg>" +
"</xml>");
}
/**
* V3版本
* https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml
*/
@Test
public void testV3Fail() {
final String result = WxPayNotifyV3Response.fail("失败");
log.info(result);
assertThat(result).isNotEmpty();
}
@Test
public void testV3Success() {
final String result = WxPayNotifyV3Response.success("成功");
log.info(result);
assertThat(result).isNotEmpty();
}
}