@源码地址来源: https://minglisoft.cn/honghu/business.html
package com.honghu.cloud.controller;import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang.StringUtils;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.honghu.cloud.bean.GoldLog;
import com.honghu.cloud.bean.GoldRecord;
import com.honghu.cloud.bean.Payment;
import com.honghu.cloud.bean.PlatformPay;
import com.honghu.cloud.bean.PlatformPayFlow;
import com.honghu.cloud.code.ResponseCode;
import com.honghu.cloud.dto.CloudPurchaseOrderDto;
import com.honghu.cloud.dto.DistributionSettingDto;
import com.honghu.cloud.dto.IntegralGoodsDto;
import com.honghu.cloud.dto.IntegralGoodsOrderDto;
import com.honghu.cloud.dto.MessageDto;
import com.honghu.cloud.dto.OrderFormDto;
import com.honghu.cloud.dto.PredepositDto;
import com.honghu.cloud.dto.PredepositLogDto;
import com.honghu.cloud.dto.RushOrderformDto;
import com.honghu.cloud.dto.StoreDto;
import com.honghu.cloud.dto.SysConfigDto;
import com.honghu.cloud.dto.SysConfigExtendDto;
import com.honghu.cloud.dto.UserDto;
import com.honghu.cloud.feign.AgentProfitFeignClient;
import com.honghu.cloud.feign.CloudPurchaseOrderFeignClient;
import com.honghu.cloud.feign.DistributionOrderFeignClient;
import com.honghu.cloud.feign.DistributionProfitFeignClient;
import com.honghu.cloud.feign.DistributionSettingFeignClient;
import com.honghu.cloud.feign.HandleOrderFormFeignClient;
import com.honghu.cloud.feign.IntegralGoodsFeignClient;
import com.honghu.cloud.feign.IntegralGoodsOrderFeignClient;
import com.honghu.cloud.feign.JiguangPushFeignClient;
import com.honghu.cloud.feign.LiveOrderFeignClient;
import com.honghu.cloud.feign.MessageFeignClient;
import com.honghu.cloud.feign.OrderFormFeignClient;
import com.honghu.cloud.feign.OrderFormToolsFeignClient;
import com.honghu.cloud.feign.PinPayRecordFeignClient;
import com.honghu.cloud.feign.PredepositFeignClient;
import com.honghu.cloud.feign.PredepositLogFeignClient;
import com.honghu.cloud.feign.RushOrderFormFeignClient;
import com.honghu.cloud.feign.StoreFeignClient;
import com.honghu.cloud.feign.SysConfigFeignClient;
import com.honghu.cloud.feign.SysconrigExtendFeignClient;
import com.honghu.cloud.feign.TXTemplateFeignClient;
import com.honghu.cloud.feign.UserFeignClient;
import com.honghu.cloud.pay.alipay.services.AlipayService;
import com.honghu.cloud.pay.alipay.util.AlipayUtil;
import com.honghu.cloud.pay.bill.util.MD5Util;
import com.honghu.cloud.pay.tenpay.RequestHandler;
import com.honghu.cloud.pay.tenpay.ResponseHandler;
import com.honghu.cloud.pay.tenpay.util.Sha1Util;
import com.honghu.cloud.pay.tenpay.util.TenpayUtil;
import com.honghu.cloud.pay.unionpay.acp.sdk.SDKUtil;
import com.honghu.cloud.service.IGoldLogService;
import com.honghu.cloud.service.IGoldRecordService;
import com.honghu.cloud.service.IPaymentService;
import com.honghu.cloud.service.IPlatformPayFlowService;
import com.honghu.cloud.service.IPlatformPayService;
import com.honghu.cloud.tools.AccessTokenTools;
import com.honghu.cloud.tools.SecurityUserHolder;
import com.honghu.cloud.tools.qrcode.QRCodeUtil;
import com.honghu.cloud.utils.CommUtil;
import com.honghu.cloud.utils.tools.Md5Encrypt;import lombok.extern.log4j.Log4j;
import net.sf.json.JSONObject;/*** * <p>* Title: HongHuPayViewAction.java* </p>* * <p>* Description:在线支付回调控制器,处理系统支持的所有支付方式回调业务处理,包括支付宝、财付通、快钱、paypal、网银在线* </p>* * <p>* Copyright: Copyright (c) 2015* </p>* * <p>* Company: www.minglisoft.cn* </p>* * @author honghu* * @date 2014-5-25* * @version honghu_b2b2c v8.0 2016版*/
@SuppressWarnings({ "unchecked", "rawtypes", "unused" })
@RestController
@Log4j
@RequestMapping(value = "/pay")
public class PayController {private static final Logger logger = LoggerFactory.getLogger(PayController.class);@Autowiredprivate SysConfigFeignClient sysConfigFeignClient;@Autowiredprivate OrderFormFeignClient orderFormFeignClient;@Autowiredprivate PredepositLogFeignClient predepositLogFeignClient;@Autowiredprivate PredepositFeignClient predepositFeignClient;@Autowiredprivate IPaymentService paymentService;@Autowiredprivate CloudPurchaseOrderFeignClient cloudPurchaseOrderFeignClient;@Autowiredprivate IntegralGoodsOrderFeignClient integralGoodsOrderFeignClient;@Autowiredprivate RushOrderFormFeignClient rushOrderFormFeignClient;@Autowiredprivate UserFeignClient userFeignClient;@Autowiredprivate IGoldRecordService goldRecordService;@Autowiredprivate IGoldLogService goldLogService;@Autowiredprivate HandleOrderFormFeignClient handleOrderFormFeignClient;@Autowiredprivate OrderFormToolsFeignClient orderFormToolsFeignClient;@Autowiredprivate IntegralGoodsFeignClient integralGoodsFeignClient;@Autowiredprivate PinPayRecordFeignClient pinPayRecordFeignClient;@Autowiredprivate DistributionOrderFeignClient distributionOrderFeignClient;@Autowiredprivate SysconrigExtendFeignClient sysconrigExtendFeignClient;@Autowiredprivate IPlatformPayService platformPayService;@Autowiredprivate IPlatformPayFlowService platformPayFlowService;@Autowiredprivate StoreFeignClient storeFeignClient;@Autowiredprivate LiveOrderFeignClient liveOrderFeignClient;@Autowiredprivate MessageFeignClient messageFeignClient;@Autowiredprivate DistributionProfitFeignClient distributionProfitFeignClient;@Autowiredprivate DistributionSettingFeignClient distributionSettingFeignClient;@Autowiredprivate AgentProfitFeignClient agentProfitFeignClient;@Autowiredprivate TXTemplateFeignClient tXTemplateFeignClient;@Autowiredprivate JiguangPushFeignClient jiguangPushFeignClient;@Autowiredprivate AccessTokenTools accessTokenTools;@Autowiredprivate AlipayService alipayService;/*	@Value("${notify.url}")private String notify_url;*//*** 移动端订单支付详情* * @param request* @param response* @param payType* @param order_id* @param order_type* @param pay_password* @return*/@RequestMapping(value = "/order_pay", method = RequestMethod.POST)public Map<String, Object> order_pay(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) {String order_type = json.optString("order_type");String payType = json.optString("payType");Long order_id = json.optLong("order_id");UserDto user = SecurityUserHolder.getCurrentUser(request);Map<String, Object> result = new HashMap<String, Object>();if ("cloudpurchase".equals(order_type)) {CloudPurchaseOrderDto order = cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));if (order != null) {if ((order.getUser_id().equals(user.getId())) && (order.getStatus() == 0)) {if ("wx_pay".equals(payType)) {try {// TODO// 微信支付return ResponseCode.buildSuccessMap(wx_pay1(request, response, order_id, payType, order_type));} catch (Exception e) {log.error(e.toString());return ResponseCode.buildCodeMap("20008", "支付方式错误!", null);}}if ("wxh5_pay".equals(payType)) {try {// TODO// 微信支付return ResponseCode.buildSuccessMap(wxh5_pay(request, response, order_id, payType, order_type));} catch (Exception e) {log.error(e.toString());return ResponseCode.buildCodeMap("20008", "支付方式错误!", null);}}if (payType.equals("balance")) {double order_total_price = CommUtil.null2Double(Integer.valueOf(order.getPrice()));result.put("order_total_price", Double.valueOf(order_total_price));result.put("type", order_type);result.put("order_id", order_id);return ResponseCode.buildCodeMap("20009", "余额支付!", null);}result.put("type", "cloudpurchase");result.put("order_id", order.getId());result.put("url", CommUtil.getURL(request));Map<String, Object> params = Maps.newHashMap();params.put("mark", payType);List<Payment> payments = paymentService.queryPageList(params);if (payments.size() > 0) {Payment payment = payments.get(0);result.put("payment_id", payment.getId());}return ResponseCode.buildSuccessMap(result);}}return ResponseCode.buildCodeMap("20010", "订单中商品已被删除,请重新下单", null);}OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));Map<Boolean, Object> map_verify = orderFormToolsFeignClient.orderForm_verify(order, user.getId());Iterator iterator = map_verify.keySet().iterator();while (iterator.hasNext()) {Boolean verify_result = (Boolean) iterator.next();if (!verify_result.booleanValue()) {return ResponseCode.buildFailMap("", map_verify.get(verify_result));}}int order_status = orderFormToolsFeignClient.query_order_status(CommUtil.null2String(order_id));if (order_status == 10) {if ((payType == null) || ("".equals(CommUtil.null2String(payType)))) {return ResponseCode.buildCodeMap("20011", "支付方式错误", null);}Map<String, Object> params = Maps.newHashMap();params.put("mark", payType);List<Payment> payments = paymentService.queryPageList(params);if (payments.size() > 0) {Payment payment = payments.get(0);order.setPayment_id(payment.getId());order.setPayment_mark(payment.getMark());order.setPayment_name(payment.getName());}order.setPayType("online");orderFormFeignClient.updateById(order);if (payType.equals("balance")) {double order_total_price = orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order_id));result.put("order_total_price", order_total_price);result.put("user", user);} else {result.put("payType", payType);result.put("url", CommUtil.getURL(request));// mv.addObject("payTools", this.payTools);String type = "goods";if (order.getOrder_cat() == 2) {type = "group";}result.put("type", type);result.put("payment_id", order.getPayment_id());if ("wx_pay".equals(payType)) {try {// TODO// 微信支付return ResponseCode.buildSuccessMap(wx_pay1(request, response, order_id, payType, order_type));} catch (Exception e) {log.error(e.toString());return ResponseCode.buildCodeMap("20011", "支付方式错误", null);}}}result.put("order", order);result.put("order_id", order.getId());result.put("user", user);}if (order_status == 11) {if (payType.equals("balance")) {double order_total_price = orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order_id));result.put("order_total_price", order_total_price);result.put("user", user);} else {result.put("payType", payType);result.put("url", CommUtil.getURL(request));// mv.addObject("payTools", this.payTools);String type = "goods";result.put("type", type);result.put("payment_id", order.getPayment_id());if ("wx_pay".equals(payType)) {try {// TODO// 微信支付return ResponseCode.buildSuccessMap(wx_pay1(request, response, order_id, payType, order_type));} catch (Exception e) {log.error(e.toString());return ResponseCode.buildCodeMap("20011", "支付方式错误", null);}}}result.put("order", order);result.put("order_id", order.getId());result.put("user", user);}return ResponseCode.buildSuccessMap(result);}/*** 手机订单货到付款* * @param request* @param response* @param order_id* @param pay_msg* @param pay_session* @return* @throws Exception*/@RequestMapping({ "/order_pay_payafter" })public Map<String, Object> order_pay_payafter(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) throws Exception {String pay_session = json.optString("pay_session");String pay_msg = json.optString("pay_msg");String order_id = json.optString("order_id");Map<String, Object> result = new HashMap<String, Object>();String pay_session1 = CommUtil.null2String(request.getSession(false).getAttribute("pay_session"));if (pay_session1.equals(pay_session)) {OrderFormDto order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));boolean exist = orderFormToolsFeignClient.verify_goods_exist(order);if (!exist) {return ResponseCode.buildFailMap("订单中商品已被删除,请重新下单", null);}boolean inventory_very = orderFormToolsFeignClient.verify_goods_Inventory(order);if (!inventory_very) {return ResponseCode.buildFailMap("订单中商品库存不足,请重新下单", null);}boolean ret = handleOrderFormFeignClient.payByPayafter(order, CommUtil.getURL(request), pay_msg);if (ret) {orderFormToolsFeignClient.updateGoodsInventory(order);}request.getSession(false).removeAttribute("pay_session");result.put("op_title", "货到付款提交成功,等待发货");result.put("url", CommUtil.getURL(request) + "/buyer/order_list");} else {return ResponseCode.buildFailMap("订单已经支付,禁止重复支付", null);}return ResponseCode.buildSuccessMap(result);}/*** 支付宝在线支付成功回调控制* * @param request* @param response* @return* @throws Exception*//*@RequestMapping({ "/aplipay_return" })public Map<String, Object> aplipay_return(HttpServletRequest request, HttpServletResponse response)throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();System.out.println("pc_alipay_return");String trade_no = request.getParameter("trade_no");String[] order_nos = request.getParameter("out_trade_no").split("-");String total_fee = request.getParameter("price");String subject = request.getParameter("subject");String order_no = order_nos[2];String type = CommUtil.null2String(request.getParameter("body")).trim();String trade_status = request.getParameter("trade_status");OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if (type.equals("goods")) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("cash")) {obj = predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("group")) {main_order = orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}Map<String, String> params = Maps.newHashMap();Map requestParams = request.getParameterMap();for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = valueStr + values[i] + ",";}params.put(name, valueStr);}AlipayConfig config = new AlipayConfig();Payment payment = null;if ((type.equals("goods")) || (type.equals("group"))) {payment = this.paymentService.selectByPrimaryKey(main_order.getPayment_id());config.setKey(payment.getSafeKey());config.setPartner(payment.getPartner());config.setSeller_email(payment.getSeller_email());}if ((type.equals("cash")) || (type.equals("gold")) || (type.equals("integral"))|| (type.equals("cloudpurchase"))) {Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));if (type.equals("cash")) {q_params.put("mark", obj.getPd_payment());}if (type.equals("gold")) {q_params.put("mark", gold.getGold_payment());}if (type.equals("integral")) {q_params.put("mark", ig_order.getIgo_payment());}if (type.equals("cloudpurchase")) {q_params.put("mark", cp_order.getPayment());}List<Payment> payments = this.paymentService.queryPageList(q_params);config.setKey(((Payment) payments.get(0)).getSafeKey());config.setPartner(((Payment) payments.get(0)).getPartner());config.setSeller_email(((Payment) payments.get(0)).getSeller_email());}config.setNotify_url(CommUtil.getURL(request) + "/alipay_notify");config.setReturn_url(CommUtil.getURL(request) + "/aplipay_return");boolean verify_result = AlipayNotify.verify(config, params);if (verify_result) {if (((type.equals("goods")) || (type.equals("group"))) && ((trade_status.equals("WAIT_SELLER_SEND_GOODS"))|| (trade_status.equals("TRADE_FINISHED")) || (trade_status.equals("TRADE_SUCCESS")))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(main_order, trade_no,CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(main_order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(main_order.getId()))));resultMap.put("obj", main_order);}if ((type.equals("cash")) && ((trade_status.equals("WAIT_SELLER_SEND_GOODS"))|| (trade_status.equals("TRADE_FINISHED")) || (trade_status.equals("TRADE_SUCCESS")))) {if (obj.getPd_pay_status() != 2) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("支付宝在线支付");this.predepositLogFeignClient.saveEntity(log);}resultMap.put("op_title", "恭喜您,成功充值" + obj.getPd_amount() + "元");resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if ((type.equals("gold")) && ((trade_status.equals("WAIT_SELLER_SEND_GOODS"))|| (trade_status.equals("TRADE_FINISHED")) || (trade_status.equals("TRADE_SUCCESS")))) {if (gold.getGold_pay_status() != 2) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("支付宝在线支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}resultMap.put("op_title", "兑换" + gold.getGold_count() + "金币成功");resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if ((type.equals("integral")) && ((trade_status.equals("WAIT_SELLER_SEND_GOODS"))|| (trade_status.equals("TRADE_FINISHED")) || (trade_status.equals("TRADE_SUCCESS")))) {if (ig_order.getIgo_status() < 20) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("alipay");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}resultMap.put("obj", ig_order);}if (type.equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");}} else {resultMap.put("op_title", "支付回调失败");resultMap.put("url", CommUtil.getURL(request) + "/index");}return resultMap;}*//*** 支付宝异步通知* * @param request* @param response* @throws Exception*/@RequestMapping({ "/alipay_notify" })public void alipay_notify(HttpServletRequest request, HttpServletResponse response) throws Exception {/*https://xx/receive_notify.htm?notify_type=trade_status_sync&notify_id=91722adff935e8cfa58b3aabf4dead6ibe&notify_time=2017-02-16 21:46:15&sign_type=RSA2&sign=xxxxxxxxxxxxxxx&app_id=2088102146225135&trade_no=2013112011001004330000121536&out_trade_no=6823789339978248&out_biz_no=85478536823789339978248&buyer_logon_id=159****5620&seller_id=2088102146225135&trans_currency=USD&seller_email=aa@mail.sa.com&total_amount=120.88&buyer_id=2088202954065786&settle_currency=USD&settle_amount=88.88&pay_currency=CNY&pay_amount=580.04&settle_trans_rate=1&trans_pay_rate=6.5261&trade_status=TRADE_SUCCESS&invoice_amount=88.88&receipt_amount=88.88&point_amount=88.88&refund_fee=10.23&buyer_pay_amount=88.88&subject=Iphone6 16G&body=Iphone6 16G&gmt_create=2014-11-27 15:45:57&gmt_payment=2014-11-27 15:45:57&gmt_refund=2014-11-27 14:15:57&gmt_close=2014-11-27 17:45:57&fund_bill_list="[{\"amount\":\"10000.00\",\"fundChannel\":\"ALIPAYACCOUNT\"}]"&voucher_detail_list="[{\"id\":\"20170307000730026487005X1M6V\",\"name\":\"全仓5折优惠券\"}]"&discount_goods_detail="[{\"goodsId\":\"STANDARD1026181538\",\"goodsName\":\"雪碧\",\"discountAmount\":\"10.00\"}]"&refund_preset_paytool_list=[{"amount":"1.00","assert_type_code":"HEMA"}]&charge_amount=8.88&charge_flags=bluesea_1&settlement_id=2018101610032004620239146945&advance_amount=11.11&current_seller_received_amount=88.88&seller_received_total_amount=88.88&total_from_seller_fee=88.88&ff_current_period=1&notify_action_type=payByAccountAction/closeTradeAction/reverseAction/finishFPAction/confirmDisburseAction/financingReceiptAction&discount_amount=88.88&mdiscount_amount=88.88&unfreeze_amount=18.18&auth_trade_pay_mode=CREDIT_PREAUTH_PAY&passback_params=merchantBizType%3d3C%26merchantBizNo%3d2016010101111&hb_fq_pay_info={"USER_INSTALL_NUM":"3"}&receipt_currency_type=DC*///获取支付宝POST过来反馈信息Map<String, String> params = new HashMap<String, String>();Map requestParams = request.getParameterMap();for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";}//乱码解决,这段代码在出现乱码时使用。//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");params.put(name, valueStr);}//String sign = request.getParameter("sign");String passbackParamsUnCode = request.getParameter("passback_params");String passbackParams = java.net.URLDecoder.decode(passbackParamsUnCode);String[] attachs = passbackParams.split("_");String type = attachs[3];//支付方式  因为付方式是"alipay_app" 形式 故pay_type为attachs[4]+"_"+attachs[5]String pay_type = attachs[4] + "_" + attachs[5];System.out.println("返回的pay_type:" + pay_type);Map<String, Object> pay_type_params = Maps.newHashMap();pay_type_params.put("mark", pay_type);List<Payment> payments =   this.paymentService.queryPageList(pay_type_params);log.info("----异步通知参数 开始 ------");log.info(params.toString());log.info("----异步通知参数 结束 ------");if (null == payments || payments.size() < 1) {log.error("支付异步通知失败");response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");try {PrintWriter writer = response.getWriter();writer.print("fail");} catch (IOException e) {log.error(e.toString());}return;}Payment payment = payments.get(0);//if (AlipayUtil.validateSign(params, payment.getApp_public_key())) {log.info("回調验签成功");afterNotifyOrderHandling_alipay(request, payment, type, attachs);response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");try {PrintWriter writer = response.getWriter();writer.print("success");} catch (IOException e) {log.error(e.toString());}} else {log.info("回調验签失败");response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");try {PrintWriter writer = response.getWriter();writer.print("fail");} catch (IOException e) {log.error(e.toString());}}}/*** 快钱在线支付回调处理控制* * @param request* @param response* @return* @throws Exception*/@RequestMapping({ "/bill_return" })public Map<String, Object> bill_return(HttpServletRequest request, HttpServletResponse response) throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();String ext1 = request.getParameter("ext1").trim();String ext2 = CommUtil.null2String(request.getParameter("ext2").trim());OrderFormDto order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if ((ext2.equals("goods")) || (ext2.equals("group"))) {order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}String merchantAcctId = request.getParameter("merchantAcctId").trim();String key = "";Payment payment = null;if ((ext2.equals("goods")) || (ext2.equals("group"))) {payment = this.paymentService.selectByPrimaryKey(order.getPayment_id());key = payment.getRmbKey();}if ((ext2.equals("cash")) || (ext2.equals("gold")) || (ext2.equals("integral"))|| (ext2.equals("cloudpurchase"))) {Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));if (ext2.equals("cash")) {q_params.put("mark", obj.getPd_payment());}if (ext2.equals("gold")) {q_params.put("mark", gold.getGold_payment());}if (ext2.equals("integral")) {q_params.put("mark", ig_order.getIgo_payment());}if (ext2.equals("cloudpurchase")) {q_params.put("mark", cp_order.getPayment());}List<Payment> payments = this.paymentService.queryPageList(q_params);key = ((Payment) payments.get(0)).getRmbKey();}String version = request.getParameter("version").trim();String language = request.getParameter("language").trim();String signType = request.getParameter("signType").trim();String payType = request.getParameter("payType").trim();String bankId = request.getParameter("bankId").trim();String orderId = request.getParameter("orderId").trim();String orderTime = request.getParameter("orderTime").trim();String orderAmount = request.getParameter("orderAmount").trim();String dealId = request.getParameter("dealId").trim();String bankDealId = request.getParameter("bankDealId").trim();String dealTime = request.getParameter("dealTime").trim();String payAmount = request.getParameter("payAmount").trim();String fee = request.getParameter("fee").trim();String payResult = request.getParameter("payResult").trim();String errCode = request.getParameter("errCode").trim();String signMsg = request.getParameter("signMsg").trim();String merchantSignMsgVal = "";merchantSignMsgVal = appendParam(merchantSignMsgVal, "merchantAcctId", merchantAcctId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "version", version);merchantSignMsgVal = appendParam(merchantSignMsgVal, "language", language);merchantSignMsgVal = appendParam(merchantSignMsgVal, "signType", signType);merchantSignMsgVal = appendParam(merchantSignMsgVal, "payType", payType);merchantSignMsgVal = appendParam(merchantSignMsgVal, "bankId", bankId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "orderId", orderId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "orderTime", orderTime);merchantSignMsgVal = appendParam(merchantSignMsgVal, "orderAmount", orderAmount);merchantSignMsgVal = appendParam(merchantSignMsgVal, "dealId", dealId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "bankDealId", bankDealId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "dealTime", dealTime);merchantSignMsgVal = appendParam(merchantSignMsgVal, "payAmount", payAmount);merchantSignMsgVal = appendParam(merchantSignMsgVal, "fee", fee);merchantSignMsgVal = appendParam(merchantSignMsgVal, "ext1", ext1);merchantSignMsgVal = appendParam(merchantSignMsgVal, "ext2", ext2);merchantSignMsgVal = appendParam(merchantSignMsgVal, "payResult", payResult);merchantSignMsgVal = appendParam(merchantSignMsgVal, "errCode", errCode);merchantSignMsgVal = appendParam(merchantSignMsgVal, "key", key);String merchantSignMsg = MD5Util.md5Hex(merchantSignMsgVal.getBytes("utf-8")).toUpperCase();if (signMsg.toUpperCase().equals(merchantSignMsg.toUpperCase())) {switch (Integer.parseInt(payResult)) {case 10:if ((ext2.equals("goods")) || (ext2.equals("group"))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(order, "", CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order.getId()))));resultMap.put("obj", order);}if (ext2.equals("cash")) {if (obj.getPd_pay_status() < 2) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("快钱在线支付");this.predepositLogFeignClient.saveEntity(log);}resultMap.put("op_title", "充值" + obj.getPd_amount() + "成功");resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if (ext2.equals("gold")) {if (gold.getGold_pay_status() < 2) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("快钱在线支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}resultMap.put("op_title", "兑换" + gold.getGold_count() + "金币成功");resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if (ext2.equals("integral")) {if (ig_order.getIgo_status() < 20) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("bill");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}resultMap.put("obj", ig_order);}if (!ext2.equals("cloudpurchase")) {break;}if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");break;default:resultMap.put("op_title", "快钱支付失败!");resultMap.put("url", CommUtil.getURL(request) + "/index");break;}} else {resultMap.put("op_title", "快钱支付失败!");resultMap.put("url", CommUtil.getURL(request) + "/index");}return resultMap;}public String appendParam(String returnStr, String paramId, String paramValue) {if (!returnStr.equals("")) {if (!paramValue.equals("")) {returnStr = returnStr + "&" + paramId + "=" + paramValue;}} else if (!paramValue.equals("")) {returnStr = paramId + "=" + paramValue;}return returnStr;}/*** 快钱异步回调处理,如果同步回调出错,异步回调会弥补该功能* * @param request* @param response* @throws Exception*/@RequestMapping({ "/bill_notify_return" })public void bill_notify_return(HttpServletRequest request, HttpServletResponse response) throws Exception {int rtnOK = 0;String ext1 = request.getParameter("ext1").trim();String ext2 = CommUtil.null2String(request.getParameter("ext2").trim());OrderFormDto order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if ((ext2.equals("goods")) || (ext2.equals("group"))) {order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}if (ext2.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(ext1));}String merchantAcctId = request.getParameter("merchantAcctId").trim();String key = "";Payment payment = null;if ((ext2.equals("goods")) || (ext2.equals("group"))) {payment = this.paymentService.selectByPrimaryKey(order.getPayment_id());key = payment.getRmbKey();}if ((ext2.equals("cash")) || (ext2.equals("gold")) || (ext2.equals("integral"))|| (ext2.equals("cloudpurchase"))) {Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));if (ext2.equals("cash")) {q_params.put("mark", obj.getPd_payment());}if (ext2.equals("gold")) {q_params.put("mark", gold.getGold_payment());}if (ext2.equals("integral")) {q_params.put("mark", ig_order.getIgo_payment());}if (ext2.equals("cloudpurchase")) {q_params.put("mark", cp_order.getPayment());}List<Payment> payments = this.paymentService.queryPageList(q_params);key = ((Payment) payments.get(0)).getRmbKey();}String version = request.getParameter("version").trim();String language = request.getParameter("language").trim();String signType = request.getParameter("signType").trim();String payType = request.getParameter("payType").trim();String bankId = request.getParameter("bankId").trim();String orderId = request.getParameter("orderId").trim();String orderTime = request.getParameter("orderTime").trim();String orderAmount = request.getParameter("orderAmount").trim();String dealId = request.getParameter("dealId").trim();String bankDealId = request.getParameter("bankDealId").trim();String dealTime = request.getParameter("dealTime").trim();String payAmount = request.getParameter("payAmount").trim();String fee = request.getParameter("fee").trim();String payResult = request.getParameter("payResult").trim();String errCode = request.getParameter("errCode").trim();String signMsg = request.getParameter("signMsg").trim();String merchantSignMsgVal = "";merchantSignMsgVal = appendParam(merchantSignMsgVal, "merchantAcctId", merchantAcctId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "version", version);merchantSignMsgVal = appendParam(merchantSignMsgVal, "language", language);merchantSignMsgVal = appendParam(merchantSignMsgVal, "signType", signType);merchantSignMsgVal = appendParam(merchantSignMsgVal, "payType", payType);merchantSignMsgVal = appendParam(merchantSignMsgVal, "bankId", bankId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "orderId", orderId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "orderTime", orderTime);merchantSignMsgVal = appendParam(merchantSignMsgVal, "orderAmount", orderAmount);merchantSignMsgVal = appendParam(merchantSignMsgVal, "dealId", dealId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "bankDealId", bankDealId);merchantSignMsgVal = appendParam(merchantSignMsgVal, "dealTime", dealTime);merchantSignMsgVal = appendParam(merchantSignMsgVal, "payAmount", payAmount);merchantSignMsgVal = appendParam(merchantSignMsgVal, "fee", fee);merchantSignMsgVal = appendParam(merchantSignMsgVal, "ext1", ext1);merchantSignMsgVal = appendParam(merchantSignMsgVal, "ext2", ext2);merchantSignMsgVal = appendParam(merchantSignMsgVal, "payResult", payResult);merchantSignMsgVal = appendParam(merchantSignMsgVal, "errCode", errCode);merchantSignMsgVal = appendParam(merchantSignMsgVal, "key", key);String merchantSignMsg = MD5Util.md5Hex(merchantSignMsgVal.getBytes("utf-8")).toUpperCase();if (signMsg.toUpperCase().equals(merchantSignMsg.toUpperCase())) {switch (Integer.parseInt(payResult)) {case 10:if ((ext2.equals("goods")) || (ext2.equals("group"))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(order, dealId, CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");rtnOK = 1;}if (ext2.equals("cash")) {if (obj.getPd_pay_status() < 2) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("快钱在线支付");this.predepositLogFeignClient.saveEntity(log);}rtnOK = 1;}if (ext2.equals("gold")) {if (gold.getGold_pay_status() < 2) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("快钱在线支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}rtnOK = 1;}if (ext2.equals("integral")) {if (ig_order.getIgo_status() < 20) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("bill");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}rtnOK = 1;}if (ext2.equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}rtnOK = 1;}break;}}response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");try {PrintWriter writer = response.getWriter();writer.print(rtnOK);} catch (IOException e) {log.error(e.toString());}}/*** 财付通支付* * @param request* @param response* @param id* @param type* @param payment_id* @throws IOException*/@RequestMapping({ "/tenpay" })public void tenpay(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) throws IOException {String payment_id = json.optString("payment_id");String type = json.optString("type");String id = json.optString("id");boolean submit = true;OrderFormDto of = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if ((type.equals("goods")) || (type.equals("group"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;}}if (type.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (obj.getPd_pay_status() >= 2) {submit = false;}}if (type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(id));if (gold.getGold_pay_status() >= 2) {submit = false;}}if (type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (ig_order.getIgo_status() >= 20) {submit = false;}}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));}if (submit) {String order_price = "";if ((type.equals("goods")) || (type.equals("gruop"))) {order_price = CommUtil.null2String(of.getTotalPrice());}if (type.equals("cash")) {order_price = CommUtil.null2String(obj.getPd_amount());}if (type.equals("gold")) {order_price = CommUtil.null2String(Integer.valueOf(gold.getGold_money()));}if (type.equals("integral")) {order_price = CommUtil.null2String(ig_order.getIgo_trans_fee());}if (type.equals("cloudpurchase")) {order_price = CommUtil.null2String(Integer.valueOf(cp_order.getPrice()));}double total_fee = CommUtil.null2Double(order_price) * 100.0D;int fee = (int) total_fee;String product_name = "";if ((type.equals("goods")) || (type.equals("group"))) {product_name = of.getOrder_id();}if (type.equals("cash")) {product_name = obj.getPd_sn();}if (type.equals("gold")) {product_name = gold.getGold_sn();}if (type.equals("integral")) {product_name = ig_order.getIgo_order_sn();}if (type.equals("cloudpurchase")) {product_name = cp_order.getOdrdersn();}String remarkexplain = "";if ((type.equals("goods")) || (type.equals("group"))) {remarkexplain = of.getMsg();}if (type.equals("cash")) {remarkexplain = obj.getPd_remittance_info();}if (type.equals("gold")) {remarkexplain = gold.getGold_exchange_info();}if (type.equals("integral")) {remarkexplain = ig_order.getIgo_msg();}if (type.equals("cloudpurchase")) {product_name = cp_order.getIgo_order_sn();}String attach = "";if ((type.equals("goods")) || (type.equals("group"))) {attach = type + "," + of.getId().toString();}if (type.equals("cash")) {attach = type + "," + obj.getId().toString();}if (type.equals("gold")) {attach = type + "," + gold.getId().toString();}if (type.equals("integral")) {attach = type + "," + ig_order.getId().toString();}if (type.equals("cloudpurchase")) {attach = type + "," + cp_order.getId().toString();}String desc = "商品:" + product_name;String out_trade_no = "";if ((type.equals("goods")) || (type.equals("group"))) {out_trade_no = of.getOrder_id();}if (type.endsWith("cash")) {out_trade_no = obj.getPd_sn();}if (type.endsWith("gold")) {out_trade_no = gold.getGold_sn();}if (type.equals("integral")) {out_trade_no = ig_order.getIgo_order_sn();}if (type.equals("cloudpurchase")) {out_trade_no = cp_order.getOdrdersn();}Payment payment = this.paymentService.selectByPrimaryKey(CommUtil.null2Long(payment_id));if (payment == null) {payment = new Payment();}String trade_mode = CommUtil.null2String(Integer.valueOf(payment.getTrade_mode()));String currTime = TenpayUtil.getCurrTime();RequestHandler reqHandler = new RequestHandler(request, response);reqHandler.init();reqHandler.setKey(payment.getTenpay_key());reqHandler.setGateUrl("https://gw.tenpay.com/gateway/pay");reqHandler.setParameter("partner", payment.getTenpay_partner());reqHandler.setParameter("out_trade_no", out_trade_no);reqHandler.setParameter("total_fee", String.valueOf(fee));reqHandler.setParameter("return_url", CommUtil.getURL(request) + "/tenpay_return");reqHandler.setParameter("notify_url", CommUtil.getURL(request) + "/tenpay_notify");reqHandler.setParameter("body", desc);reqHandler.setParameter("bank_type", "DEFAULT");reqHandler.setParameter("spbill_create_ip", request.getRemoteAddr());reqHandler.setParameter("fee_type", "1");reqHandler.setParameter("subject", desc);reqHandler.setParameter("sign_type", "MD5");reqHandler.setParameter("service_version", "1.0");reqHandler.setParameter("input_charset", "UTF-8");reqHandler.setParameter("sign_key_index", "1");reqHandler.setParameter("attach", attach);reqHandler.setParameter("product_fee", "");reqHandler.setParameter("transport_fee", "0");reqHandler.setParameter("time_start", currTime);reqHandler.setParameter("time_expire", "");reqHandler.setParameter("buyer_id", "");reqHandler.setParameter("goods_tag", "");reqHandler.setParameter("trade_mode", trade_mode);reqHandler.setParameter("transport_desc", "");reqHandler.setParameter("trans_type", "1");reqHandler.setParameter("agentid", "");reqHandler.setParameter("agent_type", "");reqHandler.setParameter("seller_id", "");String requestUrl = reqHandler.getRequestURL();response.sendRedirect(requestUrl);} else {response.getWriter().write("该订单已经完成支付!");}}/*** 财付通在线支付回调控制* * @param request* @param response* @return* @throws Exception*/@RequestMapping({ "/tenpay_return" })public Map<String, Object> tenpay_return(HttpServletRequest request, HttpServletResponse response)throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();ResponseHandler resHandler = new ResponseHandler(request, response);String[] attachs = request.getParameter("attach").split(",");String out_trade_no = resHandler.getParameter("out_trade_no");OrderFormDto order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if (attachs[0].equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[1]));Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));q_params.put("mark", cp_order.getPayment());List<Payment> payments = this.paymentService.queryPageList(q_params);resHandler.setKey(((Payment) payments.get(0)).getTenpay_key());}if (attachs[0].equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[1]));Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));q_params.put("mark", ig_order.getIgo_payment());List<Payment> payments = this.paymentService.queryPageList(q_params);resHandler.setKey(((Payment) payments.get(0)).getTenpay_key());}if (attachs[0].equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[1]));Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));q_params.put("mark", obj.getPd_payment());List<Payment> payments = this.paymentService.queryPageList(q_params);resHandler.setKey(((Payment) payments.get(0)).getTenpay_key());}if (attachs[0].equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(attachs[1]));Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));q_params.put("mark", gold.getGold_payment());List<Payment> payments = this.paymentService.queryPageList(q_params);resHandler.setKey(((Payment) payments.get(0)).getTenpay_key());}Payment payment = null;if ((attachs[0].equals("goods")) || (attachs[0].equals("group"))) {order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[1]));payment = this.paymentService.selectByPrimaryKey(order.getPayment_id());resHandler.setKey(payment.getTenpay_key());}if (resHandler.isTenpaySign()) {String notify_id = resHandler.getParameter("notify_id");String transaction_id = resHandler.getParameter("transaction_id");String total_fee = resHandler.getParameter("total_fee");String discount = resHandler.getParameter("discount");String trade_state = resHandler.getParameter("trade_state");String trade_mode = resHandler.getParameter("trade_mode");if ("1".equals(trade_mode)) {if ("0".equals(trade_state)) {if (attachs[0].equals("cash")) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);resultMap.put("op_title", "充值" + obj.getPd_amount() + "成功");resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if ((attachs[0].equals("goods")) || (attachs[0].equals("group"))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(order, transaction_id,CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order.getId()))));resultMap.put("obj", order);}if (attachs[0].equals("gold")) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("财付通及时到账支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);resultMap.put("op_title", "兑换" + gold.getGold_count() + "金币成功");resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if (attachs[0].equals("integral")) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("bill");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}resultMap.put("obj", ig_order);}if (attachs[0].equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");}} else {resultMap.put("op_title", "财付通支付失败!");resultMap.put("url", CommUtil.getURL(request) + "/index");}} else if ("2".equals(trade_mode)) {if ("0".equals(trade_state)) {if (attachs[0].equals("cash")) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("财付通中介担保付款");this.predepositLogFeignClient.saveEntity(log);resultMap.put("op_title", "充值" + obj.getPd_amount() + "成功");resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if (attachs[0].equals("goods")) {boolean flag = this.handleOrderFormFeignClient.payByOnline(order, transaction_id,CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order.getId()))));resultMap.put("obj", order);}if (attachs[0].equals("gold")) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("财付通中介担保付款成功");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);resultMap.put("op_title", "兑换" + gold.getGold_count() + "金币成功");resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if (attachs[0].equals("integral")) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("bill");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}resultMap.put("obj", ig_order);}if (attachs[0].equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");}} else {resultMap.put("op_title", "财付通支付失败!");resultMap.put("url", CommUtil.getURL(request) + "/index");}}} else {resultMap.put("op_title", "财付通认证签名失败!");resultMap.put("url", CommUtil.getURL(request) + "/index");}return resultMap;}/*** 网银在线回调函数* * @param request* @param response* @return* @throws Exception*/@RequestMapping({ "/chinabank_return" })public Map<String, Object> chinabank_return(HttpServletRequest request, HttpServletResponse response)throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();String remark1 = request.getParameter("remark1");String remark2 = CommUtil.null2String(request.getParameter("remark2"));OrderFormDto order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if ((remark2.equals("goods")) || (remark2.equals("group"))) {order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1.trim()));}if (remark2.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1));}if (remark2.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(remark1));}if (remark2.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1));}if (remark2.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1));}String key = "";Payment payment = null;if ((remark2.equals("goods")) || (remark2.equals("group"))) {payment = this.paymentService.selectByPrimaryKey(order.getPayment_id());key = payment.getChinabank_key();}if ((remark2.equals("cash")) || (remark2.equals("gold")) || (remark2.equals("integral"))|| (remark2.equals("cloudpurchase"))) {Map q_params = Maps.newHashMap();q_params.put("install", Boolean.valueOf(true));if (remark2.equals("cash")) {q_params.put("mark", obj.getPd_payment());}if (remark2.equals("gold")) {q_params.put("mark", gold.getGold_payment());}if (remark2.equals("integral")) {q_params.put("mark", ig_order.getIgo_payment());}if (remark2.equals("cloudpurchase")) {q_params.put("mark", cp_order.getPayment());}List<Payment> payments = this.paymentService.queryPageList(q_params);key = ((Payment) payments.get(0)).getChinabank_key();}String v_oid = request.getParameter("v_oid");String v_pmode = request.getParameter("v_pmode");String v_pstatus = request.getParameter("v_pstatus");String v_pstring = request.getParameter("v_pstring");String v_amount = request.getParameter("v_amount");String v_moneytype = request.getParameter("v_moneytype");String v_md5str = request.getParameter("v_md5str");String text = v_oid + v_pstatus + v_amount + v_moneytype + key;String v_md5text = Md5Encrypt.md5(text).toUpperCase();if (v_md5str.equals(v_md5text)) {if ("20".equals(v_pstatus)) {if ((remark2.equals("goods")) || (remark2.equals("group"))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(order, v_oid, CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order.getId()))));resultMap.put("obj", order);}if (remark2.endsWith("cash")) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("网银在线支付");this.predepositLogFeignClient.saveEntity(log);resultMap.put("op_title", "充值" + obj.getPd_amount() + "成功");resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if (remark2.equals("gold")) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("网银在线支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);resultMap.put("op_title", "兑换" + gold.getGold_count() + "金币成功");resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if (remark2.equals("integral")) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("bill");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}resultMap.put("obj", ig_order);}if (remark2.equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");}}} else {resultMap.put("op_title", "网银在线支付失败!");resultMap.put("url", CommUtil.getURL(request) + "/index");}return resultMap;}/*** paypal回调方法,paypal支付成功了后,调用该方法进行后续处理* * @param request* @param response* @return* @throws Exception*/@SuppressWarnings("deprecation")@RequestMapping({ "/paypal_return" })public Map<String, Object> paypal_return(HttpServletRequest request, HttpServletResponse response)throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();Enumeration en = request.getParameterNames();String str = "cmd=_notify-validate";while (en.hasMoreElements()) {String paramName = (String) en.nextElement();String paramValue = request.getParameter(paramName);str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue);}String[] customs = request.getParameter("custom").split(",");String remark1 = customs[0];String remark2 = customs[1];String item_name = request.getParameter("item_name");String txnId = request.getParameter("txn_id");OrderFormDto order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;Payment payment = null;if ((remark2.equals("goods")) || (remark2.equals("group"))) {order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1.trim()));payment = this.paymentService.selectByPrimaryKey(order.getPayment_id());}if (remark2.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1));}if (remark2.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(remark1));}if (remark2.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1));}if (remark2.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(remark1));}String txn_id = request.getParameter("txn_id");String itemName = request.getParameter("item_name");String paymentStatus = request.getParameter("payment_status");String paymentAmount = request.getParameter("mc_gross");String paymentCurrency = request.getParameter("mc_currency");String receiverEmail = request.getParameter("receiver_email");String payerEmail = request.getParameter("payer_email");if ((paymentStatus.equals("Completed")) || (paymentStatus.equals("Pending"))) {if (((remark2.equals("goods")) || (remark2.equals("group"))) && (order.getOrder_status() < 20)) {if (CommUtil.null2String(order.getTotalPrice()).equals(paymentAmount)) {boolean flag = this.handleOrderFormFeignClient.payByOnline(order, txnId, CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(order.getId()))));resultMap.put("obj", order);}}if (remark2.endsWith("cash")) {if (obj.getPd_pay_status() < 2) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("Paypal在线支付");this.predepositLogFeignClient.saveEntity(log);}resultMap.put("op_title", "成功充值:" + obj.getPd_amount());resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if (remark2.equals("gold")) {if (gold.getGold_pay_status() < 2) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("Paypal");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}resultMap.put("op_title", "成功充值金币:" + gold.getGold_count());resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if (remark2.equals("integral")) {if (ig_order.getIgo_status() < 20) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("paypal");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}resultMap.put("obj", ig_order);}if (remark2.equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");}} else {resultMap.put("op_title", "Paypal支付失败");resultMap.put("url", CommUtil.getURL(request) + "/index");}return resultMap;}public Map<String, Object> wx_pay1(HttpServletRequest request, HttpServletResponse response, Long id,String pay_type, String order_type) throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();RequestHandler reqHandler = new RequestHandler(request, response);List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();//TODOpay_type="wx_miniprogram";params.put("mark", pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}String body = "";String attach = "";String out_trade_no = "";double total_fee = 0.0D;boolean submit = true;OrderFormDto of = null;PredepositDto pd = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if ((order_type.equals("goods")) || (order_type.equals("group"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;} else {body = of.getOrder_id();attach = of.getId() + "_" + of.getOrder_id() + "_" + of.getUser_id() + "_" + order_type +"_"+pay_type;out_trade_no = of.getOrder_id();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", of);}}if (order_type.equals("cash")) {pd = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (pd.getPd_pay_status() >= 2) {submit = false;} else {body = pd.getPd_sn();attach = pd.getId() + "_" + pd.getPd_sn() + "_" + pd.getPd_user().getId() + "_" + order_type+"_"+pay_type;out_trade_no = pd.getPd_sn();total_fee = Double.valueOf(pd.getPd_amount().toString()).doubleValue() * 100.0D;resultMap.put("obj", pd);}}if (order_type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(id));if (gold.getGold_pay_status() >= 2) {submit = false;} else {body = gold.getGold_sn();attach = gold.getId() + "_" + gold.getGold_sn() + "_" + gold.getGold_user().getId() + "_" + order_type+"_"+pay_type;out_trade_no = gold.getGold_sn();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", gold);}}if (order_type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (ig_order.getIgo_status() >= 20) {submit = false;} else {body = ig_order.getIgo_order_sn();attach = ig_order.getId() + "_" + ig_order.getIgo_order_sn() + "_" + ig_order.getIgo_user().getId()+ "_" + order_type+"_"+pay_type;out_trade_no = ig_order.getIgo_order_sn();total_fee = Double.valueOf(ig_order.getIgo_trans_fee().toString()).doubleValue() * 100.0D;resultMap.put("obj", ig_order);}}if (order_type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (cp_order.getStatus() == 5) {submit = false;} else {body = cp_order.getIgo_order_sn();attach = cp_order.getId() + "_" + cp_order.getIgo_order_sn() + "_" + cp_order.getUser_id() + "_"+ order_type+"_"+pay_type;out_trade_no = cp_order.getIgo_order_sn();total_fee = Double.valueOf(cp_order.getPrice()).doubleValue() * 100.0D;resultMap.put("obj", cp_order);}}if ((submit) && (payment != null)) {if (payment != null) {String app_id = payment.getWx_appid();String app_key = payment.getWx_paySignKey();String partner = payment.getTenpay_partner();String notify_url = payment.getTenpay_partner();String noncestr = Sha1Util.getNonceStr();String timestamp = Sha1Util.getTimeStamp();String path = request.getContextPath();String basePath = notify_url + "/";reqHandler.setParameter("appid", app_id);reqHandler.setParameter("mch_id", partner);reqHandler.setParameter("nonce_str", noncestr);reqHandler.setParameter("device_info", "wechat_mini_program");reqHandler.setParameter("body", body);reqHandler.setParameter("attach", attach);reqHandler.setParameter("out_trade_no", out_trade_no);BigDecimal total_feeBig = new BigDecimal(total_fee);reqHandler.setParameter("total_fee", total_feeBig.setScale(0, BigDecimal.ROUND_UP)+"");reqHandler.setParameter("spbill_create_ip", CommUtil.getIpAddr(request));reqHandler.setParameter("notify_url", basePath + "weixin_return");reqHandler.setParameter("trade_type", "JSAPI");// trade_type=JSAPI时,必须传入openidUserDto user = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(of.getUser_id()));reqHandler.setParameter("openid", user.getOpenId());String requestUrl = reqHandler.reqToXml(app_key);HttpURLConnection conn = creatConnection(requestUrl);String result = getInput(conn);Map<String, String> map = doXMLParse(result);String return_code = ((String) map.get("return_code")).toString();String prepay_id = "";String code_url = "";if ("SUCCESS".equals(return_code)) {String result_code = ((String) map.get("result_code")).toString();if ("SUCCESS".equals(result_code)) {prepay_id = (String) map.get("prepay_id");code_url = (String) map.get("code_url");} else {// 预下单异常信息显示log.error(map.toString());}} else {// 预下单异常信息显示log.error(map.toString());}reqHandler.getAllParameters().clear();String newPackage = "prepay_id=" + prepay_id;reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);  reqHandler.setParameter("package", newPackage);reqHandler.setParameter("signType", "MD5");reqHandler.setParameter("timeStamp", timestamp+"");reqHandler.genSign(app_key);String order_sign = reqHandler.getParameter("sign");resultMap.put("app_id", app_id);resultMap.put("timestamp", timestamp+"");resultMap.put("noncestr", noncestr);resultMap.put("packageValue", newPackage);resultMap.put("sign", order_sign);resultMap.put("code_url", code_url);resultMap.put("signType", "MD5");System.out.print("返回给前端---------------------------");System.out.print(resultMap.toString());System.out.print("返回给前端---------------------------");reqHandler.getAllParameters().clear();reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.genSign(app_key);order_sign=reqHandler.getParameter("sign");if ((order_type.equals("goods")) || (order_type.equals("group"))) {of.setOrder_sign(order_sign);this.orderFormFeignClient.updateById(of);}if (order_type.equals("cash")) {pd.setOrder_sign(order_sign);this.predepositFeignClient.updateById(pd);}if (order_type.equals("gold")) {gold.setOrder_sign(order_sign);this.goldRecordService.updateById(gold);}if (order_type.equals("integral")) {ig_order.setOrder_sign(order_sign);this.integralGoodsOrderFeignClient.updateById(ig_order);}if (order_type.equals("cloudpurchase")) {cp_order.setOrder_sign(order_sign);this.cloudPurchaseOrderFeignClient.updateById(cp_order);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}return ResponseCode.buildSuccessMap(resultMap) ;}/*** 微信支付* * @param request* @param response* @param id 订单id* @param pay_type  支付方式 小程序端写死为wx_pay* @param order_type  订单类型* @return* @throws Exception*/@RequestMapping({ "/pay/wx_pay" })public Map<String, Object> wx_pay(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) throws Exception {Long id = json.optLong("id");String pay_type = json.optString("pay_type");String order_type = json.optString("order_type");Map<String, Object> resultMap = new HashMap<String, Object>();RequestHandler reqHandler = new RequestHandler(request, response);List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();if (StringUtils.isEmpty(pay_type)) {pay_type = "wx_miniprogram";}params.put("mark", pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}String body = "";String attach = "";String out_trade_no = "";String order_sign = "";double total_fee = 0.0D;boolean submit = true;OrderFormDto of = null;PredepositDto pd = null;GoldRecord gold = null;PlatformPay platformpay = null;RushOrderformDto  rushOrderformDto =null;Date time = new Date();IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;UserDto user = null;if ((order_type.equals("goods")) || (order_type.equals("group"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;} else {body = of.getOrder_id();attach = of.getId() + "_" + of.getOrder_id() + "_" + of.getUser_id() + "_" + order_type + "_"+ pay_type;// out_trade_no = of.getOrder_id();out_trade_no = of.getId() + "" + time.getTime();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", of);}} // 第一次付款, 带上子订单信息if ((order_type.equals("goodsfirst")) || (order_type.equals("groupfirst"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;} else {body = of.getOrder_id();attach = of.getId() + "_" + of.getOrder_id() + "_" + of.getUser_id() + "_" + order_type + "_"+ pay_type;// out_trade_no = of.getOrder_id();out_trade_no = of.getId() + "" + time.getTime();// 第一次付款取子订单总价格total_fee = Double.valueOf(orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(of.getId()))) * 100.0D;resultMap.put("obj", of);}}if (order_type.equals("cash")) {pd = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (pd.getPd_pay_status() >= 2) {submit = false;} else {body = pd.getPd_sn();attach = pd.getId() + "_" + pd.getPd_sn() + "_" + pd.getPd_user().getId() + "_" + order_type + "_"+ pay_type;out_trade_no = pd.getPd_sn();total_fee = Double.valueOf(pd.getPd_amount().toString()).doubleValue() * 100.0D;resultMap.put("obj", pd);}}if (order_type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(id));if (gold.getGold_pay_status() >= 2) {submit = false;} else {body = gold.getGold_sn();attach = gold.getId() + "_" + gold.getGold_sn() + "_" + gold.getGold_user().getId() + "_" + order_type+ "_" + pay_type;out_trade_no = gold.getGold_sn();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", gold);}}if (order_type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (ig_order.getIgo_status() >= 20) {submit = false;} else {body = ig_order.getIgo_order_sn();attach = ig_order.getId() + "_" + ig_order.getIgo_order_sn() + "_" + ig_order.getIgo_user().getId()+ "_" + order_type + "_" + pay_type;out_trade_no = ig_order.getIgo_order_sn();//积分订单  支付金额    =   运费  加   付款金额total_fee = Double.valueOf(ig_order.getIgo_pay_amount().toString()).doubleValue() * 100.0D;resultMap.put("obj", ig_order);}}if (order_type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (cp_order.getStatus() == 5) {submit = false;} else {body = cp_order.getIgo_order_sn();attach = cp_order.getId() + "_" + cp_order.getIgo_order_sn() + "_" + cp_order.getUser_id() + "_"+ order_type + "_" + pay_type;out_trade_no = cp_order.getIgo_order_sn();total_fee = Double.valueOf(cp_order.getPrice()).doubleValue() * 100.0D;resultMap.put("obj", cp_order);}}if (order_type.equals("platformpay")) { // 保证金platformpay = this.platformPayService.selectByPrimaryKey(CommUtil.null2Long(id));if (platformpay.getPay_status() == 1) { // 已支付submit = false;} else {body = platformpay.getPay_no();attach = platformpay.getId() + "_" + platformpay.getPay_no() + "_" + platformpay.getUser_id() + "_"+ order_type + "_" + pay_type;out_trade_no = platformpay.getPay_no();total_fee = platformpay.getAmount().doubleValue() * 100.0D;resultMap.put("obj", platformpay);user = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(platformpay.getUser_id()));}}if (order_type.equals("rushorder")) { // 抢购单rushOrderformDto = rushOrderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (rushOrderformDto.getPay_time()!=null) { // 已支付submit = false;} else {body = rushOrderformDto.getOrder_no(); //订单号idattach = rushOrderformDto.getId() + "_" + rushOrderformDto.getOrder_no() + "_" + rushOrderformDto.getRush_id() + "_"+ order_type + "_" + pay_type;out_trade_no = rushOrderformDto.getId() + "" + time.getTime();  //流水号total_fee = rushOrderformDto.getBond_money().doubleValue() * 100.0D;  //上架费resultMap.put("obj", rushOrderformDto);user = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(rushOrderformDto.getRush_id()));}}if ((submit) && (payment != null)) {if (payment != null) {String app_id = payment.getWx_appid();String app_key = payment.getWx_paySignKey();String partner = payment.getTenpay_partner();String notify_url = payment.getNotify_url();String noncestr = Sha1Util.getNonceStr();String timestamp = Sha1Util.getTimeStamp();String path = request.getContextPath();String basePath = notify_url + "/";if (pay_type.equals("wx_pay")) {reqHandler.setParameter("appid", app_id);reqHandler.setParameter("mch_id", partner);reqHandler.setParameter("nonce_str", noncestr);reqHandler.setParameter("device_info", "WEB");reqHandler.setParameter("body", body);reqHandler.setParameter("attach", attach);reqHandler.setParameter("out_trade_no", out_trade_no);BigDecimal total_feeBig = new BigDecimal(total_fee);reqHandler.setParameter("total_fee", total_feeBig.setScale(0, BigDecimal.ROUND_UP)+"");reqHandler.setParameter("spbill_create_ip", CommUtil.getIpAddr(request));reqHandler.setParameter("notify_url", basePath + "weixin_return");reqHandler.setParameter("scene_info", "'h5_info':{'type':'Wap','wap_url':'http://haiwah5.minglisoft.cn/','wap_name': '海哇'}");reqHandler.setParameter("trade_type", "MWEB");if (of != null) {// trade_type=JSAPI时,必须传入openid//	user = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(of.getUser_id()));}/*reqHandler.setParameter("openid", user.getOpenId());*/String requestUrl = reqHandler.reqToXml(app_key);HttpURLConnection conn = creatConnection(requestUrl);String result = getInput(conn);Map<String, String> map = doXMLParse(result);String return_code = ((String) map.get("return_code")).toString();String prepay_id = "";String code_url = "";if ("SUCCESS".equals(return_code)) {System.out.println("mapppp==="+map);String result_code = ((String) map.get("result_code")).toString();if ("SUCCESS".equals(result_code)) {prepay_id = (String) map.get("prepay_id");code_url = (String) map.get("mweb_url");} else {// 预下单异常信息显示log.error(map.toString());}} else {// 预下单异常信息显示log.error(map.toString());}reqHandler.getAllParameters().clear();String newPackage = "prepay_id=" + prepay_id;reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.setParameter("package", newPackage);reqHandler.setParameter("signType", "MD5");reqHandler.setParameter("timeStamp", timestamp + "");reqHandler.genSign(app_key);order_sign = reqHandler.getParameter("sign");resultMap.put("app_id", app_id);resultMap.put("timestamp", timestamp + "");resultMap.put("noncestr", noncestr);resultMap.put("packageValue", newPackage);resultMap.put("sign", order_sign);		//   http://haiwah5.minglisoft.cn/#/pagesA/order/index/index?type=order_nopay resultMap.put("code_url", code_url+"&redirect_url="+"http://haiwah5.minglisoft.cn/%23/pagesA/order/index/index?type=order_nopay");resultMap.put("signType", "MD5");System.out.print("返回给前端-new1--------------------------");System.out.print(resultMap.toString());System.out.print("返回给前端---------------------------");reqHandler.getAllParameters().clear();reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.genSign(app_key);order_sign = reqHandler.getParameter("sign");} else {reqHandler.setParameter("appid", app_id);reqHandler.setParameter("mch_id", partner);reqHandler.setParameter("nonce_str", noncestr);reqHandler.setParameter("device_info", "wechat_mini_program");reqHandler.setParameter("body", body);reqHandler.setParameter("attach", attach);reqHandler.setParameter("out_trade_no", out_trade_no);BigDecimal total_feeBig = new BigDecimal(total_fee);reqHandler.setParameter("total_fee", total_feeBig.setScale(0, BigDecimal.ROUND_UP) + "");reqHandler.setParameter("spbill_create_ip", CommUtil.getIpAddr(request));reqHandler.setParameter("notify_url", basePath + "weixin_return");reqHandler.setParameter("trade_type", "JSAPI");if (of != null) {// trade_type=JSAPI时,必须传入openiduser = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(of.getUser_id()));}reqHandler.setParameter("openid", user.getOpenId());String requestUrl = reqHandler.reqToXml(app_key);HttpURLConnection conn = creatConnection(requestUrl);String result = getInput(conn);Map<String, String> map = doXMLParse(result);String return_code = ((String) map.get("return_code")).toString();String prepay_id = "";String code_url = "";if ("SUCCESS".equals(return_code)) {String result_code = ((String) map.get("result_code")).toString();if ("SUCCESS".equals(result_code)) {prepay_id = (String) map.get("prepay_id");code_url = (String) map.get("code_url");} else {// 预下单异常信息显示log.error(map.toString());}} else {// 预下单异常信息显示log.error(map.toString());}reqHandler.getAllParameters().clear();String newPackage = "prepay_id=" + prepay_id;reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.setParameter("package", newPackage);reqHandler.setParameter("signType", "MD5");reqHandler.setParameter("timeStamp", timestamp + "");reqHandler.genSign(app_key);order_sign = reqHandler.getParameter("sign");resultMap.put("app_id", app_id);resultMap.put("timestamp", timestamp + "");resultMap.put("noncestr", noncestr);resultMap.put("packageValue", newPackage);resultMap.put("sign", order_sign);resultMap.put("code_url", code_url);resultMap.put("signType", "MD5");System.out.print("返回给前端---------------------------");System.out.print(resultMap.toString());System.out.print("返回给前端---------------------------");reqHandler.getAllParameters().clear();reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.genSign(app_key);order_sign = reqHandler.getParameter("sign");}if ((order_type.equals("goods")) || (order_type.equals("group")) || (order_type.equals("goodsfirst"))|| (order_type.equals("goodsfirst"))) {of.setOrder_sign(order_sign);of.setTrade_no(out_trade_no);this.orderFormFeignClient.updateById(of);}if (order_type.equals("cash")) {pd.setOrder_sign(order_sign);this.predepositFeignClient.updateById(pd);}if (order_type.equals("gold")) {gold.setOrder_sign(order_sign);this.goldRecordService.updateById(gold);}if (order_type.equals("integral")) {ig_order.setOrder_sign(order_sign);this.integralGoodsOrderFeignClient.updateById(ig_order);}if (order_type.equals("cloudpurchase")) {cp_order.setOrder_sign(order_sign);this.cloudPurchaseOrderFeignClient.updateById(cp_order);}if (order_type.equals("platformpay")) {platformpay.setTrade_no(order_sign);platformpay.setSign(order_sign);this.platformPayService.updateById(platformpay);}if (order_type.equals("rushorder")) {rushOrderformDto.setSign(order_sign);rushOrderformDto.setTrade_no(out_trade_no);this.rushOrderFormFeignClient.updateById(rushOrderformDto);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}return ResponseCode.buildSuccessMap(resultMap);}public void disAgentProfit(OrderFormDto orderformDto){//分销收益try{// 拓展配置信息DistributionSettingDto distributionSetting = distributionSettingFeignClient.getDistributionSetting();// 下单成功后调用分销的处理逻辑if (null != distributionSetting && "1".equals(distributionSetting.getIsOpen()) && 4 != orderformDto.getOrder_cat()) {distributionProfitFeignClient.profitInsert(orderformDto);agentProfitFeignClient.profitInsert(orderformDto);// 计算分销的佣金//BigDecimal disProfit = distributionProfitFeignClient.totalProfitByOrderId(orderformDto.getId());//BigDecimal agentProfit = agentProfitFeignClient.totalProfitByOrderId(orderformDto.getId());List<Map> goods_list = JSON.parseArray(orderformDto.getGoods_info(), Map.class);BigDecimal goods_distribution_price = BigDecimal.ZERO;for (Map<String, Object> map : goods_list) {goods_distribution_price = goods_distribution_price.add(CommUtil.toBigDecimal(map.get("goods_distribution_price")));}// 平台的分佣+分销的佣金BigDecimal commission_amount = goods_distribution_price.add(orderformDto.getCommission_amount());orderformDto.setCommission_amount(commission_amount);orderFormFeignClient.updateById(orderformDto);}}catch (Exception e) {logger.error("PayController >> disAgentProfit(distribution&agentProfit) >> Exception:"+ e.getMessage());}}public void sendOrderMessage(OrderFormDto orderformDto){//分销收益try{MessageDto msg = new MessageDto();msg.setAddTime(new Date());msg.setDeleteStatus(0);msg.setContent("订单编号:"+orderformDto.getOrder_id()+"已付款。下单人:"+orderformDto.getUser_name()+",订单金额:"+orderformDto.getTotalPrice()+"。");msg.setMsg_cat(0);msg.setReply_status(0);msg.setStatus(0);msg.setTitle("用户付款");msg.setType(2);msg.setFromUser_id(1L);UserDto seller = userFeignClient.getUserByStoreId(Long.parseLong(orderformDto.getStore_id()));msg.setToUser_id(seller.getId());messageFeignClient.saveEntity(msg);}catch (Exception e) {logger.error("PayController >> sendOrderMessage >> Exception:"+ e.getMessage());}}public void sendTxMessage(OrderFormDto orderformDto){UserDto saler = userFeignClient.getUserByStoreId(Long.parseLong(orderformDto.getStore_id()));try{Map<String, Object> params2 = new HashMap<String, Object>();params2.put("order_id", orderformDto.getOrder_id());params2.put("orderMoney", orderformDto.getTotalPrice()+"");params2.put("nickname", orderformDto.getUser_name());params2.put("user_id", saler.getId().toString());logger.info("params2[{}]",params2);tXTemplateFeignClient.delivereMsg(params2);tXTemplateFeignClient.paySuccessMsg(orderformDto);}catch (Exception e) {logger.error("PayController >> sendTxMessage >> Exception:"+ e.getMessage());}try{jiguangPushFeignClient.deliveryReminder(saler.getId());}catch (Exception e) {logger.error("PayController >> jiGuangMessage >> Exception:"+ e.getMessage());}}//发送酒店消息public void sendHotelMessage(OrderFormDto orderformDto){UserDto saler = userFeignClient.getUserByStoreId(Long.parseLong(orderformDto.getStore_id()));UserDto buyer = userFeignClient.selectByPrimaryKey(Long.parseLong(orderformDto.getUser_id()));try{Map<String, Object> params2 = new HashMap<String, Object>();params2.put("user_id", saler.getId().toString());SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); params2.put("check_in_time", sdf.format(orderformDto.getCheck_in_time()));params2.put("departure_time", sdf.format(orderformDto.getDeparture_time()));List<Map> goods_list = JSON.parseArray(orderformDto.getGoods_info(), Map.class);for (Map<String, Object> map : goods_list) {params2.put("days", map.get("days").toString());params2.put("goods_name", map.get("goods_name").toString());params2.put("count", map.get("goods_count").toString());}params2.put("goods_price", orderformDto.getTotalPrice().toString());params2.put("receiver_name", orderformDto.getReceiver_Name());params2.put("receiver_mobile", orderformDto.getReceiver_mobile());logger.info("params2[{}]",params2);tXTemplateFeignClient.shotelOrderMsg(params2);params2.put("store_name", orderformDto.getStore_name());params2.put("wx_open_id", buyer.getWx_open_id());logger.info("params2[{}]",params2);tXTemplateFeignClient.uhotelOrderMsg(params2);}catch (Exception e) {logger.error("PayController >> sendHotelMessage >> Exception:"+ e.getMessage());}}/*** 微信回调* * @param request* @param response* @throws Exception*/@RequestMapping({ "/weixin_return" })public void weixin_return(HttpServletRequest request, HttpServletResponse response) throws Exception {response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));String line = "";StringBuffer strBuf = new StringBuffer();while ((line = in.readLine()) != null) {strBuf.append(line).append("\n");}in.close();Map<String, String> xml = doXMLParse(strBuf.toString().trim());//扩展信息表SysConfigExtendDto  sysConfigExtendDto=sysconrigExtendFeignClient.getSysConfigExtend();String appid = ((String) xml.get("appid")).toString();if ("SUCCESS".equals(((String) xml.get("return_code")).toString())) {if ("SUCCESS".equals(((String) xml.get("result_code")).toString())) {String total_fee = (String) xml.get("total_fee");String out_trade_no = (String) xml.get("out_trade_no");String[] attachs = ((String) xml.get("attach")).split("_");String type = attachs[3];//支付方式  因为微信支付方式是"wx_miniprogram" 形式故pay_type为attachs[4]+"_"+attachs[5]String pay_type = attachs[4]+"_"+attachs[5];System.out.println("返回的pay_type:"+pay_type);OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();params.put("mark",pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}RequestHandler reqHandler = new RequestHandler(request, response);reqHandler.setParameter("appId", payment.getWx_appid());reqHandler.setParameter("nonceStr", ((String) xml.get("nonce_str")).toString());reqHandler.genSign(payment.getWx_paySignKey());String sign = reqHandler.getParameter("sign");if (("goodsfirst".equals(type)) || ("groupfirst".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (sign.equals(main_order.getOrder_sign())) {main_order.setPayTime(new Date());main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());main_order.setOut_order_id(out_trade_no);boolean flag = false;//查询修改相关子订单main_order.setOrder_first(0);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);//分销收益try{disAgentProfit(main_order);sendOrderMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id.longValue());if(order != null){disAgentProfit(order);sendOrderMessage(order);}}}}catch (Exception e) {logger.error("PayController >> weixin_return(distribution&agentProfit【goods_first】) >> Exception:"+ e.getMessage());}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);	//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}	//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}//如果订单是拉新用户订单  ,  添加if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==5) {main_order.setOrder_status(14);orderFormFeignClient.updateById(main_order);}else{if(main_order.getCheck_in_time() != null){sendHotelMessage(main_order);}else if(main_order.getOrder_offline()==1){//TODO 待修改 , 验证码消息}else{try{sendTxMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id.longValue());if(order != null){sendTxMessage(main_order);}}}}catch (Exception e) {logger.error("PayController >> weixin_return(sendTxMessage【goods_first】) >> Exception:"+ e.getMessage());}}}//发站内消息/*//拓展配置中分销为开启if(null !=sysConfigExtendDto && sysConfigExtendDto.isDistribution_open() && main_order.getOrder_cat()==0){OrderFormDto updateorder=main_order;//更新分销订单状态updateorder.setOrder_status(20);distributionOrderFeignClient.updateOrderStatus(updateorder);}*/}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}}if (("goods".equals(type)) || ("group".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (sign.equals(main_order.getOrder_sign())) {main_order.setPayTime(new Date());main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());main_order.setOut_order_id(out_trade_no);boolean flag = false;//不查询相关子订单main_order.setOrder_first(1);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);try{disAgentProfit(main_order);sendOrderMessage(main_order);}catch (Exception e) {logger.error("PayController >> weixin_return(distribution&agentProfit【goods】) >> Exception:"+ e.getMessage());}if (main_order.getOrder_cat() != null && main_order.getOrder_cat() != 5) {if (main_order.getCheck_in_time() != null) {sendHotelMessage(main_order);} else if(main_order.getOrder_offline()==1){//TODO 待修改 , 验证码消息}else {try {sendTxMessage(main_order);} catch (Exception e) {logger.error("PayController >> weixin_return(sendTxMessage【goods】) >> Exception:"+ e.getMessage());}}}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);	//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}	//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}//如果订单是拉新用户订单  ,  添加if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==5) {main_order.setOrder_status(14);orderFormFeignClient.updateById(main_order);}}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}}if ("integral".equals(type)) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if ((ig_order != null) && (ig_order.getIgo_status() < 20)&& (sign.equals(ig_order.getOrder_sign()))) {ig_order.setIgo_status(20);ig_order.setIgo_order_sn(out_trade_no);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment(payment.getMark()); this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}}if ("cash".equals(type)) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if ((obj != null) && (obj.getPd_pay_status() != 2) && (sign.equals(obj.getOrder_sign()))) {obj.setPd_payment(payment.getMark());obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info(payment.getName());this.predepositLogFeignClient.saveEntity(log);}}if ("gold".equals(type)) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if ((gold != null) && (gold.getGold_pay_status() != 2) && (sign.equals(gold.getOrder_sign()))) {gold.setGold_status(1);gold.setGold_pay_status(2);gold.setGold_payment(payment.getMark());this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content(payment.getName());log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());cp_order.setPayment(payment.getMark());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}}if (type.equals("platformpay")) {PlatformPay pf = this.platformPayService.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (pf.getPay_status() == 0 && StringUtils.equals(sign, pf.getSign())) {pf.setPay_status(1);pf.setUpdate_date(new Date());pf.setPay_type(payment.getMark());this.platformPayService.updateById(pf);PlatformPayFlow platformpayflow = new PlatformPayFlow();platformpayflow.setPlatform_pay_id(pf.getId());platformpayflow.setInfo("编号["+pf.getPay_no()+"]店铺保证金,支付成功");platformpayflow.setCreate_date(new Date());this.platformPayFlowService.saveEntity(platformpayflow);UserDto user = userFeignClient.selectByPrimaryKey(pf.getUser_id());StoreDto store = this.storeFeignClient.selectByPrimaryKey(user.getStore_id());store.setDeposit(pf.getAmount());this.storeFeignClient.updateById(store);}}//支付抢购订单上架费if (type.equals("rushorder")) {RushOrderformDto rushorderformdto = rushOrderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (rushorderformdto.getOrder_status()==5 && StringUtils.equals(sign, rushorderformdto.getSign())) {rushorderformdto.setPay_mark(payment.getMark());rushorderformdto.setPayment_id(payment.getId());rushorderformdto.setPayment_name(payment.getName());rushorderformdto.setOut_order_id(out_trade_no);rushorderformdto.setPay_time(new Date());rushOrderFormFeignClient.completePayment(rushorderformdto);//2022 支付流水待写入/*PlatformPayFlow platformpayflow = new PlatformPayFlow();platformpayflow.setPlatform_pay_id(pf.getId());platformpayflow.setInfo("编号["+pf.getPay_no()+"]店铺保证金,支付成功");platformpayflow.setCreate_date(new Date());this.platformPayFlowService.saveEntity(platformpayflow);UserDto user = userFeignClient.selectByPrimaryKey(pf.getUser_id());*/}}PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");} else {PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>");}} else {PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>");}}/*** * @param request* @param response* @return* @throws Exception*/@RequestMapping({ "/unionpay_return" })public Map<String, Object> unionpay_return(HttpServletRequest request, HttpServletResponse response)throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();request.setCharacterEncoding("ISO-8859-1");String encoding = request.getParameter("encoding");Map<String, String> reqParam = getAllRequestParam(request);Map<String, String> valideData = null;if ((reqParam != null) && (!reqParam.isEmpty())) {Iterator<Map.Entry<String, String>> it = reqParam.entrySet().iterator();valideData = new HashMap(reqParam.size());while (it.hasNext()) {Map.Entry<String, String> e = (Map.Entry) it.next();String key = (String) e.getKey();String value = (String) e.getValue();value = new String(value.getBytes("ISO-8859-1"), encoding);valideData.put(key, value);}}if (!SDKUtil.validate(valideData, encoding)) {resultMap.put("op_title", "支付回调失败");resultMap.put("url", CommUtil.getURL(request) + "/index");} else {String orderId = (String) valideData.get("orderId");String respCode = (String) valideData.get("respCode");String txtAmt = (String) valideData.get("txtAmt");String reqReserved = (String) valideData.get("reqReserved");String[] infos = reqReserved.split("_");String type = infos[0];String order_no = infos[1];OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if (type.equals("goods")) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("group")) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}Payment payment = null;if ((type.equals("goods")) || (type.equals("group"))) {payment = this.paymentService.selectByPrimaryKey(main_order.getPayment_id());}if ((type.equals("goods")) || (type.equals("group"))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(main_order, main_order.getTrade_no(),CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(main_order);}resultMap.put("all_price", Double.valueOf(this.orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(main_order.getId()))));resultMap.put("obj", main_order);}if (type.equals("cash")) {if (obj.getPd_pay_status() != 2) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("银联在线支付");this.predepositLogFeignClient.saveEntity(log);}resultMap.put("op_title", "恭喜您,成功充值" + obj.getPd_amount() + "元");resultMap.put("url", CommUtil.getURL(request) + "/buyer/predeposit_list");}if (type.equals("gold")) {if (gold.getGold_pay_status() != 2) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("银联支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}resultMap.put("op_title", "兑换" + gold.getGold_count() + "金币成功");resultMap.put("url", CommUtil.getURL(request) + "/seller/gold_record_list");}if (type.equals("integral")) {if (ig_order.getIgo_status() < 20) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("unionpay");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}resultMap.put("obj", ig_order);}if (type.equals("cloudpurchase")) {if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}resultMap.put("op_title", "预付款支付成功!");resultMap.put("url", CommUtil.getURL(request) + "/buyer/cloudbuy_order");}}return resultMap;}@RequestMapping({ "/unionpay_notify" })public void unionpay_notify(HttpServletRequest request, HttpServletResponse response) throws Exception {String result = "ok";request.setCharacterEncoding("ISO-8859-1");String encoding = request.getParameter("encoding");Map<String, String> reqParam = getAllRequestParam(request);Map<String, String> valideData = null;if ((reqParam != null) && (!reqParam.isEmpty())) {Iterator<Map.Entry<String, String>> it = reqParam.entrySet().iterator();valideData = new HashMap(reqParam.size());while (it.hasNext()) {Map.Entry<String, String> e = (Map.Entry) it.next();String key = (String) e.getKey();String value = (String) e.getValue();value = new String(value.getBytes("ISO-8859-1"), encoding);valideData.put(key, value);}}if (!SDKUtil.validate(valideData, encoding)) {result = "no";} else {String orderId = (String) valideData.get("orderId");String respCode = (String) valideData.get("respCode");String txtAmt = (String) valideData.get("txtAmt");String reqReserved = (String) valideData.get("reqReserved");String[] infos = reqReserved.split("_");String type = infos[0];String order_no = infos[1];OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if (type.equals("goods")) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("cash")) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("group")) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_no));}Payment payment = null;if ((type.equals("goods")) || (type.equals("group"))) {payment = this.paymentService.selectByPrimaryKey(main_order.getPayment_id());}if ((type.equals("goods")) || (type.equals("group"))) {boolean flag = this.handleOrderFormFeignClient.payByOnline(main_order, main_order.getTrade_no(),CommUtil.getURL(request));if (flag) {this.orderFormToolsFeignClient.updateGoodsInventory(main_order);}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}if ((type.equals("cash")) && (obj.getPd_pay_status() != 2)) {obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info("银联在线支付");this.predepositLogFeignClient.saveEntity(log);}if ((type.equals("gold")) && (gold.getGold_pay_status() != 2)) {gold.setGold_status(1);gold.setGold_pay_status(2);this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content("银联支付");log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}if ((type.equals("integral")) && (ig_order.getIgo_status() < 20)) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment("unionpay");this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}if ((type.equals("cloudpurchase")) && (cp_order.getStatus() < 5)) {cp_order.setStatus(5);cp_order.setPayTime(new Date());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}}response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");try {PrintWriter writer = response.getWriter();writer.print(result);} catch (IOException e) {log.error(e.toString());}}public static Map<String, String> getAllRequestParam(HttpServletRequest request) {Map<String, String> res = Maps.newHashMap();Enumeration<?> temp = request.getParameterNames();if (temp != null) {while (temp.hasMoreElements()) {String en = (String) temp.nextElement();String value = request.getParameter(en);res.put(en, value);if ((res.get(en) == null) || ("".equals(res.get(en)))) {res.remove(en);}}}return res;}/*** 移动端订单预付款支付* @param request* @param response* @param order_id* @param pay_msg* @param type* @return* @throws Exception*/@RequestMapping({ "/order_pay_balance" })public Map<String,Object> order_pay_balance(HttpServletRequest request,HttpServletResponse response, @RequestBody JSONObject json) throws Exception {String order_id = json.optString("order_id");String pay_msg = json.optString("pay_msg");String type = json.optString("type");Map<String,Object> result=Maps.newHashMap();OrderFormDto order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));//余额支付信息Payment balance_payment=paymentService.selectByPrimaryKey(1L);order.setPayment_id(balance_payment.getId());order.setPayment_mark(balance_payment.getMark());order.setPayment_name(balance_payment.getName());//扩展信息表SysConfigExtendDto  sysConfigExtendDto=sysconrigExtendFeignClient.getSysConfigExtend();UserDto user = SecurityUserHolder.getCurrentUser(request);user=userFeignClient.selectByPrimaryKey(user.getId());Map<Boolean, Object>  map_verify = this.orderFormToolsFeignClient.orderForm_verify( order, user.getId());Iterator iterator = map_verify.keySet().iterator();while (iterator.hasNext()) {Boolean verify_result = (Boolean) iterator.next();if (!verify_result.booleanValue()) {return ResponseCode.buildFailMap("", map_verify.get(verify_result));}}double order_total_price = this.orderFormToolsFeignClient.query_order_pay_price(order_id);if (CommUtil.null2Double(user.getAvailableBalance()) >= order_total_price) {boolean ret = this.handleOrderFormFeignClient.payByBalance(order,CommUtil.getURL(request), pay_msg);if(ret){//调用拼一拼更新拼团状态服务if(null !=sysConfigExtendDto && sysConfigExtendDto.isPin_open() && order.getOrder_cat()==3){//调用拼一拼更新拼团状态服务pinPayRecordFeignClient.updateStatusByOrderId(order.getId(),0);}if(null !=sysConfigExtendDto && sysConfigExtendDto.isDistribution_open() && order.getOrder_cat()==0){//更新分销订单状态order.setOrder_status(20);distributionOrderFeignClient.updateOrderStatus(order);}result.put("op_title", "预付款支付成功");}else{result.put("op_title", "预付款支付成功");}} else {			result.put("op_title", "可用余额不足,支付失败");}return result;}/*** 移动端订单预付款支付* @param request* @param response* @param order_id* @param pay_msg* @param type* @return* @throws Exception*/@RequestMapping({ "/rushorder_pay_balance" })public Map<String,Object> rushorder_pay_balance(HttpServletRequest request,HttpServletResponse response, @RequestBody JSONObject json) {String id = json.optString("id");String pay_password = json.optString("pay_password");UserDto user = SecurityUserHolder.getCurrentUser(request);// 用户密码是否匹配if (!StringUtils.equals(Md5Encrypt.md5(pay_password), user.getPassword())) {return ResponseCode.buildFailMap("支付密码错误", null);}Map<String, Object> result = Maps.newHashMap();RushOrderformDto rushorder = rushOrderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if(rushorder==null||rushorder.getOrder_status()!=5){return ResponseCode.buildFailMap("订单数据错误", null);}user = userFeignClient.selectByPrimaryKey(user.getId());if (CommUtil.null2Double(user.getAvailableBalance()) >= CommUtil.null2Double(rushorder.getBond_money())) {// 余额// 买家减去余额user.setAvailableBalance(BigDecimal.valueOf(CommUtil.subtract(user.getAvailableBalance(), rushorder.getBond_money())));userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());//log.setPd_log_user(buyer);log.setPd_log_user_id(user.getId());log.setPd_op_type("消费");log.setPd_log_amount(BigDecimal.valueOf(-CommUtil.null2Double(rushorder.getBond_money())));log.setPd_log_info(rushorder.getOrder_no() + "抢购订单支付上架费减少可用预存款");log.setPd_type("可用预存款");predepositLogFeignClient.saveEntity(log);rushorder.setPay_mark("balance");rushorder.setPayment_id(1L);rushorder.setPayment_name("余额支付");rushorder.setPay_time(new Date());rushOrderFormFeignClient.completePayment(rushorder);return ResponseCode.buildSuccessMap(result);//支付成功} else {return ResponseCode.buildFailMap("可用余额不足,支付失败", null);}}@RequestMapping({ "/pay_code/generate" })public void pay_code_generate(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject json)throws IOException {String url = json.optString("url");String logoPath = "";SysConfigDto sysconfig = sysConfigFeignClient.getSysConfig();if (sysconfig.getQr_logo() != null) {logoPath =request.getSession().getServletContext().getRealPath("/") + sysconfig.getQr_logo().getPath()+ File.separator + sysconfig.getQr_logo().getName();}QRCodeUtil.encode(url, logoPath, response, true);}private HttpURLConnection creatConnection(String requestUrl) throws IOException {URL url = new URL("https://api.mch.weixin.qq.com/pay/unifiedorder");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(30000);conn.setReadTimeout(30000);conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");conn.setRequestMethod("POST");conn.setRequestProperty("Content-Length", requestUrl.length() + "");String encode = "utf-8";OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), encode);out.write(requestUrl.toString());out.flush();out.close();return conn;}private String getInput(HttpURLConnection conn) throws IOException {if (conn.getResponseCode() != 200) {return null;}BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line = "";StringBuffer strBuf = new StringBuffer();while ((line = in.readLine()) != null) {strBuf.append(line).append("\n");}in.close();return strBuf.toString().trim();}public Map doXMLParse(String strxml) throws JDOMException, IOException {strxml = strxml.replaceFirst("encoding=\".*\"", "encoding=\"UTF-8\"");if ((strxml == null) || ("".equals(strxml))) {return null;}Map m = Maps.newHashMap();InputStream in = new ByteArrayInputStream(strxml.getBytes("UTF-8"));SAXBuilder builder = new SAXBuilder();Document doc = builder.build(in);Element root = doc.getRootElement();List list = root.getChildren();Iterator it = list.iterator();while (it.hasNext()) {Element e = (Element) it.next();String k = e.getName();String v = "";List children = e.getChildren();if (children.isEmpty()) {v = e.getTextNormalize();} else {v = getChildrenText(children);}m.put(k, v);}in.close();return m;}public String getChildrenText(List children) {StringBuffer sb = new StringBuffer();if (!children.isEmpty()) {Iterator it = children.iterator();while (it.hasNext()) {Element e = (Element) it.next();String name = e.getName();String value = e.getTextNormalize();List list = e.getChildren();sb.append("<" + name + ">");if (!list.isEmpty()) {sb.append(getChildrenText(list));}sb.append(value);sb.append("</" + name + ">");}}return sb.toString();}/*** 微信回调* * @param request* @param response* @throws Exception*/@RequestMapping(value = "/weixin_returntest2636dd", method = RequestMethod.POST)public void weixin_returntest2636dd(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) throws Exception {String type = json.optString("type");String pay_type = json.optString("pay_type");String order_id = json.optString("order_id");//扩展信息表if (true) {if (true) {//支付方式  因为微信支付方式是"wx_miniprogram" 形式故pay_type为attachs[4]+"_"+attachs[5]OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();params.put("mark",pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}if (("goods_first".equals(type)) || ("group_first".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));if (true) {main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());boolean flag = false;//查询修改相关子订单main_order.setOrder_first(0);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);//分销收益try{disAgentProfit(main_order);sendOrderMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id1 = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id1.longValue());if(order != null){disAgentProfit(order);sendOrderMessage(order);}}}}catch (Exception e) {logger.error("PayController >> weixin_returntest2636dd(distribution) >> Exception:"+ e.getMessage());}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);	//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}	//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}//调用拼一拼更新拼团状态服务if(true && main_order.getOrder_cat()==3){//调用拼一拼更新拼团状态服务orderFormToolsFeignClient.updateStatusByOrderId(main_order.getId(),0);}//拓展配置中分销为开启if(true && main_order.getOrder_cat()==0){OrderFormDto updateorder=main_order;//更新分销订单状态updateorder.setOrder_status(20);distributionOrderFeignClient.updateOrderStatus(updateorder);}}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}}if (("goods".equals(type)) || ("group".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));if (true) {main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());boolean flag = false;//不查询相关子订单main_order.setOrder_first(1);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);//分销收益try{disAgentProfit(main_order);sendOrderMessage(main_order);}catch (Exception e) {logger.error("PayController >> weixin_returntest2636dd(distribution) >> Exception:"+ e.getMessage());}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);	//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}	//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}}if ("integral".equals(type)) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));if ((ig_order != null) && (ig_order.getIgo_status() < 20)&& (true)) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment(payment.getMark()); this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}}if ("cash".equals(type)) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));if ((obj != null) && (obj.getPd_pay_status() != 2) && (true)) {obj.setPd_payment(payment.getMark());obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info(payment.getName());this.predepositLogFeignClient.saveEntity(log);}}if ("gold".equals(type)) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(order_id));if ((gold != null) && (gold.getGold_pay_status() != 2) && (true)) {gold.setGold_status(1);gold.setGold_pay_status(2);gold.setGold_payment(payment.getMark());this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content(payment.getName());log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(order_id));if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());cp_order.setPayment(payment.getMark());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}}if (type.equals("platformpay")) {PlatformPay pf = this.platformPayService.selectByPrimaryKey(CommUtil.null2Long(order_id));if (pf.getPay_status() == 0 && true) {pf.setPay_status(1);pf.setUpdate_date(new Date());pf.setPay_type(payment.getMark());this.platformPayService.updateById(pf);PlatformPayFlow platformpayflow = new PlatformPayFlow();platformpayflow.setPlatform_pay_id(pf.getId());platformpayflow.setInfo("编号["+pf.getPay_no()+"]店铺保证金,支付成功");platformpayflow.setCreate_date(new Date());this.platformPayFlowService.saveEntity(platformpayflow);UserDto user = userFeignClient.selectByPrimaryKey(pf.getUser_id());StoreDto store = this.storeFeignClient.selectByPrimaryKey(user.getStore_id());store.setDeposit(pf.getAmount());this.storeFeignClient.updateById(store);}}PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");} else {PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>");}} else {PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>");}}/*** 移动端订单支付* @param request* @param response* @param payType* @param order_id* @param order_type* @param pay_password* @return* @throws Exception */@RequestMapping({ "/order_unifiedorder" })public Object order_unifiedorder(HttpServletRequest request,HttpServletResponse response,@RequestBody JSONObject json) throws Exception {Long id = json.optLong("id");String pay_type =json.optString("pay_type");String order_type =json.optString("order_type");Map<String,Object> resultMap=new HashMap<String,Object>();//TODO try{//检查支付方式if(pay_type.equals("wx_app")){return this.weixin_unifiedorder(request, response,pay_type,  id,order_type);}else if(pay_type.equals("alipay_app")){return alipayService.app_alipay_unifiedorder(request, response,pay_type,  id,order_type);}else{resultMap.put("60001", "支付方式错误");}	}catch(Exception e){logger.error(e.toString());}return resultMap;}/*** 移动端移动端预下单* @param request* @param response* @param payType* @param order_id 订单id* @param type 订单类型* @return* @throws Exception */private  Map<String,Object> weixin_unifiedorder(HttpServletRequest request,HttpServletResponse response,String  pay_type,Long  id,String order_type) throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();RequestHandler reqHandler = new RequestHandler(request, response);List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();// TODO//pay_type = "wx_app";params.put("mark", pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}String body = "";String attach = "";String out_trade_no = "";double total_fee = 0.0D;boolean submit = true;OrderFormDto of = null;PredepositDto pd = null;GoldRecord gold = null;PlatformPay platformpay=null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;UserDto user=null;if ((order_type.equals("goods")) || (order_type.equals("group"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;} else {body = of.getOrder_id();attach = of.getId() + "_" + of.getOrder_id() + "_" + of.getUser_id() + "_" + order_type + "_"+ pay_type;out_trade_no = of.getOrder_id();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", of);}}//第一次付款, 带上子订单信息if ((order_type.equals("goodsfirst")) || (order_type.equals("groupfirst"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;} else {body = of.getOrder_id();attach = of.getId() + "_" + of.getOrder_id() + "_" + of.getUser_id() + "_" + order_type + "_"+ pay_type;out_trade_no = of.getOrder_id();//第一次付款取子订单总价格total_fee = Double.valueOf(orderFormToolsFeignClient.query_order_pay_price(CommUtil.null2String(of.getId())))* 100.0D;resultMap.put("obj", of);}}if (order_type.equals("cash")) {pd = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (pd.getPd_pay_status() >= 2) {submit = false;} else {body = pd.getPd_sn();attach = pd.getId() + "_" + pd.getPd_sn() + "_" + pd.getPd_user().getId() + "_" + order_type + "_"+ pay_type;out_trade_no = pd.getPd_sn();total_fee = Double.valueOf(pd.getPd_amount().toString()).doubleValue() * 100.0D;resultMap.put("obj", pd);}}if (order_type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(id));if (gold.getGold_pay_status() >= 2) {submit = false;} else {body = gold.getGold_sn();attach = gold.getId() + "_" + gold.getGold_sn() + "_" + gold.getGold_user().getId() + "_" + order_type+ "_" + pay_type;out_trade_no = gold.getGold_sn();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", gold);}}if (order_type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (ig_order.getIgo_status() >= 20) {submit = false;} else {body = ig_order.getIgo_order_sn();attach = ig_order.getId() + "_" + ig_order.getIgo_order_sn() + "_" + ig_order.getIgo_user().getId()+ "_" + order_type + "_" + pay_type;out_trade_no = ig_order.getIgo_order_sn();total_fee = Double.valueOf(ig_order.getIgo_trans_fee().toString()).doubleValue() * 100.0D;resultMap.put("obj", ig_order);}}if (order_type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (cp_order.getStatus() == 5) {submit = false;} else {body = cp_order.getIgo_order_sn();attach = cp_order.getId() + "_" + cp_order.getIgo_order_sn() + "_" + cp_order.getUser_id() + "_"+ order_type + "_" + pay_type;out_trade_no = cp_order.getIgo_order_sn();total_fee = Double.valueOf(cp_order.getPrice()).doubleValue() * 100.0D;resultMap.put("obj", cp_order);}}if (order_type.equals("platformpay")) {   //保证金platformpay = this.platformPayService.selectByPrimaryKey(CommUtil.null2Long(id));if (platformpay.getPay_status() == 1) { //已支付 submit = false;} else {body = platformpay.getPay_no();attach = platformpay.getId() + "_" + platformpay.getPay_no() + "_" + platformpay.getUser_id() + "_"+ order_type + "_" + pay_type;out_trade_no = platformpay.getPay_no();total_fee = platformpay.getAmount().doubleValue() * 100.0D;resultMap.put("obj", platformpay);user = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(platformpay.getUser_id()));}}if ((submit) && (payment != null)) {if (payment != null) {String app_id = payment.getWx_appid();String app_key = payment.getWx_paySignKey();String partner = payment.getTenpay_partner();String notify_url = payment.getNotify_url();String noncestr = Sha1Util.getNonceStr();String timestamp = Sha1Util.getTimeStamp();String path = request.getContextPath();String basePath = notify_url+ "/";reqHandler.setParameter("appid", app_id);reqHandler.setParameter("mch_id", partner);reqHandler.setParameter("nonce_str", noncestr);reqHandler.setParameter("body", body);reqHandler.setParameter("attach", attach);reqHandler.setParameter("out_trade_no", out_trade_no);BigDecimal total_feeBig = new BigDecimal(total_fee);reqHandler.setParameter("total_fee", total_feeBig.setScale(0, BigDecimal.ROUND_UP) + "");reqHandler.setParameter("notify_url", basePath + "weixin_return");reqHandler.setParameter("trade_type", "APP");String requestUrl = reqHandler.reqToXml(app_key);HttpURLConnection conn = creatConnection(requestUrl);String result = getInput(conn);Map<String, String> map = doXMLParse(result);String return_code = ((String) map.get("return_code")).toString();String prepay_id = "";String code_url = "";if ("SUCCESS".equals(return_code)) {String result_code = ((String) map.get("result_code")).toString();if ("SUCCESS".equals(result_code)) {prepay_id = (String) map.get("prepay_id");code_url = (String) map.get("code_url");} else {// 预下单异常信息显示log.error(map.toString());}} else {// 预下单异常信息显示log.error(map.toString());}reqHandler.getAllParameters().clear();reqHandler.setParameter("appid", app_id);reqHandler.setParameter("partnerid", payment.getTenpay_partner());	reqHandler.setParameter("prepayid", prepay_id);reqHandler.setParameter("package", "Sign=WXPay");reqHandler.setParameter("noncestr", noncestr);reqHandler.setParameter("timestamp", timestamp);reqHandler.genSign(app_key);resultMap.put("appid", app_id);resultMap.put("partnerid", payment.getTenpay_partner());resultMap.put("prepayid", prepay_id);resultMap.put("package", "Sign=WXPay");resultMap.put("noncestr", noncestr);		resultMap.put("timestamp", timestamp);resultMap.put("sign", reqHandler.getParameter("sign"));System.out.print("返回给前端---------------------------");System.out.print(resultMap.toString());System.out.print("返回给前端---------------------------");reqHandler.getAllParameters().clear();reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.genSign(app_key);String order_sign = reqHandler.getParameter("sign");if ((order_type.equals("goods")) || (order_type.equals("group"))||(order_type.equals("goodsfirst")) || (order_type.equals("goodsfirst"))) {of.setOrder_sign(order_sign);this.orderFormFeignClient.updateById(of);}if (order_type.equals("cash")) {pd.setOrder_sign(order_sign);this.predepositFeignClient.updateById(pd);}if (order_type.equals("gold")) {gold.setOrder_sign(order_sign);this.goldRecordService.updateById(gold);}if (order_type.equals("integral")) {ig_order.setOrder_sign(order_sign);this.integralGoodsOrderFeignClient.updateById(ig_order);}if (order_type.equals("cloudpurchase")) {cp_order.setOrder_sign(order_sign);this.cloudPurchaseOrderFeignClient.updateById(cp_order);}if (order_type.equals("platformpay")) {platformpay.setTrade_no(order_sign);platformpay.setSign(order_sign);this.platformPayService.updateById(platformpay);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}return ResponseCode.buildSuccessMap(resultMap);}/*** 微信app支付回调* @param request* @param response* @throws Exception*/@RequestMapping({ "/weixin_return_app" })public void weixin_return_app(HttpServletRequest request,HttpServletResponse response) throws Exception {response.setContentType("text/plain");response.setHeader("Cache-Control", "no-cache");response.setCharacterEncoding("UTF-8");BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));String line = "";StringBuffer strBuf = new StringBuffer();while ((line = in.readLine()) != null) {strBuf.append(line).append("\n");}in.close();Map<String, String> xml = doXMLParse(strBuf.toString().trim());//扩展信息表SysConfigExtendDto  sysConfigExtendDto=sysconrigExtendFeignClient.getSysConfigExtend();String appid = ((String) xml.get("appid")).toString();if ("SUCCESS".equals(((String) xml.get("return_code")).toString())) {if ("SUCCESS".equals(((String) xml.get("result_code")).toString())) {String total_fee = (String) xml.get("total_fee");String[] attachs = ((String) xml.get("attach")).split("_");String type = attachs[3];//支付方式  因为微信支付方式是"wx_miniprogram" 形式故pay_type为attachs[4]+"_"+attachs[5]String pay_type = attachs[4]+"_"+attachs[5];System.out.println("返回的pay_type:"+pay_type);OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();params.put("mark",pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}RequestHandler reqHandler = new RequestHandler(request, response);reqHandler.setParameter("appId", payment.getWx_appid());reqHandler.setParameter("nonceStr", ((String) xml.get("nonce_str")).toString());reqHandler.genSign(payment.getWx_paySignKey());String sign = reqHandler.getParameter("sign");if (("goodsfirst".equals(type)) || ("groupfirst".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (sign.equals(main_order.getOrder_sign())) {main_order.setPayTime(new Date());main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());boolean flag = false;//查询修改相关子订单main_order.setOrder_first(0);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);//分销收益try{disAgentProfit(main_order);sendOrderMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id.longValue());if(order != null){disAgentProfit(order);sendOrderMessage(order);}}}}catch (Exception e) {logger.error("PayController >> weixin_return(distribution&agentProfit【goods_first】) >> Exception:"+ e.getMessage());}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);	//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}	//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}try{sendTxMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id.longValue());if(order != null){sendTxMessage(main_order);}}}}catch (Exception e) {logger.error("PayController >> weixin_return(sendTxMessage【goods_first】) >> Exception:"+ e.getMessage());}//发站内消息/*//拓展配置中分销为开启if(null !=sysConfigExtendDto && sysConfigExtendDto.isDistribution_open() && main_order.getOrder_cat()==0){OrderFormDto updateorder=main_order;//更新分销订单状态updateorder.setOrder_status(20);distributionOrderFeignClient.updateOrderStatus(updateorder);}*/}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}}if (("goods".equals(type)) || ("group".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (sign.equals(main_order.getOrder_sign())) {main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());boolean flag = false;//不查询相关子订单main_order.setOrder_first(1);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);try{disAgentProfit(main_order);sendOrderMessage(main_order);}catch (Exception e) {logger.error("PayController >> weixin_return(distribution&agentProfit【goods】) >> Exception:"+ e.getMessage());}try{sendTxMessage(main_order);}catch (Exception e) {logger.error("PayController >> weixin_return(sendTxMessage【goods】) >> Exception:"+ e.getMessage());}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);	//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}	//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}}if ("integral".equals(type)) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if ((ig_order != null) && (ig_order.getIgo_status() < 20)&& (sign.equals(ig_order.getOrder_sign()))) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment(payment.getMark()); this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}}if ("cash".equals(type)) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if ((obj != null) && (obj.getPd_pay_status() != 2) && (sign.equals(obj.getOrder_sign()))) {obj.setPd_payment(payment.getMark());obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info(payment.getName());this.predepositLogFeignClient.saveEntity(log);}}if ("gold".equals(type)) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if ((gold != null) && (gold.getGold_pay_status() != 2) && (sign.equals(gold.getOrder_sign()))) {gold.setGold_status(1);gold.setGold_pay_status(2);gold.setGold_payment(payment.getMark());this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content(payment.getName());log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());cp_order.setPayment(payment.getMark());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}}if (type.equals("platformpay")) {PlatformPay pf = this.platformPayService.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (pf.getPay_status() == 0 && StringUtils.equals(sign, pf.getSign())) {pf.setPay_status(1);pf.setUpdate_date(new Date());pf.setPay_type(payment.getMark());this.platformPayService.updateById(pf);PlatformPayFlow platformpayflow = new PlatformPayFlow();platformpayflow.setPlatform_pay_id(pf.getId());platformpayflow.setInfo("编号["+pf.getPay_no()+"]店铺保证金,支付成功");platformpayflow.setCreate_date(new Date());this.platformPayFlowService.saveEntity(platformpayflow);UserDto user = userFeignClient.selectByPrimaryKey(pf.getUser_id());StoreDto store = this.storeFeignClient.selectByPrimaryKey(user.getStore_id());store.setDeposit(pf.getAmount());this.storeFeignClient.updateById(store);}}PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");} else {PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>");}} else {PrintWriter write = response.getWriter();write.print("<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>");}}public Map<String, Object> wxh5_pay(HttpServletRequest request, HttpServletResponse response, Long id,String pay_type, String order_type) throws Exception {Map<String, Object> resultMap = new HashMap<String, Object>();RequestHandler reqHandler = new RequestHandler(request, response);List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();//TODOpay_type="wx_pay";params.put("mark", pay_type);payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}String body = "";String attach = "";String out_trade_no = "";double total_fee = 0.0D;boolean submit = true;OrderFormDto of = null;PredepositDto pd = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if ((order_type.equals("goods")) || (order_type.equals("group"))) {of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (of.getOrder_status() >= 20) {submit = false;} else {body = of.getOrder_id();attach = of.getId() + "_" + of.getOrder_id() + "_" + of.getUser_id() + "_" + order_type +"_"+pay_type;out_trade_no = of.getOrder_id();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", of);}}if (order_type.equals("cash")) {pd = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (pd.getPd_pay_status() >= 2) {submit = false;} else {body = pd.getPd_sn();attach = pd.getId() + "_" + pd.getPd_sn() + "_" + pd.getPd_user().getId() + "_" + order_type+"_"+pay_type;out_trade_no = pd.getPd_sn();total_fee = Double.valueOf(pd.getPd_amount().toString()).doubleValue() * 100.0D;resultMap.put("obj", pd);}}if (order_type.equals("gold")) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(id));if (gold.getGold_pay_status() >= 2) {submit = false;} else {body = gold.getGold_sn();attach = gold.getId() + "_" + gold.getGold_sn() + "_" + gold.getGold_user().getId() + "_" + order_type+"_"+pay_type;out_trade_no = gold.getGold_sn();total_fee = Double.valueOf(of.getTotalPrice().toString()).doubleValue() * 100.0D;resultMap.put("obj", gold);}}if (order_type.equals("integral")) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (ig_order.getIgo_status() >= 20) {submit = false;} else {body = ig_order.getIgo_order_sn();attach = ig_order.getId() + "_" + ig_order.getIgo_order_sn() + "_" + ig_order.getIgo_user().getId()+ "_" + order_type+"_"+pay_type;out_trade_no = ig_order.getIgo_order_sn();total_fee = Double.valueOf(ig_order.getIgo_trans_fee().toString()).doubleValue() * 100.0D;resultMap.put("obj", ig_order);}}if (order_type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));if (cp_order.getStatus() == 5) {submit = false;} else {body = cp_order.getIgo_order_sn();attach = cp_order.getId() + "_" + cp_order.getIgo_order_sn() + "_" + cp_order.getUser_id() + "_"+ order_type+"_"+pay_type;out_trade_no = cp_order.getIgo_order_sn();total_fee = Double.valueOf(cp_order.getPrice()).doubleValue() * 100.0D;resultMap.put("obj", cp_order);}}if ((submit) && (payment != null)) {if (payment != null) {String app_id = payment.getWx_appid();String app_key = payment.getWx_paySignKey();String partner = payment.getTenpay_partner();String notify_url = payment.getNotify_url();String noncestr = Sha1Util.getNonceStr();String timestamp = Sha1Util.getTimeStamp();String path = request.getContextPath();String basePath = notify_url + "/";reqHandler.setParameter("appid", app_id);reqHandler.setParameter("mch_id", partner);reqHandler.setParameter("nonce_str", noncestr);/*reqHandler.setParameter("device_info", "wechat_mini_program");*/reqHandler.setParameter("body", body);reqHandler.setParameter("attach", attach);reqHandler.setParameter("out_trade_no", out_trade_no);BigDecimal total_feeBig = new BigDecimal(total_fee);reqHandler.setParameter("total_fee", total_feeBig.setScale(0, BigDecimal.ROUND_UP)+"");reqHandler.setParameter("spbill_create_ip", CommUtil.getIpAddr(request));reqHandler.setParameter("notify_url", basePath + "weixin_return");reqHandler.setParameter("scene_info", "'h5_info':{'type':'Wap','wap_url':'http://haiwah5.minglisoft.cn/','wap_name': '海哇'}");reqHandler.setParameter("trade_type", "MWEB");// trade_type=JSAPI时,必须传入openidUserDto user = userFeignClient.selectByPrimaryKey(CommUtil.null2Long(of.getUser_id()));reqHandler.setParameter("openid", user.getOpenId());String requestUrl = reqHandler.reqToXml(app_key);HttpURLConnection conn = creatConnection(requestUrl);String result = getInput(conn);Map<String, String> map = doXMLParse(result);String return_code = ((String) map.get("return_code")).toString();String prepay_id = "";String code_url = "";if ("SUCCESS".equals(return_code)) {String result_code = ((String) map.get("result_code")).toString();if ("SUCCESS".equals(result_code)) {prepay_id = (String) map.get("prepay_id");code_url = (String) map.get("code_url");} else {// 预下单异常信息显示log.error(map.toString());}} else {// 预下单异常信息显示log.error(map.toString());}reqHandler.getAllParameters().clear();String newPackage = "prepay_id=" + prepay_id;reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);  reqHandler.setParameter("package", newPackage);reqHandler.setParameter("signType", "MD5");reqHandler.setParameter("timeStamp", timestamp+"");reqHandler.genSign(app_key);String order_sign = reqHandler.getParameter("sign");resultMap.put("app_id", app_id);resultMap.put("timestamp", timestamp+"");resultMap.put("noncestr", noncestr);resultMap.put("packageValue", newPackage);resultMap.put("sign", order_sign);resultMap.put("code_url", code_url);resultMap.put("signType", "MD5");System.out.print("返回给前端---------------------------");System.out.print(resultMap.toString());System.out.print("返回给前端---------------------------");reqHandler.getAllParameters().clear();reqHandler.setParameter("appId", app_id);reqHandler.setParameter("nonceStr", noncestr);reqHandler.genSign(app_key);order_sign=reqHandler.getParameter("sign");if ((order_type.equals("goods")) || (order_type.equals("group"))) {of.setOrder_sign(order_sign);this.orderFormFeignClient.updateById(of);}if (order_type.equals("cash")) {pd.setOrder_sign(order_sign);this.predepositFeignClient.updateById(pd);}if (order_type.equals("gold")) {gold.setOrder_sign(order_sign);this.goldRecordService.updateById(gold);}if (order_type.equals("integral")) {ig_order.setOrder_sign(order_sign);this.integralGoodsOrderFeignClient.updateById(ig_order);}if (order_type.equals("cloudpurchase")) {cp_order.setOrder_sign(order_sign);this.cloudPurchaseOrderFeignClient.updateById(cp_order);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}} else {return ResponseCode.buildCodeMap("20001", "支付方式错误!", null);}return ResponseCode.buildSuccessMap(resultMap) ;}@RequestMapping({ "/pay/ditu" })public Map<String, Object> ditu(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json) throws Exception {List<Payment> payments = Lists.newArrayList();Map<String, Object> params = Maps.newHashMap();params.put("mark", "wx_pay");payments = this.paymentService.queryPageList(params);Payment payment = null;if (payments.size() > 0) {payment = (Payment) payments.get(0);}String app_id = payment.getWx_appid();String app_key = payment.getWx_paySignKey();String noncestr = Sha1Util.getNonceStr();String timestamp = Sha1Util.getTimeStamp();//String accessToken = accessTokenTools.getAccessTokenOld(app_id, payment.getWx_appSecret());String accessToken = accessTokenTools.getAccessToken(app_id, payment.getWx_appSecret());System.out.println("accessToken===="+accessToken);Map<String, String> jsapiTicket = accessTokenTools.JsapiTicket(accessToken);String str = "jsapi_ticket="+jsapiTicket.get("ticket")+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+"http://haiwah5.minglisoft.cn/";String signature = Sha1Util.getSha1(str);//String signature = SHA1.SHA1(str);Map<String, Object> resultMap = new HashMap<String, Object>();resultMap.put("app_id", payment.getWx_appid());resultMap.put("timestamp", timestamp + "");resultMap.put("nonceStr", noncestr);resultMap.put("jsapiTicket", jsapiTicket.get("ticket"));resultMap.put("sign", signature);return ResponseCode.buildSuccessMap(resultMap);}/*** 支付宝app 支付成功 处理订单* @param request* @param payment 支付方式* @param type 类型* @param attachs 附加参数*/private  void afterNotifyOrderHandling_alipay(HttpServletRequest request,Payment payment,String type,String[] attachs ){OrderFormDto main_order = null;PredepositDto obj = null;GoldRecord gold = null;IntegralGoodsOrderDto ig_order = null;CloudPurchaseOrderDto cp_order = null;if (("goodsfirst".equals(type)) || ("groupfirst".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if(main_order==null||main_order.getOrder_status()!=10){return;}main_order.setPayTime(new Date());main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());boolean flag = false;//查询修改相关子订单main_order.setOrder_first(0);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);//分销收益try{disAgentProfit(main_order);sendOrderMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id.longValue());if(order != null){disAgentProfit(order);sendOrderMessage(order);}}}}catch (Exception e) {logger.error("PayController >> weixin_return(distribution&agentProfit【goods_first】) >> Exception:"+ e.getMessage());}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}//如果订单是拉新用户订单  ,  添加if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==5) {main_order.setOrder_status(14);orderFormFeignClient.updateById(main_order);}else{if(main_order.getCheck_in_time() != null){sendHotelMessage(main_order);}else if(main_order.getOrder_offline()==1){//TODO 待修改 , 验证码消息}else{try{sendTxMessage(main_order);if(main_order.getChild_order_detail() != null){List<Map> datalist = com.alibaba.fastjson.JSONObject.parseArray(main_order.getChild_order_detail(), Map.class);for (Map map : datalist) {Integer order_id = (Integer) map.get("order_id");OrderFormDto order = orderFormFeignClient.selectByPrimaryKey(order_id.longValue());if(order != null){sendTxMessage(main_order);}}}}catch (Exception e) {logger.error("PayController >> weixin_return(sendTxMessage【goods_first】) >> Exception:"+ e.getMessage());}}}//发站内消息/*//拓展配置中分销为开启if(null !=sysConfigExtendDto && sysConfigExtendDto.isDistribution_open() && main_order.getOrder_cat()==0){OrderFormDto updateorder=main_order;//更新分销订单状态updateorder.setOrder_status(20);distributionOrderFeignClient.updateOrderStatus(updateorder);}*/}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}if (("goods".equals(type)) || ("group".equals(type))) {main_order = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if(main_order==null||main_order.getOrder_status()!=10){return;}main_order.setPayTime(new Date());main_order.setPayment_mark(payment.getMark());main_order.setPayment_name(payment.getName());boolean flag = false;//不查询相关子订单main_order.setOrder_first(1);flag = this.handleOrderFormFeignClient.payByOnline(main_order, "", CommUtil.getURL(request));if (flag) {main_order.setOrder_status(20);try{disAgentProfit(main_order);sendOrderMessage(main_order);}catch (Exception e) {logger.error("PayController >> weixin_return(distribution&agentProfit【goods】) >> Exception:"+ e.getMessage());}if (main_order.getOrder_cat() != null && main_order.getOrder_cat() != 5) {if (main_order.getCheck_in_time() != null) {sendHotelMessage(main_order);} else if(main_order.getOrder_offline()==1){//TODO 待修改 , 验证码消息}else {try {sendTxMessage(main_order);} catch (Exception e) {logger.error("PayController >> weixin_return(sendTxMessage【goods】) >> Exception:"+ e.getMessage());}}}//更新库存this.orderFormToolsFeignClient.updateGoodsInventory(main_order);//该订单存在直播商品if (main_order.getLiveorder_type() != null && main_order.getLiveorder_type()==1) {liveOrderFeignClient.updateLiveOrder(main_order);}//如果订单是增值服务,修改用户   审核状态if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==4) {userFeignClient.updateLiveById(CommUtil.null2Long(main_order.getUser_id()));}//如果订单是拉新用户订单  ,  添加if (main_order.getOrder_cat() != null && main_order.getOrder_cat()==5) {main_order.setOrder_status(14);orderFormFeignClient.updateById(main_order);}}this.orderFormToolsFeignClient.sendMsgWhenHandleOrder(CommUtil.getURL(request), main_order,"tobuyer_online_pay_ok_notify", "toseller_online_pay_ok_notify");}if ("integral".equals(type)) {ig_order = this.integralGoodsOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (ig_order != null && ig_order.getIgo_status() < 20) {ig_order.setIgo_status(20);ig_order.setIgo_pay_time(new Date());ig_order.setIgo_payment(payment.getMark());this.integralGoodsOrderFeignClient.updateById(ig_order);List<Map> ig_maps = this.orderFormToolsFeignClient.query_integral_goodsinfo(ig_order.getGoods_info());for (Map map : ig_maps) {IntegralGoodsDto goods = this.integralGoodsFeignClient.selectByPrimaryKey(CommUtil.null2Long(map.get("id")));goods.setIg_goods_count(goods.getIg_goods_count() - CommUtil.null2Int(map.get("ig_goods_count")));goods.setIg_exchange_count(goods.getIg_exchange_count() + CommUtil.null2Int(map.get("ig_goods_count")));this.integralGoodsFeignClient.updateById(goods);}}}if ("cash".equals(type)) {obj = this.predepositFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (obj != null && obj.getPd_pay_status() != 2) {obj.setPd_payment(payment.getMark());obj.setPd_status(1);obj.setPd_pay_status(2);this.predepositFeignClient.updateById(obj);UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getPd_user().getId());user.setAvailableBalance(BigDecimal.valueOf(CommUtil.add(user.getAvailableBalance(), obj.getPd_amount())));this.userFeignClient.updateById(user);PredepositLogDto log = new PredepositLogDto();log.setAddTime(new Date());log.setPd_log_amount(obj.getPd_amount());log.setPd_log_user(obj.getPd_user());log.setPd_op_type("充值");log.setPd_type("可用预存款");log.setPd_log_info(payment.getName());this.predepositLogFeignClient.saveEntity(log);}}if ("gold".equals(type)) {gold = this.goldRecordService.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (gold != null && gold.getGold_pay_status() != 2) {gold.setGold_status(1);gold.setGold_pay_status(2);gold.setGold_payment(payment.getMark());this.goldRecordService.updateById(gold);UserDto user = this.userFeignClient.selectByPrimaryKey(gold.getGold_user().getId());user.setGold(user.getGold() + gold.getGold_count());this.userFeignClient.updateById(user);GoldLog log = new GoldLog();log.setAddTime(new Date());log.setGl_payment(gold.getGold_payment());log.setGl_content(payment.getName());log.setGl_money(gold.getGold_money());log.setGl_count(gold.getGold_count());log.setGl_type(0);log.setGl_user(gold.getGold_user());log.setGr(gold);this.goldLogService.saveEntity(log);}}if (type.equals("cloudpurchase")) {cp_order = this.cloudPurchaseOrderFeignClient.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (cp_order.getStatus() < 5) {cp_order.setStatus(5);cp_order.setPayTime(new Date());cp_order.setPayment(payment.getMark());this.cloudPurchaseOrderFeignClient.updateById(cp_order);this.cloudPurchaseOrderFeignClient.reduce_inventory(cp_order, request);}}if (type.equals("platformpay")) {PlatformPay pf = this.platformPayService.selectByPrimaryKey(CommUtil.null2Long(attachs[0]));if (pf.getPay_status() == 0 ) {pf.setPay_status(1);pf.setUpdate_date(new Date());pf.setPay_type(payment.getMark());this.platformPayService.updateById(pf);PlatformPayFlow platformpayflow = new PlatformPayFlow();platformpayflow.setPlatform_pay_id(pf.getId());platformpayflow.setInfo("编号["+pf.getPay_no()+"]店铺保证金,支付成功");platformpayflow.setCreate_date(new Date());this.platformPayFlowService.saveEntity(platformpayflow);UserDto user = userFeignClient.selectByPrimaryKey(pf.getUser_id());StoreDto store = this.storeFeignClient.selectByPrimaryKey(user.getStore_id());store.setDeposit(pf.getAmount());this.storeFeignClient.updateById(store);}}}
}

支持支付宝、微信APP支付、H5、公众号、小程序支付

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 信息系统项目管理师2019年下半年下午案例分析题及答案

