Bläddra i källkod

native支付接入

xdd 1 dag sedan
förälder
incheckning
72f1f1bb05

+ 1 - 1
fs-company/src/main/java/com/fs/pay/controller/WxPayController.java

@@ -147,7 +147,7 @@ public class WxPayController extends WxPayApiController {
     public String payNotify(HttpServletRequest request) {
         // 支付结果通用通知文档: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7
         String xmlMsg = HttpKit.readData(request);
-        System.out.println("支付通知="+xmlMsg);
+        log.info("支付通知 {}", xmlMsg);
         Map<String, String> params = WxPayKit.xmlToMap(xmlMsg);
         String returnCode = params.get("return_code");
         // 微信支付订单号

+ 1 - 0
fs-service-system/src/main/java/com/fs/company/service/ICompanyRechargeService.java

@@ -72,6 +72,7 @@ public interface ICompanyRechargeService
     CompanyRecharge selectCompanyRechargeByNo(String s);
 
     R payNotify(CompanyRecharge recharge);
+    R payNotify(String orderNo);
 
     BigDecimal selectCompanyRechargeMoney();
 

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyRechargeOrderServiceImpl.java

@@ -69,7 +69,7 @@ public class CompanyRechargeOrderServiceImpl implements CompanyRechargeOrderServ
         WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
 
         orderRequest.setBody("公司余额充值");
-        orderRequest.setOutTradeNo(OrderUtils.getOrderNo());
+        orderRequest.setOutTradeNo("recharge-"+OrderUtils.getOrderNo());
         orderRequest.setTotalFee(order.getPayAmount().multiply(BigDecimal.valueOf(100)).intValue());
         orderRequest.setSpbillCreateIp(IpUtil.getLocalhostIp());
         orderRequest.setNotifyUrl(wxPayProperties.getNativeNotifyUrl());

+ 32 - 2
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyRechargeServiceImpl.java

@@ -6,12 +6,14 @@ import java.util.List;
 
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
+import com.fs.company.constant.PaymentStatus;
 import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyMoneyLogs;
 import com.fs.company.domain.CompanyRechargeOrder;
 import com.fs.company.dto.RechargeDTO;
 import com.fs.company.mapper.CompanyMapper;
 import com.fs.company.mapper.CompanyMoneyLogsMapper;
+import com.fs.company.mapper.CompanyRechargeOrderMapper;
 import com.fs.company.service.CompanyRechargeOrderService;
 import com.fs.company.vo.CompanyRechargeExportVO;
 import com.fs.company.vo.CompanyRechargeVO;
@@ -123,13 +125,13 @@ public class CompanyRechargeServiceImpl implements ICompanyRechargeService
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
     public R payNotify(CompanyRecharge recharge) {
         //修改状态
         recharge.setPayTime(new Date());
         recharge.setStatus(1);
         companyRechargeMapper.updateCompanyRecharge(recharge);
-        Company company=companyMapper.selectCompanyById(recharge.getCompanyId());
+        Company company=companyMapper.selectCompanyByIdForUpdate(recharge.getCompanyId());
         company.setMoney(company.getMoney().add(recharge.getMoney()));
         //写入日志
         CompanyMoneyLogs log=new CompanyMoneyLogs();
@@ -147,6 +149,34 @@ public class CompanyRechargeServiceImpl implements ICompanyRechargeService
         return R.ok();
     }
 
+    @Autowired
+    private CompanyRechargeOrderMapper companyRechargeOrderMapper;
+
+    @Override
+    public R payNotify(String orderNo) {
+        CompanyRechargeOrder order = companyRechargeOrderMapper.selectByOrderNo(orderNo);
+
+        //修改状态
+        order.setPayStatus(PaymentStatus.SUCCESS.getCode());
+        companyRechargeOrderMapper.updateByOrderNo(order);
+
+        Company company=companyMapper.selectCompanyByIdForUpdate(order.getCompanyId());
+        company.setMoney(company.getMoney().add(order.getPayAmount()));
+        //写入日志
+        CompanyMoneyLogs log=new CompanyMoneyLogs();
+        log.setCompanyId(order.getCompanyId());
+        log.setMoney(order.getPayAmount());
+        log.setRemark("充值金额:"+order.getPayAmount()+"元");
+        log.setCreateTime(new Date());
+        log.setLogsType(3);
+        log.setBalance(company.getMoney());
+        moneyLogsMapper.insertCompanyMoneyLogs(log);
+        //修改余额
+        company.setMoney(company.getMoney().add(order.getPayAmount()));
+        companyMapper.updateCompany(company);
+        return R.ok();
+    }
+
     @Override
     public BigDecimal selectCompanyRechargeMoney() {
         return companyRechargeMapper.selectCompanyRechargeMoney();

+ 1 - 1
fs-service-system/src/main/resources/application-config-fby.yml

@@ -94,7 +94,7 @@ wx:
     privateKeyPath: 'C:\cert\1716217886_20250509_cert\apiclient_key.pem'
     privateCertPath: 'C:\cert\1716217886_20250509_cert\apiclient_cert.pem'
     certSerialNo: '4E8BD68BC2BFD37CA58244D660E5FDCCE475D82E'
-    nativeNotifyUrl: 'https://userapp.bly.ylrztop.com/app/wxpay/wxPayNotify'
+    nativeNotifyUrl: 'http://company.fbylive.com/prod-api/pay/wxPay/payNotify'
   mp:
     useRedis: false
     redisConfig: