diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java index e466fda39..29117a072 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java @@ -202,4 +202,95 @@ public class WxBusinessOrderController extends BaseController { return stringBuilder.toString(); } + + @PostMapping(value = "/test") + @ResponseBody + public void createOrdertests(){ + + SignatureHeader header = new SignatureHeader(); + header.setSerialNo("76EEF0C28D079D9CED85C67237F173FF825CFAE7"); + header.setTimeStamp("1627548505"); + header.setNonce("xFNtsILGmKGd0H2coSFk8GmezpgthOeI"); + header.setSigned("miuGemV3bTvIOt9+mNElmPigc+FebFO8qxucrpGxTOzjYWnhty7VwIuublUc/GLEtRdbYrnMULKNoFeQbrEi6LyBVWHVhm6nmIhEdzfnh9PnYxa/7Rw31CAjk5q/py0fhH/EQNyVeGERBAelrgR5pV6yyvx98550QG31C/d3KczVH3srvTfy6LvKc7lAmhTh5WjhOqf0Rv7pGfEHkhCLD+QHGwnCNzXchsQz3Ruz63Sldtu/rHCSf2Gd/dQPFjgaNN31Y8usho6ERhL4r7S7UFamBXmRuVKhWQPg/YGQzz748c2X6wyjAMDczEq56eAHx4FfOCZFRgCPHDe+n2v3jw=="); + + + logger.info("微信商圈支付通知---header{}"+header.toString()); + String tenantId = "1019"; + TenantEntity tenantEntity = wxMallService.getByTenantId(tenantId); + + try { + String body = "{\"id\":\"91930167-b554-56b0-975b-9661ad94f621\",\"create_time\":\"2021-07-29T10:45:15+08:00\",\"resource_type\":\"encrypt-resource\",\"event_type\":\"MALL_TRANSACTION.SUCCESS\",\"summary\":\"支付成功\",\"resource\":{\"original_type\":\"mall_transaction\",\"algorithm\":\"AEAD_AES_256_GCM\",\"ciphertext\":\"OGgviwJkyUaRTi+NtrFR7tCoE/nYqOQGXOCWCH9R6HefMu5u4aqRG/O0Yuf6ucVJRmCXcT86bf9PlFM1cSsBjaO2Kez0HO6SciNiH4jpLwqMwq4BQ/uYllbfu+aD+QV67oXOxTvgSiz3zrIgoAdTJ80plIcfOVQ3+PILrlNYVyVH5ZtaZMxNaIhNHPf2xOOVngGBtQI22GYbwiGkJOR/rms2WRjxP0cOI7xp1+7oOvX1Mc0s/AiFMbDC/O6VXZrbL/TY0J/HufUBPzelt2Kt5z/zFL5w7MlgJhOjm+8WVRTnbrywlYl5KmPJ9T5+tE0bLC8jE2RkltrflvA1Z1zf/UCqA4Pp5uLQzd8NotimwGr21FCqasO577aROmwuG3BZY1XVqdJ0Co7zQEkBV9XftP4ECIVZtk8H/VHYmeCOch19\",\"associated_data\":\"mall_transaction\",\"nonce\":\"cnqsJHRack3M\"}}"; + logger.info("微信商圈支付通知---body{}"+body); + WxPayService wxPayService = wxPayAccountService.getWxPayService(tenantId); + + //----------------签名验证----------- +// BusinessCircleNotifyData notifyData = verifySignature(request,wxPayService); + BusinessCircleNotifyData notifyData = wxPayService.getBusinessCircleService().parseNotifyData(body, header); + logger.info("微信商圈通知---回调通知对象{}"+notifyData.toString()); + + WxBusinessCircleOrder wxBusinessCircleOrder = new WxBusinessCircleOrder(); + wxBusinessCircleOrder.updateTenantInfo(tenantEntity); + wxBusinessCircleOrder.setNoticeId(notifyData.getId()); + wxBusinessCircleOrder.setNoticeCreateTime(sdf.parse(notifyData.getCreateTime())); + wxBusinessCircleOrder.setNoticeEventType(notifyData.getEventType()); + wxBusinessCircleOrder.setSummary(notifyData.getSummary()); + + //解密 + if(WxPayConstant.NOTICE_EVENT_TYPE.equals(notifyData.getEventType())){ + PaidResult result = wxPayService.getBusinessCircleService().decryptPaidNotifyDataResource(notifyData); + logger.info("微信商圈支付成功通知---解密结果{}"+notifyData.toString()); + + wxBusinessCircleOrder.setWxMchid(result.getMchid()); + wxBusinessCircleOrder.setWxMerchantName(result.getMerchantName()); + wxBusinessCircleOrder.setWxShopName(result.getShopName()); + wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); + wxBusinessCircleOrder.setAppid(result.getAppid()); + wxBusinessCircleOrder.setOpenid(result.getOpenid()); + wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getTimeEnd())); + wxBusinessCircleOrder.setAmount(result.getAmount()); + wxBusinessCircleOrder.setPayAmount(result.getAmount()); + wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); + wxBusinessCircleOrder.setCommitTag(result.getCommitTag()); + + + + }else if(WxPayConstant.REFUND_EVENT_TYPE.equals(notifyData.getEventType())){ + RefundResult result = wxPayService.getBusinessCircleService().decryptRefundNotifyDataResource(notifyData); + logger.info("微信商圈退款成功通知---解密结果{}"+result.toString()); + + wxBusinessCircleOrder.setWxMchid(result.getMchid()); + wxBusinessCircleOrder.setWxMerchantName(result.getMerchantName()); + wxBusinessCircleOrder.setWxShopName(result.getShopName()); + wxBusinessCircleOrder.setWxShopNumber(result.getShopNumber()); + wxBusinessCircleOrder.setAppid(result.getAppid()); + wxBusinessCircleOrder.setOpenid(result.getOpenid()); + wxBusinessCircleOrder.setTimeEnd(sdf.parse(result.getRefundTime())); + wxBusinessCircleOrder.setAmount(result.getPayAmount()); + wxBusinessCircleOrder.setPayAmount(result.getPayAmount()); + wxBusinessCircleOrder.setTransactionId(result.getTransactionId()); + + wxBusinessCircleOrder.setRefundAmount(result.getRefundAmount()); + wxBusinessCircleOrder.setRefundId(result.getRefundId()); + + + } + + } catch (WxPayException e) { + e.printStackTrace(); + logger.error("微信商圈通知---"+e.getCustomErrorMsg()); + + } catch (ParseException e) { + e.printStackTrace(); + logger.error("微信商圈通知---时间转换异常"); + + } catch(MallinkException e){ + logger.error("微信商圈通知---"+e.getMessage()); + + }catch (Exception e){ + e.printStackTrace(); + logger.error("微信商圈通知---其他异常"); + + } + } + }