SpringBoot 集成 spring-boot-starter-pay 之 PayJs 实现下单和回调
引入依赖
spring-boot-starter-pay 项目地址
1 2 3 4 5
| <dependency> <groupId>com.seepine</groupId> <artifactId>spring-boot-starter-pay</artifactId> <version>0.2.0</version> </dependency>
|
使用配置
1.配置文件
application.yml
1 2 3 4 5
| pay-js: m-ch-id: ${your mChId} secret: ${your secret} notify-url: ${your notifyUrl}
|
2.代码使用
注入 template
1 2
| @Autowire private PayJsTemplate payJsTemplate;
|
方法介绍
1.native 支付(返回支付二维码)
默认回调地址
1 2 3
| PayJsRes payRes=payJsTemplate.channel().pay(String subject, String outTradeNo, Double amount);
|
手动填写回调地址
1 2 3 4
| PayJsRes payRes=payJsTemplate.channel().pay(String subject, String outTradeNo, Double amount, String notifyUrl);
|
2.异步通知回调验签
1 2 3 4 5 6
| @ResponseBody @PostMapping(value = "notify") public Object fallback(PayJsReq payJsReq){ Boolean isSign=payJsTemplate.channel().checkSign(payJsReq); }
|
3.查询订单
一般用于关闭订单前主动查询订单状态,避免已支付成功但回调未收到,误操作业务订单状态
1 2
| PayJsRes payRes=payJsTemplate.channel().check(String payJsOrderId);
|
4.关闭订单
用来主动关闭订单,避免业务订单已设为过期,但买家又能继续扫码支付
1 2
| PayJsRes payRes=payJsTemplate.channel().close(String payJsOrderId);
|
多商户配置
1.配置文件
application.yml,以逗号隔开
1 2 3 4
| pay-js: m-ch-id: ${mChId1},${mChId2} secret: ${secret1},${secret2} notify-url: ${notifyUrl1},${notifyUrl1}
|
2.注入代码使用
注入 template
1 2
| @Autowire private PayJsTemplate payJsTemplate;
|
3.native 支付(返回支付二维码)
通过 channel(index)来指定商户,从 0 开始
1 2 3
| PayJsRes payRes=payJsTemplate.channel(${index}).pay(String subject, String outTradeNo, Double amount);
|