From 207dc8655711cddac2653e18b51e58a88dba2084 Mon Sep 17 00:00:00 2001 From: yj <Administrator@192> Date: 星期五, 06 三月 2020 18:14:36 +0800 Subject: [PATCH] 发圈处理 --- fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java b/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java index 10924f5..90cfc79 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java @@ -3,8 +3,11 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; +import java.math.BigDecimal; import java.security.SignatureException; import java.util.Date; +import java.util.HashMap; +import java.util.Map; import javax.annotation.Resource; import javax.crypto.Mac; @@ -14,16 +17,27 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.yeshi.utils.wx.WXUtil; +import com.aliyun.openservices.ons.api.Message; +import com.aliyun.openservices.ons.api.Producer; +import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; +import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg; import com.yeshi.fanli.dto.push.PushContentDTO; import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState; import com.yeshi.fanli.entity.config.push.PushMsgFactory; +import com.yeshi.fanli.entity.shop.BanLiShopOrder; import com.yeshi.fanli.exception.push.PushException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService; import com.yeshi.fanli.service.inter.push.PushService; +import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; +import com.yeshi.fanli.util.rocketmq.MQTopicName; +import com.yeshi.fanli.util.shop.BanLiShopOrderUtil; +import com.yeshi.fanli.util.wx.BanLiShopWXPayUtil; import net.sf.json.JSONObject; @@ -44,6 +58,12 @@ @Resource private MsgDeviceReadStateService msgDeviceReadStateService; + + @Resource(name = "producer") + private Producer producer; + + @Resource + private BanLiShopOrderService banLiShopOrderService; /** * 瀹㈡湇娑堟伅鍥炶皟 @@ -150,4 +170,38 @@ out.print("success"); } + @RequestMapping(value = "banlishop/pay") + public void banLiShopPay(HttpServletRequest request, PrintWriter out) { + + Map<String, String> map = WXUtil.parseXML(request); + JSONObject json = JSONObject.fromObject(map); + LogHelper.test("鍟嗗煄寰俊鏀粯鍥炶皟:" + json.toString()); + String sign = map.get("sign"); + map.remove("sign"); + boolean isSuccess = BanLiShopWXPayUtil.signIsRight(map, sign); + if (isSuccess) + if (map.get("return_code").equalsIgnoreCase("SUCCESS") + && map.get("result_code").equalsIgnoreCase("SUCCESS")) { + // 鍟嗘埛璁㈠崟鍙� + String wxPayOrderNo = map.get("out_trade_no"); + // 璁㈠崟鍙� + String orderNo = BanLiShopOrderUtil.getOrderNoFromWXPayOrderNo(wxPayOrderNo); + if (!StringUtil.isNullOrEmpty(orderNo)) { + BanLiShopOrder order = banLiShopOrderService.selectByOrderNo(orderNo); + if (order != null) {// 鏀粯鎴愬姛娑堟伅鎺ㄩ�� + BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid(), + new BigDecimal(map.get("total_fee")).multiply(new BigDecimal("0.01"))); + Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, + OrderTopicTagEnum.banLiShopOrderPaid, msg); + producer.send(message); + Map<String, String> returnMap = new HashMap<>(); + returnMap.put("return_code", "SUCCESS"); + returnMap.put("return_msg", "OK"); + out.print(WXUtil.loadWXMessage(returnMap)); + out.close(); + } + } + } + } + } -- Gitblit v1.8.0