    本系列文章将会对信息系统项目管理师考试中出现的各类案例分析题进行汇总解析&#xff0c;并给出分析过程&#xff0c;帮助考生备考复习。 更多复习内容请在微信搜索小程序 “信息系统项目管理师高频考点”。 1、2019年3月某公司中标当地轨道交通的车载广播系统项目&#xff0…...

    2024/5/8 18:49:45
  2. JS笔记迭代器与生成器

    文章目录五、迭代器与生成器5.1 迭代器1 理解迭代2 迭代器模式3 可迭代协议4 迭代器协议5 自定义迭代器6 提前终止迭代器5.2 生成器1 生成器基础2 通过yield中断执行3 生成器作为默认迭代器4 提前终止生成器5.3 总结五、迭代器与生成器 5.1 迭代器 1 理解迭代 循环是迭代机制…...

    2024/5/8 19:43:11
  3. 云计算技术 — 多云

    目录 文章目录 目录多云多云的优势多云的用例灾难恢复(Disaster recovery)故障转移(Failover)成本优化(Cost optimization)避免供应商锁定(Avoiding vendor lock-in)数据主权(Data sovereignty)特定服务访问(Access to specialized services)低延迟多云的最佳实践部…...

    2024/4/20 12:26:45
  4. Hadoop生态圈

