微信支付bug调整
parent
1aea550071
commit
0e3d0bc7ee
|
@ -4,6 +4,7 @@ import com.jwl.driver.server.config.WechatPayConfig;
|
||||||
import com.jwl.driver.server.entity.OrderPayInfo;
|
import com.jwl.driver.server.entity.OrderPayInfo;
|
||||||
import com.jwl.driver.server.response.BaseResponse;
|
import com.jwl.driver.server.response.BaseResponse;
|
||||||
import com.jwl.driver.server.service.IOrderPayInfoService;
|
import com.jwl.driver.server.service.IOrderPayInfoService;
|
||||||
|
import com.jwl.driver.server.util.InputStreamUtil;
|
||||||
import com.jwl.driver.server.util.WechatPayUtil;
|
import com.jwl.driver.server.util.WechatPayUtil;
|
||||||
import com.jwl.driver.server.vo.AppletPayVo;
|
import com.jwl.driver.server.vo.AppletPayVo;
|
||||||
import com.wechat.pay.java.core.Config;
|
import com.wechat.pay.java.core.Config;
|
||||||
|
@ -81,37 +82,10 @@ public class AppletPayController {
|
||||||
|
|
||||||
/** 构建service */
|
/** 构建service */
|
||||||
private JsapiServiceExtension createService() {
|
private JsapiServiceExtension createService() {
|
||||||
|
|
||||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("wechatPay/apiclient_key.pem");
|
|
||||||
String keyString;
|
|
||||||
try {
|
|
||||||
Throwable var2 = null;
|
|
||||||
try {
|
|
||||||
keyString = IOUtil.toString(inputStream);
|
|
||||||
} catch (Throwable var13) {
|
|
||||||
var2 = var13;
|
|
||||||
throw var13;
|
|
||||||
} finally {
|
|
||||||
if (inputStream != null) {
|
|
||||||
if (var2 != null) {
|
|
||||||
try {
|
|
||||||
inputStream.close();
|
|
||||||
} catch (Throwable var12) {
|
|
||||||
var2.addSuppressed(var12);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
inputStream.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (IOException var15) {
|
|
||||||
throw new UncheckedIOException(var15);
|
|
||||||
}
|
|
||||||
Config config =
|
Config config =
|
||||||
new RSAAutoCertificateConfig.Builder()
|
new RSAAutoCertificateConfig.Builder()
|
||||||
.merchantId(wechatPayConfig.getMchId())
|
.merchantId(wechatPayConfig.getMchId())
|
||||||
.privateKey(PemUtil.loadPrivateKeyFromString(keyString))
|
.privateKey(PemUtil.loadPrivateKeyFromString(InputStreamUtil.getContentStr("wechatPay/apiclient_key.pem")))
|
||||||
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
||||||
.merchantSerialNumber(wechatPayConfig.getMchSerialNo())
|
.merchantSerialNumber(wechatPayConfig.getMchSerialNo())
|
||||||
.apiV3Key(wechatPayConfig.getApiV3Key())
|
.apiV3Key(wechatPayConfig.getApiV3Key())
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.jwl.driver.server.config.WechatPayConfig;
|
||||||
import com.jwl.driver.server.entity.OrderPayInfo;
|
import com.jwl.driver.server.entity.OrderPayInfo;
|
||||||
import com.jwl.driver.server.response.BaseResponse;
|
import com.jwl.driver.server.response.BaseResponse;
|
||||||
import com.jwl.driver.server.service.IOrderPayInfoService;
|
import com.jwl.driver.server.service.IOrderPayInfoService;
|
||||||
|
import com.jwl.driver.server.util.InputStreamUtil;
|
||||||
import com.jwl.driver.server.vo.H5PayVo;
|
import com.jwl.driver.server.vo.H5PayVo;
|
||||||
import com.wechat.pay.java.core.Config;
|
import com.wechat.pay.java.core.Config;
|
||||||
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
||||||
|
@ -78,37 +79,10 @@ public class H5PayController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private H5Service createService() {
|
private H5Service createService() {
|
||||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("wechatPay/apiclient_key.pem");
|
|
||||||
String keyString;
|
|
||||||
try {
|
|
||||||
Throwable var2 = null;
|
|
||||||
try {
|
|
||||||
keyString = IOUtil.toString(inputStream);
|
|
||||||
} catch (Throwable var13) {
|
|
||||||
var2 = var13;
|
|
||||||
throw var13;
|
|
||||||
} finally {
|
|
||||||
if (inputStream != null) {
|
|
||||||
if (var2 != null) {
|
|
||||||
try {
|
|
||||||
inputStream.close();
|
|
||||||
} catch (Throwable var12) {
|
|
||||||
var2.addSuppressed(var12);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
inputStream.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (IOException var15) {
|
|
||||||
throw new UncheckedIOException(var15);
|
|
||||||
}
|
|
||||||
|
|
||||||
Config config =
|
Config config =
|
||||||
new RSAAutoCertificateConfig.Builder()
|
new RSAAutoCertificateConfig.Builder()
|
||||||
.merchantId(wechatPayConfig.getMchId())
|
.merchantId(wechatPayConfig.getMchId())
|
||||||
.privateKey(PemUtil.loadPrivateKeyFromString(keyString))
|
.privateKey(PemUtil.loadPrivateKeyFromString(InputStreamUtil.getContentStr("wechatPay/apiclient_key.pem")))
|
||||||
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
||||||
.merchantSerialNumber(wechatPayConfig.getMchSerialNo())
|
.merchantSerialNumber(wechatPayConfig.getMchSerialNo())
|
||||||
.apiV3Key(wechatPayConfig.getApiV3Key())
|
.apiV3Key(wechatPayConfig.getApiV3Key())
|
||||||
|
|
|
@ -7,19 +7,18 @@ import com.jwl.driver.server.response.BaseResponse;
|
||||||
import com.jwl.driver.server.service.IOrderPayInfoService;
|
import com.jwl.driver.server.service.IOrderPayInfoService;
|
||||||
import com.jwl.driver.server.service.ITdMemberService;
|
import com.jwl.driver.server.service.ITdMemberService;
|
||||||
import com.jwl.driver.server.service.ITdSysUserMemberService;
|
import com.jwl.driver.server.service.ITdSysUserMemberService;
|
||||||
|
import com.jwl.driver.server.util.InputStreamUtil;
|
||||||
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
||||||
import com.wechat.pay.java.core.notification.NotificationConfig;
|
import com.wechat.pay.java.core.notification.NotificationConfig;
|
||||||
import com.wechat.pay.java.core.notification.NotificationParser;
|
import com.wechat.pay.java.core.notification.NotificationParser;
|
||||||
import com.wechat.pay.java.core.notification.RequestParam;
|
import com.wechat.pay.java.core.notification.RequestParam;
|
||||||
|
import com.wechat.pay.java.core.util.PemUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpRequest;
|
import org.springframework.http.HttpRequest;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.servlet.resource.HttpResource;
|
import org.springframework.web.servlet.resource.HttpResource;
|
||||||
|
@ -35,7 +34,7 @@ import javax.annotation.Resource;
|
||||||
* @since 2023-08-10
|
* @since 2023-08-10
|
||||||
*/
|
*/
|
||||||
@Api(tags = "支付回调")
|
@Api(tags = "支付回调")
|
||||||
@Controller
|
@RestController
|
||||||
@RequestMapping("/payNoticeLog")
|
@RequestMapping("/payNoticeLog")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PayNoticeLogController {
|
public class PayNoticeLogController {
|
||||||
|
@ -67,7 +66,8 @@ public class PayNoticeLogController {
|
||||||
log.info("支付回调信息==============》{}",requestBody);
|
log.info("支付回调信息==============》{}",requestBody);
|
||||||
NotificationConfig config = new RSAAutoCertificateConfig.Builder()
|
NotificationConfig config = new RSAAutoCertificateConfig.Builder()
|
||||||
.merchantId(wechatPayConfig.getMchId())
|
.merchantId(wechatPayConfig.getMchId())
|
||||||
.privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
.privateKey(PemUtil.loadPrivateKeyFromString(InputStreamUtil.getContentStr("wechatPay/apiclient_key.pem")))
|
||||||
|
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
||||||
.merchantSerialNumber(wechatPayConfig.getPrivateKeyPath())
|
.merchantSerialNumber(wechatPayConfig.getPrivateKeyPath())
|
||||||
.apiV3Key(wechatPayConfig.getApiV3Key())
|
.apiV3Key(wechatPayConfig.getApiV3Key())
|
||||||
.build();
|
.build();
|
||||||
|
|
|
@ -72,7 +72,7 @@ public class TdSysUserMemberServiceImpl extends ServiceImpl<TdSysUserMemberMappe
|
||||||
.setCreateTime(nowTime)
|
.setCreateTime(nowTime)
|
||||||
.setUpdateTime(nowTime)
|
.setUpdateTime(nowTime)
|
||||||
.setStartDate(LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
|
.setStartDate(LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
|
||||||
.setEndDate(LocalDateTime.of(LocalDate.now(), LocalTime.MIN).minusSeconds(1));
|
.setEndDate(LocalDateTime.of(LocalDate.now(), LocalTime.MIN).plusDays(1).minusSeconds(1));
|
||||||
boolean save = this.save(userMember);
|
boolean save = this.save(userMember);
|
||||||
if (!save){
|
if (!save){
|
||||||
throw new BusinessException("充值会员失败");
|
throw new BusinessException("充值会员失败");
|
||||||
|
@ -86,7 +86,7 @@ public class TdSysUserMemberServiceImpl extends ServiceImpl<TdSysUserMemberMappe
|
||||||
} else if (StrUtil.equals(member.getUnit(),"3")) {
|
} else if (StrUtil.equals(member.getUnit(),"3")) {
|
||||||
endTime = endTime.plusYears(member.getDuration());
|
endTime = endTime.plusYears(member.getDuration());
|
||||||
}
|
}
|
||||||
userMember.setEndDate(endTime);
|
userMember.setEndDate(endTime.minusDays(1));
|
||||||
boolean update = this.update(userMember, cond);
|
boolean update = this.update(userMember, cond);
|
||||||
if (!update){
|
if (!update){
|
||||||
throw new BusinessException("会员充值失败");
|
throw new BusinessException("会员充值失败");
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package com.jwl.driver.server.util;
|
||||||
|
|
||||||
|
import com.wechat.pay.java.core.util.IOUtil;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.UncheckedIOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 曹林
|
||||||
|
* @description 流处理
|
||||||
|
* @create 2023/8/24 14:41
|
||||||
|
*/
|
||||||
|
public class InputStreamUtil {
|
||||||
|
|
||||||
|
// 获取文件内容
|
||||||
|
public static String getContentStr(String filePath){
|
||||||
|
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath);
|
||||||
|
String contentStr;
|
||||||
|
try {
|
||||||
|
Throwable var2 = null;
|
||||||
|
try {
|
||||||
|
contentStr = IOUtil.toString(inputStream);
|
||||||
|
} catch (Throwable var13) {
|
||||||
|
var2 = var13;
|
||||||
|
throw var13;
|
||||||
|
} finally {
|
||||||
|
if (inputStream != null) {
|
||||||
|
if (var2 != null) {
|
||||||
|
try {
|
||||||
|
inputStream.close();
|
||||||
|
} catch (Throwable var12) {
|
||||||
|
var2.addSuppressed(var12);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
inputStream.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (IOException var15) {
|
||||||
|
throw new UncheckedIOException(var15);
|
||||||
|
}
|
||||||
|
return contentStr;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,9 @@
|
||||||
package com.jwl.driver.server;
|
package com.jwl.driver.server;
|
||||||
|
|
||||||
import com.jwl.driver.server.config.WechatPayConfig;
|
import com.jwl.driver.server.config.WechatPayConfig;
|
||||||
|
import com.jwl.driver.server.service.IOrderPayInfoService;
|
||||||
|
import com.jwl.driver.server.service.ITdSysUserMemberService;
|
||||||
|
import com.jwl.driver.server.util.InputStreamUtil;
|
||||||
import com.wechat.pay.java.core.Config;
|
import com.wechat.pay.java.core.Config;
|
||||||
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
||||||
import com.wechat.pay.java.core.util.IOUtil;
|
import com.wechat.pay.java.core.util.IOUtil;
|
||||||
|
@ -30,44 +33,40 @@ public class WechatPayTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
private WechatPayConfig wechatPayConfig;
|
private WechatPayConfig wechatPayConfig;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ITdSysUserMemberService userMemberService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IOrderPayInfoService payInfoService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createService() throws IOException {
|
void createService() throws IOException {
|
||||||
|
|
||||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("wechatPay/apiclient_key.pem");
|
|
||||||
String keyString;
|
|
||||||
try {
|
|
||||||
Throwable var2 = null;
|
|
||||||
try {
|
|
||||||
keyString = IOUtil.toString(inputStream);
|
|
||||||
} catch (Throwable var13) {
|
|
||||||
var2 = var13;
|
|
||||||
throw var13;
|
|
||||||
} finally {
|
|
||||||
if (inputStream != null) {
|
|
||||||
if (var2 != null) {
|
|
||||||
try {
|
|
||||||
inputStream.close();
|
|
||||||
} catch (Throwable var12) {
|
|
||||||
var2.addSuppressed(var12);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
inputStream.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (IOException var15) {
|
|
||||||
throw new UncheckedIOException(var15);
|
|
||||||
}
|
|
||||||
|
|
||||||
Config config =
|
Config config =
|
||||||
new RSAAutoCertificateConfig.Builder()
|
new RSAAutoCertificateConfig.Builder()
|
||||||
.merchantId(wechatPayConfig.getMchId())
|
.merchantId(wechatPayConfig.getMchId())
|
||||||
.privateKey(PemUtil.loadPrivateKeyFromString(keyString))
|
.privateKey(PemUtil.loadPrivateKeyFromString(InputStreamUtil.getContentStr("wechatPay/apiclient_key.pem")))
|
||||||
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
// .privateKeyFromPath(wechatPayConfig.getPrivateKeyPath())
|
||||||
.merchantSerialNumber(wechatPayConfig.getMchSerialNo())
|
.merchantSerialNumber(wechatPayConfig.getMchSerialNo())
|
||||||
.apiV3Key(wechatPayConfig.getApiV3Key())
|
.apiV3Key(wechatPayConfig.getApiV3Key())
|
||||||
.build();
|
.build();
|
||||||
H5Service service = new H5Service.Builder().config(config).build();
|
H5Service service = new H5Service.Builder().config(config).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void purchaseMember(){
|
||||||
|
String trade_state = "SUCCESS";
|
||||||
|
String outTradeNo = "1694594904308846592";
|
||||||
|
if(trade_state.equals("SUCCESS")) {
|
||||||
|
//各种业务逻辑
|
||||||
|
//1.订单详情表里修改数据
|
||||||
|
payInfoService.payNotice(Long.parseLong(outTradeNo),Boolean.FALSE);
|
||||||
|
//2.冲会员
|
||||||
|
userMemberService.purchaseMember(Long.parseLong(outTradeNo));
|
||||||
|
|
||||||
|
}else{
|
||||||
|
//还是各种业务逻辑
|
||||||
|
//1.订单详情表里修改数据
|
||||||
|
payInfoService.payNotice(Long.parseLong(outTradeNo),Boolean.FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue