From 5ac0e157857f898d69f3069c073a95082f58ca97 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 22 Nov 2021 18:19:31 +0800 Subject: [PATCH] update push --- .../java/com/iformall/domain/po/WxOrder.java | 11 ++++ .../douyin/miniapp/api/TtMaService.java | 2 + .../service/impl/WxPayOrderServiceImpl.java | 9 +++ .../pay/service/pay/PayAdapterService.java | 10 +--- .../pay/douyin/BaseTtPayAdapterService.java | 2 +- .../miniApp/TtMiniAppPayAdapterService.java | 55 +++++++++++++++++-- .../pay/service/pay/wx/h5/WxH5PayService.java | 8 +-- .../appPay/WxMiniAppPayAdapterService.java | 8 +-- .../maPay/WxMiniMaPayAdapterService.java | 12 +--- 9 files changed, 82 insertions(+), 35 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java index 80546db5e..03c1c7654 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.common.SortColumn; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumCouponType; +import com.iformall.utils.Constant; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -166,4 +169,12 @@ public class WxOrder extends TenantEntity { private Integer shippingType; + public String getWeappOrderPath(EnumAppPlat appPlat){ + if(EnumAppPlat.WX.equals(appPlat)){ + + }else if (EnumAppPlat.TOUTIAO.equals(appPlat)){ + return Constant.mainPageUrl + "?type=cd&couponId=" + productId; + } + return null; + } } diff --git a/mallinkService/src/main/java/com/iformall/douyin/miniapp/api/TtMaService.java b/mallinkService/src/main/java/com/iformall/douyin/miniapp/api/TtMaService.java index 76b191815..fffb99a89 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/miniapp/api/TtMaService.java +++ b/mallinkService/src/main/java/com/iformall/douyin/miniapp/api/TtMaService.java @@ -18,6 +18,8 @@ public interface TtMaService { String JSCODE_TO_SESSION_URL = "https://developer.toutiao.com/api/apps/jscode2session"; + String ORDER_PUSH = "https://developer.toutiao.com/api/apps/order/v2/push"; + /** * 获取登录后的session信息. * diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index dd5a72aac..a6d856c45 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -172,6 +172,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); } } + } } @@ -897,6 +898,14 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { // 普通券, 修改订单状态 try { WxCouponOrder couponOrder = wxOrderService.couponOrderSuccess(order); + + try { + WxAppinfo appinfo = wxAppinfoService.getCAppInfo(order,EnumPayWay.getEnum(record.getPayVendor()).getPlat()); + payServiceFactory.getPayAdapterService(record.getPayVendor()).payOrderPush(appinfo, order, record, wxCoupon); + }catch (Exception e) { + logger.error("doOthersAfterPaySuccess----error"+e.getMessage()); + } + try{ orderFactory.getOrderAdapterService(record.getComposeOrder()).doOthersAfterPaySuccess(order, record,couponOrder); }catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java index 451d5f70f..2d2fefc27 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/PayAdapterService.java @@ -4,11 +4,7 @@ import java.io.File; import java.util.Date; import java.util.Map; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxBatchOrder; -import com.iformall.domain.po.WxOrder; -import com.iformall.domain.po.WxPayAccount; -import com.iformall.domain.po.WxPayOrder; +import com.iformall.domain.po.*; import com.iformall.enums.EnumPayShare; import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; @@ -86,11 +82,11 @@ public interface PayAdapterService { * API 订单同步 * @param appInfo * @param record - * @param payAccount + * @param * @return * @throws Exception */ - public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxPayOrder record,WxPayAccount payAccount) throws Exception; + public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception; /** * 获取二维码 diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/BaseTtPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/BaseTtPayAdapterService.java index 6148ad1a4..2ca1ca548 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/BaseTtPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/BaseTtPayAdapterService.java @@ -47,7 +47,7 @@ public class BaseTtPayAdapterService { } @Autowired - MaUtil maUtil; + protected MaUtil maUtil; protected File getQrCode(WxAppinfo appinfo,String pageUrl,int type,String sceneParam) throws WxErrorException { TtMaService ttappService = maUtil.getTtappService(appinfo); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java index 397c9748a..0648964b2 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java @@ -1,11 +1,14 @@ package com.iformall.service.pay.service.pay.douyin.miniApp; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxPayAccount; -import com.iformall.domain.po.WxPayOrder; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.*; +import com.iformall.douyin.miniapp.api.TtMaService; import com.iformall.douyin.pay.DouYinPayHelper; import com.iformall.douyin.pay.preOrder.CreatePreOrderResult; import com.iformall.douyin.pay.preOrder.DouYinCreatePreOrder; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumPayShare; import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; @@ -13,11 +16,13 @@ import com.iformall.service.pay.service.pay.CDrivingPayService; import com.iformall.service.pay.service.pay.douyin.BaseTtPayAdapterService; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; +import com.iformall.utils.DateUtils; import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.stereotype.Service; import java.io.File; -import java.util.Date; +import java.util.*; @Slf4j @Service @@ -83,8 +88,46 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen } @Override - public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxPayOrder record, WxPayAccount payAccount) throws Exception { - return null; + public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception { + TtMaService ttappService = maUtil.getTtappService(appInfo); + Map map = new HashMap<>(); + map.put("access_token",appInfo.getAccessToken()); + map.put("app_name","douyin"); + map.put("open_id",record.getOpenId()); + Map orderDetail = new HashMap<>(); + orderDetail.put("order_id",order.getId().toString()); + orderDetail.put("create_time",order.getCreateDate().getTime()); + orderDetail.put("status", EnumOrderStatus.getEnum(order.getOrderStatus()).getMessage()); + orderDetail.put("total_price",order.getPayment()); + orderDetail.put("detail_url",order.getWeappOrderPath(EnumAppPlat.TOUTIAO)); + + List itemList = new ArrayList<>(); + Map item = new HashMap<>(); + item.put("img",coupon.getCoverImg()); + item.put("title",coupon.getTitle()); + item.put("sub_title",coupon.getSubTitle()); + item.put("price",coupon.getSalePrice()); + itemList.add(item); + orderDetail.put("item_list",itemList); + + map.put("order_detail", JSON.toJSONString(orderDetail)); + map.put("order_type",0); + map.put("update_time", order.getPaymentTime().getTime()); + try { + String response = ttappService.post(ttappService.ORDER_PUSH, map); + JSONObject jsonObject = JSON.parseObject(response); + Integer code = jsonObject.getInteger("err_code"); + if (null != code && code.intValue() == 0 ) { + return new PayAdapterResult(true, "SUCCESS", null, null); + }else{ + String err_msg = jsonObject.getString("err_msg"); + return new PayAdapterResult(false, err_msg, null, null); + } + } catch (WxErrorException e) { + return new PayAdapterResult(false, "订单同步异常", null, null); + } catch (Exception e){ + return new PayAdapterResult(false, "订单同步异常", null, null); + } } @Override diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java index 7bffb6623..354a7b4a4 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/h5/WxH5PayService.java @@ -4,13 +4,9 @@ import java.io.File; import java.util.Date; import java.util.Map; +import com.iformall.domain.po.*; import org.springframework.stereotype.Service; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxBatchOrder; -import com.iformall.domain.po.WxOrder; -import com.iformall.domain.po.WxPayAccount; -import com.iformall.domain.po.WxPayOrder; import com.iformall.enums.EnumPayShare; import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; @@ -61,7 +57,7 @@ public class WxH5PayService extends BaseWxPayAdapterService implements CDriving } @Override - public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxPayOrder record, WxPayAccount payAccount) throws Exception { + public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception { return null; } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java index fec9dd343..94a0bf33c 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/appPay/WxMiniAppPayAdapterService.java @@ -4,6 +4,7 @@ import java.io.File; import java.util.Date; import java.util.Map; +import com.iformall.domain.po.*; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -12,11 +13,6 @@ import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxBatchOrder; -import com.iformall.domain.po.WxOrder; -import com.iformall.domain.po.WxPayAccount; -import com.iformall.domain.po.WxPayOrder; import com.iformall.enums.EnumOrderStatus; import com.iformall.enums.EnumPayMode; import com.iformall.enums.EnumPayShare; @@ -269,7 +265,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayAdapterService implemen } @Override - public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxPayOrder record, WxPayAccount payAccount) throws Exception { + public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception { return null; } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java index 9c7b313e2..a9607373a 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java @@ -3,20 +3,14 @@ package com.iformall.service.pay.service.pay.wx.miniApp.maPay; import java.io.File; import java.util.Date; import java.util.Map; + +import com.iformall.domain.po.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxCUser; -import com.iformall.domain.po.WxCUserBasicInfo; -import com.iformall.domain.po.WxBatchOrder; -import com.iformall.domain.po.WxMall; -import com.iformall.domain.po.WxOrder; -import com.iformall.domain.po.WxPayAccount; -import com.iformall.domain.po.WxPayOrder; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumPayMode; import com.iformall.enums.EnumPayShare; @@ -256,7 +250,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement } @Override - public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxPayOrder record, WxPayAccount payAccount) throws Exception { + public PayAdapterResult payOrderPush(WxAppinfo appInfo, WxOrder order, WxPayOrder record, WxCoupon coupon) throws Exception { return null; }