    参考链接 1.为什么需要分布式计算系统&#xff1f; 当前大数据的数据量已达PB级别&#xff08;1PB1024TB&#xff09;&#xff0c;可以说是庞大无比。同时数据还有结构化&#xff08;如数字、符号等&#xff09;、非结构化&#xff08;如文本、图像、声音、视频等&#xff09…...

    2024/4/19 17:09:35
  5. Docker 从入门到进阶三:构建自己的镜像并分享给大家用

    文章目录什么是镜像&#xff1f;镜像分层 与 联合文件系统Docker镜像加载原理commit 构建镜像本地镜像发布到阿里云什么是镜像&#xff1f; 是什么我想大家都知道了&#xff0c;不过我放一段比较专业的话&#xff1a;是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某…...

    2024/5/8 17:32:24
  6. 将文件夹中的文件按照最后修改时间进行降序排列,并将文件全路径存入List集合

    package _06应用; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.logging.Logger; //import org.apache.log4j.Logger;//java实现遍历文件目录&#xff0c;根据文件最后的…...

    2024/5/8 21:02:06
  7. Spring Security使用原理解读

    目录1 集成SpringBoot1.1 Spring Boot 介绍1.2 创建maven工程1.3 spring 容器配置1.4 Servlet Context配置1.5 安全配置1.6 测试2 工作原理2.1 结构总览2.2 认证流程2.2.1 认证流程2.2.2.AuthenticationProvider2.2.3.UserDetailsService2.2.4.PasswordEncoder2.3.授权流程2.3.…...

