Commit 3cfe2dde by giaogiao

微信支付

parent 818dc09f
package io.geekidea.springbootplus.test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
* 微信支付测试
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class WxPayTest {
}
......@@ -29,6 +29,12 @@
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
<version>4.0.0</version>
</dependency>
<!-- fastbootWeixin的核心依赖 -->
<dependency>
......
package com.sien.common.config;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
import io.geekidea.springbootplus.config.properties.WxPayProperties;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author Binary Wang
*/
@Configuration
@ConditionalOnClass(WxPayService.class)
@EnableConfigurationProperties(WxPayProperties.class)
@AllArgsConstructor
public class WxPayConfiguration {
private WxPayProperties properties;
@Bean
@ConditionalOnMissingBean
public WxPayService wxService() {
WxPayConfig payConfig = new WxPayConfig();
payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId()));
payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId()));
payConfig.setMchKey(StringUtils.trimToNull(this.properties.getMchKey()));
payConfig.setSubAppId(StringUtils.trimToNull(this.properties.getSubAppId()));
payConfig.setSubMchId(StringUtils.trimToNull(this.properties.getSubMchId()));
payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath()));
// 可以指定是否使用沙箱环境
payConfig.setUseSandboxEnv(false);
WxPayService wxPayService = new WxPayServiceImpl();
wxPayService.setConfig(payConfig);
return wxPayService;
}
}
......@@ -34,13 +34,13 @@ public class VipRecordController extends BaseController {
/**
* 添加Vip开通记录
* Vip开通
*/
@PostMapping("/open")
@OperationLog(name = "添加Vip开通记录", type = OperationLogType.ADD)
@ApiOperation(value = "添加Vip开通记录")
public ApiResult<Boolean> addVipRecord(@Validated(Add.class) @RequestBody VipRecordOpenParam vipRecordOpenParam)throws Exception{
boolean flag= vipRecordService.openVip(vipRecordOpenParam);
@OperationLog(name = "Vip开通", type = OperationLogType.ADD)
@ApiOperation(value = "Vip开通")
public ApiResult<Boolean> addVipRecord(@Validated(Add.class) @RequestBody VipRecordOpenParam vipRecordOpenParam) throws Exception {
boolean flag = vipRecordService.openVip(vipRecordOpenParam);
return ApiResult.result(flag);
}
......
package com.sien.common.controller;
import com.sien.common.service.AppUserService;
import com.sien.common.vo.AppUserQueryVo;
import com.sien.common.vo.app.LoginAppUserTokenVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
......@@ -39,7 +38,7 @@ public class WechatUserController extends BaseController {
@GetMapping("/check/")
@OperationLog(name = "根据微信重定向code查询用户是否绑定", type = OperationLogType.INFO)
@ApiOperation(value = "根据微信重定向code查询用户是否绑定", notes = "用户每次从微信公众号菜单页跳转,都必须调用此接口,来判断用户是否已经绑定用户," +
" 如果已经绑定就直接返回绑定用户的token,如没有绑定则需要用户进行注册,", response = AppUserQueryVo.class)
" 如果已经绑定就直接返回绑定用户的token,如没有绑定则需要用户进行注册,", response = LoginAppUserTokenVo.class)
public ApiResult<LoginAppUserTokenVo> checkAppUser(@RequestParam("code") String code) throws Exception {
return appUserService.checkWechatUserBinding(code);
......
package io.geekidea.springbootplus.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* wxpay pay properties.
*
* @author Binary Wang
*/
@Data
@ConfigurationProperties(prefix = "wx.pay")
public class WxPayProperties {
/**
* 设置微信公众号或者小程序等的appid
*/
private String appId;
/**
* 微信支付商户号
*/
private String mchId;
/**
* 微信支付商户密钥
*/
private String mchKey;
/**
* 服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除
*/
private String subAppId;
/**
* 服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除
*/
private String subMchId;
/**
* apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定
*/
private String keyPath;
}
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSjHhuFz7Gd6WP
dJdMcwoBb1OUESIvsFcWQfBoKaSz8/mwVOBhaWVRl818ufuTPfdiELYe+szslWtc
RhGTFNM8lcVk5RsPQH1Eg7ZvxlRs0irFJNk6YFhbcUOpMTI/ynL1yyeEebcADcc0
0tNGIMJb2w7WTC8W/VuUDn1Ten357Ba6ZXYZItFyL5ERPoxH91ShG9A2i3evGtfI
aAABgmrROCc8bzCtiKPv5AqH/WONXDxsL+IzeO4mjln1sJ4sTpZ55fpUcv3VkUw0
Ltaq60YfafgEL7MrKe3+e2WAZ8f2dKHI9BSwko4/KPDerWFs/3UfMfuzDlo62Bj1
YK6dZY01AgMBAAECggEBAL4J/fVYU9ftTGkkUh+1wfUzl5uQr2ud3a0ATU6nL7sh
XmBS68fgyouP2fBXKgRnrO89qDRkKSztXN8He3tnE5aelHGR/Q+SJL7/p15SBAfI
1sPkk5GGPpoirHB9MB61y3ehK4T+GzgYN5KtK/cjQGqKWWUBlItKmSsUvPfpGuXF
GCh2ibVeF38bDARHhCwS2l12Ur3laD89zTH+PcXLaI/6bKz5Z+HFWiAjtbaD7Ot3
2PA8/La8RJNUCKNkheG04gkN/sw1Txv/V+I9lnlcQ0Ppa6hiVrUgnIaSJHMX5IM+
mDJmcwP8sok2Br0FQMECEoRK5pgvs9O47qWPYEQ3fYECgYEA7oaZL8R0ohnBEVem
m4t6Jyuy8ZyHMkrEcXm+NSc6GT4/0D8VZV7l4KObr2gGKekcWJKQ5Ug30hcJieGP
EVNZ+xS21uLbVeP5jv3WSjYxL/YZeU1ysBAjtdELSxjzY6UnyFog7VqkNmThgUhh
Q2D7VrZSIRb1Q6I4vkPeQmCyR+ECgYEA4fkuBDYwGKMG4hbXaecBOWtQd/+GDj6s
PAsTIY8m2/PbD0bleAtstsRZMQuKTnlGoqBD++lrYKPavrWhH2osrJyBeYfYZMRT
pG7vA1yEv6CHPRn7h9KuGV4Mel8Fz4Y1/zJsfjjjf/eRH/gWYoc9vH8w3aOJQDJ1
RQAi2E/Ln9UCgYAaoXJ279MpygBRRFz4ntDrkKhw60344noeRT5kRtXovZd4U6K6
56Z4tyuJoO6XPUyJ4wtEXhTFYwcQmttTTuAL9VsYkMl2RHa3bUXAkV5agXqEnY4B
dDvYb9d38fgyltzjNJTaizUsUYUP3xnk4O4O11pCEYMeovz82Sz2cj9VYQKBgQDF
/v4p5Izp2VZ7nUXr3eN9uyDLs9FzA8kH5zBBFFwZFybW0OjY8TG1Rn9b8N+jeLHC
ZqiKvnA+QfO1bBGcI/y21X7AzJ13VWpwRl8YU+Vgvjgg+nYhASFYysYmJsJBnjgL
vdPAGPqFMpcvKsH6XMNkORHI8bSd0lhcOA1P+ULSbQKBgQCshFNNJMbrOYq1ES9I
l7EMjtIgK/AWgG7ATi9QaaRIzgQIF2tUfZZF0wQLUXp+xPnUCul/Y7a6sXEFzs1N
6e7Tkmf7KeXUnYp9Pbgq4pFcvVEmM8rZyoq4JgAGf1VuwxX0IxqstTh7hdejGIuz
vIVpzBaXGRsRTolFGmacyC0iMQ==
-----END PRIVATE KEY-----
......@@ -36,6 +36,14 @@ wx:
token: 111
aesKey: 111
pay:
appId: wxe4a696e431b0456b #微信公众号或者小程序等的appid
mchId: 1606818547 #微信支付商户号
mchKey: H0p6dhiXRr5FocmzZluNVqyG7QALISj1 #微信支付商户密钥
# subAppId: #服务商模式下的子商户公众账号ID
# subMchId: #服务商模式下的子商户号
keyPath: classpath:src/main/java/io/geekidea/springbootplus/config/properties/apiclient_cert.p12 # p12证书的位置,可以指定绝对路径,也可以指定类路径(以classpath:开头)
spring:
datasource:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment