🎨 #1458 微信支付createOrder方法增加一个重载实现

调用 WxPayService 的 <T> T createOrder(WxPayUnifiedOrderRequest request) 时,经常找源码来看返回什么样的实体类,再强制转换。

通常在业务中使用此方法时,可以明确交易类型,所以添加一个交易类型的类,设置交易类型的同时,顺便作为确定 createOrder 返回类型的参数传入。
This commit is contained in:
JoeWoo
2020-03-22 11:13:36 +08:00
committed by GitHub
parent 6f7bc7c02c
commit d3b58e3174
4 changed files with 93 additions and 0 deletions

View File

@@ -1,5 +1,10 @@
package com.github.binarywang.wxpay.constant;
import com.github.binarywang.wxpay.bean.order.WxPayAppOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult;
import com.github.binarywang.wxpay.bean.result.WxPayMicropayResult;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.time.FastDateFormat;
@@ -103,6 +108,55 @@ public class WxPayConstants {
* 刷卡支付有单独的支付接口,不调用统一下单接口
*/
public static final String MICROPAY = "MICROPAY";
@SuppressWarnings("unused")
public abstract static class Specific<R> {
public abstract String getType();
private Specific() {
}
public static Specific<WxPayNativeOrderResult> NATIVE =
new Specific<WxPayNativeOrderResult>() {
@Override
public String getType() {
return TradeType.NATIVE;
}
};
public static Specific<WxPayAppOrderResult> APP =
new Specific<WxPayAppOrderResult>() {
@Override
public String getType() {
return TradeType.APP;
}
};
public static Specific<WxPayMpOrderResult> JSAPI =
new Specific<WxPayMpOrderResult>() {
@Override
public String getType() {
return TradeType.JSAPI;
}
};
public static Specific<WxPayMwebOrderResult> MWEB =
new Specific<WxPayMwebOrderResult>() {
@Override
public String getType() {
return TradeType.MWEB;
}
};
public static Specific<WxPayMicropayResult> MICROPAY =
new Specific<WxPayMicropayResult>() {
@Override
public String getType() {
return TradeType.MICROPAY;
}
};
}
}
/**