实现原理: hutool工具包
static Stringformat(String strPattern, Object... argArray)格式化字符串
此方法只是简单将占位符 {} 按照顺序替换为参数
如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
例:
通常使用:format("this is {} for {}", "a", "b") =》 this is a for b
转义{}: format("this is \\{} for {}", "a", "b") =》 this is \{} for a
转义\: format("this is \\\\{} for {}", "a", "b") =》 this is \a for b
实战:
场景:用一些第三方接口的api 有些会让你填些参数(拿微信支付举例)
如图:
我们可以把这些api写成一个枚举
/**
*微信支付 api调用接口
* @author zhangjunrong
* @date 2022/5/9 19:57
*/
public enum WxApiType {
/** 下单API */
CREATE_ORDER("https://api.mch.weixin.qq.com/v3/pay/transactions/app"),
/** 查询支付订单API ONE{}=>outTradeNo – 商户订单号 系统生 TOW{}=>mchId商户的商户号,由微信支付生成并下发。 */
QUERY_CREATE_ORDER("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{}?mchid={}"),
/** 查询退款订单API {}=>outRefundNo 商户退款单号*/
QUERY_REFUND_ORDER("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{}"),
/** 关闭订单API {}=>outTradeNo 商户订单号*/
CLOSE_ORDER("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/{}/close"),
/** 申请退款API {}=>outTradeNo 商户订单号*/
REFUND_ORDER("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds");
private final String value;
WxApiType(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
然后在调用的时候:
@Test
void testPay() throws JsonProcessingException {
String format = StrFormatter.format(WxApiType.QUERY_CREATE_ORDER.getValue(), "12334344", "223443443wd");
System.out.println(format);
}
结果:

使用Hutool工具包简化微信支付API调用
本文介绍了如何利用Hutool工具包的格式化字符串功能,简化微信支付API的枚举调用。通过创建一个`WxApiType`枚举,将不同的微信支付API接口地址和参数格式化模板结合,方便在实际调用时传入参数,例如下单、查询支付、退款等操作。在测试中展示了如何使用该枚举和Hutool的`StrFormatter.format()`方法来构建请求URL。
2239

被折叠的 条评论
为什么被折叠?