    2024/4/13 12:23:16
  8. faiss-2: 快速入门

    数据准备 faiss可以处理固定维度d的向量集合&#xff0c;该集合用二维数组表示。 一般来说&#xff0c;需要两个数组&#xff1a; data&#xff1a;包含被索引的所有向量元素&#xff1b; query&#xff1a;索引向量&#xff0c;需要根据索引向量的值返回与向量集中的最近邻元…...

    2024/4/25 1:10:50
  9. JZ55二叉树的深度C++

    链接 https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b?tpId13&tqId11191&rp1&ru/ta/coding-interviews&qru/ta/coding-interviews/question-ranking 描述&#xff1a; 示例&#xff1a; 代码&#xff1a; 方法一&#xff1a; class …...

    2024/5/6 16:59:13
  10. SDUT ACM OJ 实验二链表

    A &#xff1a;顺序建立链表 #include<stdio.h> #include<stdlib.h>struct node {int data;struct node *next; }*head,*tail,*p,*q;int main () {head(struct node *)malloc(sizeof(struct node));head->nextNULL;tailhead;int n,i;scanf("%d",&…...

    2024/5/6 18:11:24
  11. 错题小结2

    1. 问题&#xff1a;程序出错在什么阶段&#xff1f; 答案&#xff1a;程序正常运行 解析&#xff1a;main函数可以接受两个参数 int main(int argc,char *argv[])&#xff0c;argc arguments count表示参数个数&#xff0c;argv argument vector表示指针数组&#xff0c;同…...

