| @@ -202,4 +202,95 @@ public class WxBusinessOrderController extends BaseController { | |||||
| return stringBuilder.toString(); | 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("微信商圈通知---其他异常"); | |||||
| } | |||||
| } | |||||
| } | } | ||||