From f062d3876df3bbeb94b955c5acf928ef55daf991 Mon Sep 17 00:00:00 2001 From: xyiege Date: Fri, 25 Nov 2022 14:06:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../szwh/service/impl/PayServiceImpl.java | 2 +- .../resources/mapper/szwh/OrderMapper.xml | 5 +- .../cn/chjyj/szwh/service/PayServiceTest.java | 93 +++++++++++++++++++ 3 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 src/test/java/cn/chjyj/szwh/service/PayServiceTest.java diff --git a/src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java index 32599d3..de28c00 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/PayServiceImpl.java @@ -133,7 +133,7 @@ public class PayServiceImpl implements PayService { log.info("支付回调 payCallback:"+data); //todo 后续改造为可以配置型 String url="https://t.masget.com/openapi/rest"; - String sckey ="gRAZZKiNw0UbTuF9";;// 密钥 + String sckey ="gRAZZKiNw0UbTuF9";// 密钥 String appid="910000198"; //应用id String session="iba3t9dqln8etmcaceq1xtqr7urevia1"; //token try { diff --git a/src/main/resources/mapper/szwh/OrderMapper.xml b/src/main/resources/mapper/szwh/OrderMapper.xml index b43b854..5f5d127 100644 --- a/src/main/resources/mapper/szwh/OrderMapper.xml +++ b/src/main/resources/mapper/szwh/OrderMapper.xml @@ -224,9 +224,7 @@ - ${k} = #{v} - where id=#{id} @@ -236,6 +234,7 @@ update - set `status`=5,`shuttime`=#{shuttime} where batchcode=#{batchcode} + set `status`=5,`shuttime`=#{shuttime} + where batchcode=#{batchcode} \ No newline at end of file diff --git a/src/test/java/cn/chjyj/szwh/service/PayServiceTest.java b/src/test/java/cn/chjyj/szwh/service/PayServiceTest.java new file mode 100644 index 0000000..9e520a8 --- /dev/null +++ b/src/test/java/cn/chjyj/szwh/service/PayServiceTest.java @@ -0,0 +1,93 @@ +package cn.chjyj.szwh.service; + +import cn.chjyj.szwh.bean.Goods; +import cn.chjyj.szwh.bean.Order; +import cn.chjyj.szwh.bean.OrderGoodsDetail; +import cn.chjyj.szwh.mapper.GoodsMapper; +import cn.chjyj.szwh.mapper.OrderGoodsDetailMapper; +import cn.chjyj.szwh.mapper.OrderMapper; +import cn.chjyj.szwh.utils.pay.security.AesEncryption; +import com.alibaba.fastjson2.JSONObject; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class PayServiceTest { + @Autowired + private OrderMapper orderMapper; + @Autowired + private OrderGoodsDetailMapper orderGoodsDetailMapper; + @Autowired + private GoodsMapper goodsMapper; + + @Test + public void payComplete() { + } + + @Test + public void payFinishOperate() { + } + + // 支付回调结果 + @Test + public void payCallback() throws Exception { + String dd ="kfz3sNCvoH6jMGoM7NFwfQuLpuG50zIu-c5DKJcJovqVOUSoy4V9k0M5VOSQd7hiUeiueTnFNBsnASusHRY9IqoH08vXsUoy4GfX69ykRBsWz0lB1DSNyX3QPkP5QOK_o_admPpLAeY9p2MIoSE_0yZr2_1-Z5DfaVCt6naIpkUlTH4vDO__vVxZWHws3IGifQ0qF90V8gvfEXv1ZMjBePpdISNXWxgecuvMokMhGWqlHY9R3BgOchoe7PWVkMLh4-vHLZF8OxjPaU_B6J6UicgwfuDbs01YC2qPj-h_d-3KkpNOppjA11LWb9_fD_yQBG91VK-gE2kF5jgn4ncJGoDqySMkenzVh9edONRfjGAulqL_EAcIBnMWTB1ez-T8wZ1s4bXpJQx7wfPwKvwBZDk0yGIL9LWVYUXbxY7Qmf8_iYz4OiHYCRfVdnKXwAuicDIWUB363fWX1AGBh2p7fMhFK5n1js3ytf9Q6zqCDMG4YObLAA-stbsV4o3rrDh0pR40NvR0KWvLnCKlSwV3jfElQ9iFz9lel12bhijQ77TPpublL-Capi7rC_CAJvDTHIGacNRFTJAtxusHB_nLwoYo6dOAkgrOoZkwAmyvq7nDqwdiPV4BtJ8w_VFEXQ6deEEpJtKveu4o3WDnXx2taZn8UFL8zWs2A1cJkBpbXe6DUJEbosnI077EfokPwZtn6KueHAIeX5m7T37FfR_zprP92097iVQQnDbU8rmwEw1a1IxCAFU7RIrY2bqkEJXbO2KVxReZoBvP3f70skfSiPDAojdzaJa9qpfaUDR6_ZFx1F9lj0fk7--aXE7io-HSIaLxsFomMoN6QzG76JpSoCbE3MFcr81tTGvYDgh5mbXCnLqNdiCflCSmAWJ4rvXU6xndBMMKi1-oLKIEnrVvK1GIZK7FMPtW_WTKwsq66CL1djinIgVWwbvXvTyhwpHdF6cfryKU1s0TpvD72Id5fFXXBP2bbJQsAMra9BcuXOmRN-DSc7iFoHCYOOEcJONEc0AkqIHZBzH9HD338HRXY29yY-GyM5U5GSQngEyXhOjeb-dKmiphL6FQyuwmwD1e5Osx98D7C33sRRKYm56eW_SumCR9UDQ46gzTzGC3kQXNhMex-EtAJ9AdkjAEHLedwBZRaR5zKf83QHGhEmIo9WWjDuNChLMe-tzAhd-GfqGCxvEaq6-o8sp-vqoyClccCZlArCQEfJNNoBcvtatRUzp1RF7ziX6efW238x_kkE60FdGPrW0R_E79UNTcIj01"; + //解密 略 + //String jstr ="{\"businesstypename\":\"现场收款\",\"subpaymenttypeid\":12,\"latitude\":0.0,\"bankaccount\":\"12_null\",\"channelpayorderid\":\"2022112522001401901440759408\",\"payorderid\":\"30321021125133936750\",\"subcompanyname\":\"深圳文化产权交易所有限公司(测试商户)\",\"body\":\"11.25-永久\",\"respcode\":2,\"channelordernumber\":\"288590033351202211253266656442\",\"businesstype\":1001,\"rcompanyname\":\"深圳文化产权交易所有限公司(测试商户)\",\"settlementtype\":1,\"companyid\":910000198,\"ordernumber\":\"1669354770578266\",\"rcompanyid\":910000198,\"respmsg\":\"支付完成\",\"longitude\":0.0,\"amount\":1,\"subcompanyid\":910000198,\"bankcardtype\":0,\"loginname\":\"深圳文化产权交易所有限公司(测试商户)\",\"subpaymenttypename\":\"支付宝扫码支付\",\"paymenttypename\":\"支付宝支付\",\"companyname\":\"深圳文化产权交易所有限公司(测试商户)\",\"businesstime\":\"2022-11-25 13:40:32\",\"paymenttypeid\":12,\"stationid\":0,\"ordertype\":307}\n"; + + String sckey ="gRAZZKiNw0UbTuF9";// 密钥 + //解密 + String desencrypt = AesEncryption.Desencrypt(dd, sckey, sckey); + + // 转为json + JSONObject dataObject = JSONObject.parseObject(desencrypt); + //支付完成 + if (dataObject.getIntValue("respcode") == 2) { + //订单编号 + String ordersn = dataObject.getString("ordernumber"); + //查找订单并更新订单状态 + Order order =orderMapper.getOrderByBatchcode(ordersn); + if(order!=null){ //订单存在,理论上应该是存在的 + //查找订单中的商品 + List ordgdlist = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(ordersn); + //增加销售记录 + for(OrderGoodsDetail ordg:ordgdlist){ + // 根据goodsislicode 查询 + Goods goods = goodsMapper.getGoodsByIsli(ordg.getGoodsIslicode()); + // 更新订单状态 + Map upgmap = new HashMap(); + upgmap.put("sale_count",goods.getSaleCount()+1); + goodsMapper.updateGoods(upgmap,goods.getId()); + } + //更新订单字段 + Map upmap = new HashMap(); + upmap.put("status",2); + upmap.put("pay_status",2); + upmap.put("paymenttime",new Date()); + upmap.put("payid",dataObject.getString("payorderid")); //支付流水单号 + //更新订单指定字段 + orderMapper.updateOrderStatus(upmap,order.getId()); + } + //订单信息发送至分发系统 + + //买家发票信息等 + //卖家发票 +// $this->payFinishOperate($batchcode); +// $this->invoiceBuyOperate($batchcode); +// $this->invoiceSellerOperate($batchcode); + } + + + } +} \ No newline at end of file