    2024/4/13 12:23:11
  12. PAT1017

    1017 A除以B (20 分) 本题要求计算 A/B&#xff0c;其中 A 是不超过 1000 位的正整数&#xff0c;B 是 1 位正整数。你需要输出商数 Q 和余数 R&#xff0c;使得 ABQR 成立。 输入格式&#xff1a; 输入在一行中依次给出 A 和 B&#xff0c;中间以 1 空格分隔。 输出格式&a…...

    2024/4/13 12:23:36
  13. YbtOJ-森林之和【dp】

    正题 题目大意 一个节点的权值定义为它度数的平方&#xff0c;求所有nnn个点的有标号森林的所有节点权值和。 1≤n,T≤51031\leq n,T\leq 5\times 10^31≤n,T≤5103 解题思路 首先因为所有节点本质相同&#xff0c;所以我们可以只考虑一个节点所有情况下的权值和。 然后考虑…...

    2024/5/6 18:40:57
  14. 浅谈selenium的webdriver(python自动化)

    提前约定一些变量 from selenium import webdriver driver webdriver.Chrome() url"xxx" driver.get(url)定位方法 通过元素id定位 driver.find_element(By.ID,id)通过元素name定位 driver.find_element(By.NAME,name)通过类名进行定位 driver.find_element(By…...

    2024/4/13 12:23:16
  15. MIT6.830 lab1 SimpleDb

    MIT6.830 lab1 SimpleDb 整个实验一共有6个lab&#xff0c;通过每一个lab的代码去实现一个简单的数据库&#xff0c;主要有&#xff1a;数据库的组织架构(字段、元组、模式、buffer pool等)、CRUD的实现、查询优化、事务与并发控制、崩溃与故障恢复。 SimpleDB consists of: Cl…...

    2024/4/13 12:23:36
  16. 《算法导论》练习与思考题第1-3章 (python版)

    目录第一章 算法在计算中的作用练习1.1 算法1.1-11.1-21.1-31.1-41.1-51.2 作为一种技术的算法1.2-11.2-21.2-3思考题1-1 运行时间的比较第二章 算法基础练习2.1 插入排序2.1-12.1-22.1-32.1-42.2 分析算法2.2-12.2-22.2-32.2-42.3 设计算法2.3-12.3-22.3-32.3-42.3-52.3-62.3-…...

    2024/4/30 5:41:00
  17. 大白话快速总结Java虚拟机

    这里写目录标题一、JVM的基本介绍1.1 Java 文件是如何被运行的1.2 简单的代码例子二、类加载器的介绍2.1 类加载器的流程2.2 类加载器的加载顺序2.3 双亲委派机制三、运行时数据区3.1 本地方法栈和程序计数器3.2 方法区3.3 虚拟机栈和虚拟机堆虚拟机栈的概念如何判断一个对象需…...

    2024/4/19 20:41:36
  18. 四旋翼无人机仿真之hector_quadrotor无人机(ROS + Gazebo)

    这里写自定义目录标题应用环境hector_quadrotor 功能包结构简介hector_quadrotor 功能包安装1. 安装所需依赖库2. 下载、安装hector_quadrotor参考文章应用环境 ubuntu16.04 (虚拟机实体机下均可&#xff09; ROS kinetic Gazebo为安装ROS时自带&#xff08;本人为Gazebo 7&am…...

    2024/4/16 1:28:01
  19. vue响应式,数据劫持发布订阅实现

    vue数据双向绑定原理&#xff1a; 数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式&#xff0c;通过Object.defineProperty()来劫持各个属性的setter&#xff0c;getter&#xff0c;在数据变动时发布消息给订阅者&#xff0c;触发相应的监听回调。 observer&am…...

    2024/5/6 5:43:49
  20. 领导者黏菌算法LSMA(学习笔记_12)

    1.理论分析 1.SMA SMA中种群个体的更新&#xff1a;依赖于最佳候选解&#xff08;Xbest&#xff09;另外两个随机候选解&#xff08;Xr1和Xr2&#xff09;。 2.改进过程 当两个随机黏菌候选解远离搜索空间时&#xff0c;随机化可能需要更长的时间才能到达最佳候选解。受其他…...

    2024/4/16 21:35:41

最新文章

  1. Java中next()与nextLine()的区别[不废话,直接讲例子]

    在使用牛客进行刷题时&#xff0c;我们很多时候会遇到这样的情况&#xff1a; 区别很简单&#xff0c;如果你要输入用空格或者回车分开的数据如&#xff1a; abc_def_ghi 这三组数据&#xff08; _ 是空格&#xff09; 用hasNext: 执行结果&#xff1a; 如果只用换行符号进行…...

    2024/5/9 3:32:29
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. CSS3 高级- 复杂选择器、内容生成、变形(transform)、过渡(transition)、动画(animation)

    文章目录 一、复杂选择器兄弟选择器:选择平级元素的唯一办法属性选择器:1、通用:基本用不着,太泛了2、自定义:4种伪类选择器:1、目标伪类:2、结构伪类:3、元素状态伪类:4、伪元素选择器:应用于文字,使网页看起来想杂志5、否定伪类:选择器:not([本选择器的条件]) /*…...

    2024/5/8 20:49:02
  4. 【JavaScript】如何在npm中切换源以及使用指定源安装依赖

    忘不掉的是什么我也不知道 想不起当年模样 看也看不到 去也去不了的地方 也许那老街的腔调是属于我的忧伤 嘴角那点微笑越来越勉强 忘不掉的是什么我也不知道 放不下熟悉片段 回头望一眼 已经很多年的时间 透过手指间看着天 我又回到那老街 靠在你们身边渐行渐远 …...

    2024/5/8 13:58:17
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57