微信小程序开发笔记 支付篇⑤——基于WxJava实现微信支付SpringBoot后端接口的使用
微信小程序开发笔记 支付篇⑤——基于WxJava实现微信支付SpringBoot后端接口的使用
在前面的几篇文章中,我们已经完成了微信小程序的基本开发和支付相关的配置。在本篇文章中,我们将重点介绍如何基于WxJava实现微信支付的SpringBoot后端接口。
一、前文
在开始之前,需要回顾一下前面的内容:
* 微信小程序的基本开发(包括注册、登录等功能)
* 支付相关的配置(包括appid、secret等信息)
如果您还没有完成这些步骤,请先参考前面的文章。
二、依赖
为了实现微信支付的SpringBoot后端接口,我们需要在pom.xml中添加以下依赖:
```xml
```
三、属性
3.1 application.yml在src/main/resources目录下创建application.yml文件,添加以下配置:
```ymlwx:
appid: your_appid secret: your_secret mch_id: your_mch_id key: your_key```
请替换为您的实际appid、secret等信息。
3.2 WxPayProperties在src/main/resources目录下创建WxPayProperties.java文件,添加以下配置:
```java@ConfigurationProperties(prefix = "wx")
public class WxPayProperties {
private String appid;
private String secret;
private String mch_id;
private String key;
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
public String getMch_id() {
return mch_id;
}
public void setMch_id(String mch_id) {
this.mch_id = mch_id;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
```
四、配置Config
在src/main/java目录下创建WxPayConfig.java文件,添加以下配置:
```java@Configurationpublic class WxPayConfig implements WxPayProperties {
@Value("${wx.appid}")
private String appid;
@Value("${wx.secret}")
private String secret;
@Value("${wx.mch_id}")
private String mch_id;
@Value("${wx.key}")
private String key;
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
public String getMch_id() {
return mch_id;
}
public void setMch_id(String mch_id) {
this.mch_id = mch_id;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
```
五、应用Controller
在src/main/java目录下创建WxPayController.java文件,添加以下配置:
```java@RestController@RequestMapping("/wxpay")
public class WxPayController {
@Autowired private WxPayConfig wxPayConfig;
@PostMapping("/createOrder")
public String createOrder(@RequestBody WxPayRequest request) {
//生成订单号 String outTradeNo = UUID.randomUUID().toString();
// 统一下单 WxPayUnifiedOrderResponse response = wxPayConfig.getWxPayService().unifiedOrder(outTradeNo, request.getTotalFee(), request.getGoodsDetail());
return response.getTradeNo();
}
@GetMapping("/queryOrder")
public String queryOrder(@RequestParam("out_trade_no") String outTradeNo) {
// 查询订单 WxPayQueryOrderResponse response = wxPayConfig.getWxPayService().queryOrder(outTradeNo);
return response.getTradeState();
}
}
```
六、PostMan调试
6.1 统一下单使用PostMan发送POST请求到 "appid": "your_appid",
"mch_id": "your_mch_id",
"nonce_str": "your_nonce_str",
"body": "测试订单",
"total_fee":1,
"goods_detail": [
{
"goods_name": "测试商品",
"unit_price":1 }
]
}
```
6.2 查询订单(正常)
使用PostMan发送GET请求到