Commit cc43dd5a by ping.wu

Merge branches 'feature/20211112_1元捐插件_wuping' and 'qa' of…

Merge branches 'feature/20211112_1元捐插件_wuping' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
parents cef7c88a 4c0a2bbe
......@@ -23,6 +23,9 @@ import cn.freemud.entities.dto.order.CreateOrderAccountDto;
import cn.freemud.entities.dto.order.CreateOrderProductDto;
import cn.freemud.entities.dto.order.*;
import cn.freemud.entities.dto.pay.*;
import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.pay.OrderPayResponse;
import cn.freemud.entities.dto.pay.UnifiedOrderCom;
import cn.freemud.entities.dto.promotion.OrderBeanRequest;
import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
......@@ -55,8 +58,6 @@ import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
//import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.entities.v1.*;
import com.freemud.application.sdk.api.ordercenter.enums.*;
......@@ -3254,13 +3255,21 @@ public class OrderAdapter {
}
public UnifiedOrderRequest convent2UnifiedOrderRequest(OrderBeanV1 orderBean, PaymentRequest paymentRequest, Long amount, Integer cardAmount, String transId) {
return convent2UnifiedOrderRequest(orderBean, paymentRequest, amount, cardAmount, transId, null);
return convent2UnifiedOrderRequest(new UnifiedOrderCom(orderBean, paymentRequest, amount, cardAmount, transId, null));
}
/**
* 支付信息转换
*/
public UnifiedOrderRequest convent2UnifiedOrderRequest(OrderBeanV1 orderBean, PaymentRequest paymentRequest, Long amount, Integer cardAmount, String transId, String partnerPayOvertime) {
public UnifiedOrderRequest convent2UnifiedOrderRequest(UnifiedOrderCom com) {
OrderBeanV1 orderBean = com.getOrderBean();
PaymentRequest paymentRequest =com.getPaymentRequest();
Long amount = com.getAmount();
Integer cardAmount = com.getCardAmount();
String transId =com.getTransId();
String partnerPayOvertime = com.getPartnerPayOvertime();
UnifiedOrderRequest orderPayDto = new UnifiedOrderRequest();
orderPayDto.setPartnerId(orderBean.getCompanyId());
orderPayDto.setBody(paymentRequest.getPrincipalName());
......@@ -3268,7 +3277,7 @@ public class OrderAdapter {
orderPayDto.setStoreId(orderBean.getShopId());
orderPayDto.setTransId(transId);
orderPayDto.setOpenId(paymentRequest.getOpenId());
String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
String businessDate = DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusinessDate(businessDate);
orderPayDto.setAmount(amount);
orderPayDto.setUndisAmount(1L);
......@@ -3343,7 +3352,7 @@ public class OrderAdapter {
*
* @return
*/
private String getFoodOrderType(Integer orderType) {
public String getFoodOrderType(Integer orderType) {
//1=外卖 4=自提,5=堂食
//qr_order(店内扫码点餐),pre_order(预点到店自提),home_delivery (外送到家)
String foodOrderType;
......
......@@ -3,7 +3,7 @@ package cn.freemud.adapter;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.Active;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.order.UnifiedPayResponseDto;
import cn.freemud.entities.dto.pay.PayOrderDto;
import cn.freemud.entities.dto.pay.PayProductDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
......@@ -296,7 +296,7 @@ public class PointsMallOrderAdapter {
return userScoreRequest;
}
public void convent2CreateOrderResponseVo(CreateOrderResponseVo createOrderResponseVo, String appId, FacePayResponseDto response){
public void convent2CreateOrderResponseVo(CreateOrderResponseVo createOrderResponseVo, String appId, UnifiedPayResponseDto response){
createOrderResponseVo.setWxappId(appId);
createOrderResponseVo.setFmId(response.getFmId());
createOrderResponseVo.setPaySuccess(false);
......
package cn.freemud.entities.db;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
@Data
@Table(name = "open_platform_partner_payment_auth")
public class OpenPlatformPartnerPaymentAuth {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 服务商在微信公众平台申请 appid
*/
@Column(name = "sp_appid")
private String appId;
/**
* 微信支付分配的服务商商户
*/
@Column(name = "sp_mchid")
private String spMchid;
/**
* 微信机构商户号
*/
@Column(name = "unit_mchid")
private String unitMchid;
/**
* 创建时间
*/
@Column(name = "gmt_created")
private Date gmtCreated;
/**
* 修改时间
*/
@Column(name = "gmt_modified")
private Date gmtModified;
}
\ No newline at end of file
......@@ -71,4 +71,7 @@ public class CreatePrepayRequestDto {
private String channel;
private String sessionId;
//一元捐插件开通传 1=1元捐 2=……
private Integer plugIn;
}
......@@ -8,7 +8,7 @@ import java.util.List;
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: FacePayResponseDto
* @Title: UnifiedPayResponseDto
* @Package cn.freemud.entities.dto.order
* @Description:
* @author: ping1.wu
......
......@@ -6,7 +6,7 @@ import lombok.Data;
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: FacePayResponseDto
* @Title: UnifiedPayResponseDto
* @Package cn.freemud.entities.dto.order
* @Description:
* @author: ping1.wu
......@@ -15,7 +15,7 @@ import lombok.Data;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class FacePayResponseDto {
public class UnifiedPayResponseDto {
private Integer resultCode;
private String resultMsg;
......@@ -34,4 +34,6 @@ public class FacePayResponseDto {
// private String payCode;
private String payOrder;
private String endTransId;
}
......@@ -61,6 +61,9 @@ public class CombPayResponse {
@ApiModelProperty(value = "间联单号")
private String transId;
//商户单号
private String endTransTradeNo;
//储值卡类型:0一次性卡(礼品卡),3重复使用卡(储值卡)")
private Integer cardType;
......
......@@ -89,6 +89,9 @@ public class OrderPayResponse {
*/
private String thirdOrderToken;
//商户订单号
private String endTransId;
@NoArgsConstructor
@Data
public static class PayOrderBean {
......
package cn.freemud.entities.dto.pay;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.sdk.api.assortment.order.request.order.PaymentRequest;
import lombok.Data;
@Data
public class UnifiedOrderCom {
private OrderInfoReqs orderInfo;
private String openId;
private Integer cashPrice;
private Long clientCode;
private String payTimeOutTime;
private OrderBeanV1 orderBean;
private PaymentRequest paymentRequest;
private Long amount;
private Integer cardAmount;
private String transId;
private String partnerPayOvertime;
public UnifiedOrderCom() {
}
public UnifiedOrderCom(OrderBeanV1 orderBean, PaymentRequest paymentRequest, Long amount, Integer cardAmount, String transId, String partnerPayOvertime) {
this.orderBean = orderBean;
this.paymentRequest = paymentRequest;
this.amount = amount;
this.cardAmount = cardAmount;
this.transId = transId;
this.partnerPayOvertime = partnerPayOvertime;
}
}
......@@ -13,6 +13,7 @@
package cn.freemud.entities.vo;
import cn.freemud.entities.ttpay.OrderInfo;
import cn.freemud.entities.vo.order.PlugInParameter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -68,4 +69,6 @@ public class CreateOrderResponseVo {
*/
private OrderInfo orderInfo;
private PlugInParameter plugInParameter;
}
......@@ -496,4 +496,7 @@ public class CreateOrderVo {
* 收货名姓名
*/
private String contactsName;
//一元捐插件开通传 1=1元捐 2=……
private Integer plugIn;
}
package cn.freemud.entities.vo.order;
import lombok.Data;
@Data
public class PlugInParameter {
private String mchCode;
private String subMchCode;
private String outTradeNo;
}
package cn.freemud.manager;
import cn.freemud.entities.db.OpenPlatformPartnerPaymentAuth;
import cn.freemud.entities.db.OpenPlatformPaymentConfig;
import cn.freemud.manager.dao.OpenPlatformPartnerPaymentAuthDao;
import cn.freemud.manager.dao.OpenPlatformPaymentConfigDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 支付配置表manager
* @author zhenghuan.yang
......@@ -16,6 +20,9 @@ public class OpenPlatformPaymentConfigManager {
@Autowired
private OpenPlatformPaymentConfigDao openPlatformPaymentConfigDao;
@Autowired
private OpenPlatformPartnerPaymentAuthDao openPlatformPartnerPaymentAuthDao;
public OpenPlatformPaymentConfig selectPaymentConfigByWxAppId(String wxAppId) {
OpenPlatformPaymentConfig config = new OpenPlatformPaymentConfig();
config.setWxAppId(wxAppId);
......@@ -25,4 +32,10 @@ public class OpenPlatformPaymentConfigManager {
return openPlatformPaymentConfigDao.insert(config);
}
public List<OpenPlatformPartnerPaymentAuth> selectPaymentAuthByAppId(String appId) {
OpenPlatformPartnerPaymentAuth pars = new OpenPlatformPartnerPaymentAuth();
pars.setAppId(appId);
return openPlatformPartnerPaymentAuthDao.select(pars);
}
}
package cn.freemud.manager.dao;
import cn.freemud.comm.druid.MyMapper;
import cn.freemud.entities.db.OpenPlatformPartnerPaymentAuth;
import org.springframework.stereotype.Repository;
@Repository
public interface OpenPlatformPartnerPaymentAuthDao extends MyMapper<OpenPlatformPartnerPaymentAuth> {
}
\ No newline at end of file
......@@ -337,6 +337,7 @@ public class OrderServiceImpl implements Orderservice {
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(userLoginInfoDto, createOrderVo, createOrderOperateDto, extInfo);
createPrepayRequestDto.setPlugIn(createOrderVo.getPlugIn());
return ResponseUtil.success(payServiceImpl.createPrepayOrder(createPrepayRequestDto));
}
......
......@@ -5,12 +5,13 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.db.OpenPlatformPartnerPaymentAuth;
import cn.freemud.entities.dto.SvcComPayRequestDto;
import cn.freemud.entities.dto.SvcComPayResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.order.FacePayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.order.UnifiedPayResponseDto;
import cn.freemud.entities.dto.pay.*;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
......@@ -18,11 +19,13 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.order.PlugInParameter;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import cn.freemud.management.thirdparty.MulitiPaymentClient;
import cn.freemud.manager.OpenPlatformPaymentConfigManager;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.thirdparty.ComPayClient;
import cn.freemud.service.thirdparty.PaymentNewClient;
......@@ -119,6 +122,8 @@ public class PayServiceImpl {
@Autowired
private AssortmentOpenPlatformIappWxappStoreManager assortmentOpenPlatformIappWxappStoreManager;
@Autowired
private OpenPlatformPaymentConfigManager openPlatformPaymentConfigManager;
@Autowired
private OrderQueueService orderQueueService;
@Autowired
private OrderSdkService orderSdkService;
......@@ -143,6 +148,8 @@ public class PayServiceImpl {
@Value("${query.pay.order:true}")
private Boolean queryPayOrder;
@Value("${use.pay.feign:true}")
private Boolean usePayFeignClient;
private static final Integer MULITI_RESPONSE = 200;
......@@ -193,6 +200,10 @@ public class PayServiceImpl {
throw new ServiceException(baseResponse.getCode(), baseResponse.getMessage());
}
createOrderResponse = orderAdapter.convent2CreateFatherSonOrderResponseVo(orderPayResponse, createPrepayRequestDto.getProductOrderBean());
//1元插件要返回参数
if(createPrepayRequestDto.getPlugIn() != null && createPrepayRequestDto.getPlugIn() == 1 && StringUtils.isNotEmpty(orderPayResponse.getEndTransId())){
createOrderResponse.setPlugInParameter(getPaymentAuth(createPrepayRequestDto.getWxAppId(),orderPayResponse.getEndTransId()));
}
//更新订单支付信息
BaseResponse baseEditResponse = this.updateOrderInfo(orderPayResponse, createPrepayRequestDto.getOrderExtInfoDTO(), createPrepayRequestDto.getProductOrderBean(), LogThreadLocal.getTrackingNo());
if (baseEditResponse != null) {
......@@ -438,7 +449,7 @@ public class PayServiceImpl {
request.setVer("2");
//支付服务扫脸付接口
AppLogUtil.infoLog("facePay_request", JSONObject.toJSON(request), null);
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> responseDto = null;
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> responseDto = null;
try {
responseDto = paymentNewClient.facePay(request);
AppLogUtil.infoLog("facePay_response", null, JSONObject.toJSON(responseDto));
......@@ -449,7 +460,7 @@ public class PayServiceImpl {
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse.setMsg(Objects.isNull(responseDto) ? "扫脸支付异常" : responseDto.getMessage());
} else {
FacePayResponseDto response = responseDto.getData();
UnifiedPayResponseDto response = responseDto.getData();
orderPayResponse.setFmId(response.getFmId());
orderPayResponse.setPayTransId(response.getPayTransId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
......@@ -576,19 +587,52 @@ public class PayServiceImpl {
*/
public OrderPayResponse getPreOrderPay(OrderBeanV1 orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount, String transId, String partnerPayOvertime, OrderExtInfoDto orderExtInfoDto) {
OrderPayResponse orderPayResponse;
UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId, partnerPayOvertime);
UnifiedOrderCom com = new UnifiedOrderCom(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId, partnerPayOvertime);
//支付聚合sdk 请求参数
UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(com);
//Feign 预支付接口请求参数
UnifiedOrderRequestDto requestDto = this.convert2UnifiedOrderRequestDto(com);
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 start
if (null != orderBean.getMarketingType() && OrderMarketType.COLLAGE.getIndex() == orderBean.getMarketingType()) {
// 拼单人数大于1人时参加拼单补贴
if (null != orderBean.getProductList() && orderBean.getProductList().stream().map(ProductBeanV1::getUserId).distinct().collect(Collectors.toList()).size() > 1) {
Map<String, String> goodsTagMap = this.goodsTagMap();
String goodsTag = goodsTagMap.get(orderBean.getCompanyId());
request.setGoodsTag(StringUtils.isBlank(goodsTag) ? collageGoodsTag : goodsTag);
goodsTag = StringUtils.isBlank(goodsTag) ? collageGoodsTag : goodsTag;
request.setGoodsTag(goodsTag);
requestDto.setGoodsTag(goodsTag);
}
}
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 end
if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) {
request.setStationId(orderExtInfoDto.getStationId());
requestDto.setStationId(orderExtInfoDto.getStationId());
}
//使用支付FeignClient
if(usePayFeignClient){
orderPayResponse = new OrderPayResponse();
String clientCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), orderBean.getShopId());
if (StringUtils.isBlank(clientCode)) {
orderPayResponse.setMsg("请先联系相关人员配置商户对应的支付渠道");
return orderPayResponse;
}
requestDto.setClientCode(Long.parseLong(clientCode));
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> response = paymentNewClient.unifiedOrder(requestDto);
putDelMq(request.getPartnerId(), request.getStoreId(), response.getData().getFmId(), orderBean.getOid(), null);
this.convent2CreateOrderResponseVo(orderPayResponse,paymentRequest.getWxAppId(),response.getData());
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayChannelType(PayChannelType.WECHAT);
if (orderPayResponse.getPayOrder() != null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) {
orderPayResponse.setPayChannelType(PayChannelType.ALIPAY);
}
//抖音支付
if (PayChannelType.TIKTOKPAY.getIndex().toString().equalsIgnoreCase(orderBean.getPayChannelType())) {
orderPayResponse.setPayChannelType(PayChannelType.TIKTOKPAY);
}
return orderPayResponse;
}
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
......@@ -723,6 +767,7 @@ public class PayServiceImpl {
if (cashPay != null) {
String transId = cashPay.getTransId();
orderPayResponse.setFmId(cashPay.getFmTradeNo());
orderPayResponse.setEndTransId(cashPay.getEndTransTradeNo());
redisCache.save(RedisUtil.getPaymentTransIdOrderKey(transId), orderBean.getOid(), 1L, TimeUnit.DAYS);
//加入轮训队列
putDelMq(orderBean.getCompanyId(), storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(transId).getIndex().intValue());
......@@ -770,13 +815,13 @@ public class PayServiceImpl {
return orderPayResponse;
}
//svc卡支付
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> responseBase = paymentNewClient.codePay(request);
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> responseBase = paymentNewClient.codePay(request);
if (responseBase == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())
|| responseBase.getData() == null || !Objects.equals(responseBase.getData().getResultCode(), ResponseCodeConstant.RESPONSE_SUCCESS)) {
// 1.9.34 预支付失败需要把原因进行记录
orderPayResponse.setMsg(Objects.isNull(responseBase) ? "卡支付异常" : responseBase.getMessage());
} else {
FacePayResponseDto codePayResponse = responseBase.getData();
UnifiedPayResponseDto codePayResponse = responseBase.getData();
orderPayResponse.setFmId(codePayResponse.getFmId());
orderPayResponse.setPayTransId(codePayResponse.getPayTransId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
......@@ -1083,6 +1128,20 @@ public class PayServiceImpl {
return "";
}
/**
* 通过payCode ->clientCode
*/
private String getPayCodeByChanel(String wxAppid, String storeId) {
AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(wxAppid
, storeId
, null);
if (wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getClientCode())) {
return wxAppStore.getClientCode();
}
return "";
}
/**
* 获取混合支付是否开启
......@@ -1148,4 +1207,87 @@ public class PayServiceImpl {
return wxAppStore;
}
public UnifiedOrderRequestDto convert2UnifiedOrderRequestDto(UnifiedOrderCom com) {
OrderBeanV1 orderBean = com.getOrderBean();
PaymentRequest paymentRequest =com.getPaymentRequest();
Long amount = com.getAmount();
Integer cardAmount = com.getCardAmount();
String transId =com.getTransId();
String partnerPayOvertime = com.getPartnerPayOvertime();
UnifiedOrderRequestDto orderPayDto = new UnifiedOrderRequestDto();
orderPayDto.setPartnerId(orderBean.getCompanyId());
orderPayDto.setBody(paymentRequest.getPrincipalName());
orderPayDto.setNotifyUrl(paymentRequest.getReverseNotifyiDcUrl());
orderPayDto.setStoreId(orderBean.getShopId());
orderPayDto.setTransId(transId);
orderPayDto.setOpenId(paymentRequest.getOpenId());
String businessDate = DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusinessDate(businessDate);
orderPayDto.setAmount(amount);
orderPayDto.setUndisAmount(1L);
orderPayDto.setVipAmount(Long.valueOf(cardAmount));
// orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<PayProductDto> productBeans = new ArrayList<>();
if (CollectionUtils.isNotEmpty(orderBean.getProductList())) {
orderBean.getProductList().forEach(orderProductBean -> {
PayProductDto productBean = new PayProductDto();
productBean.setId(orderProductBean.getProductId());
productBean.setQuantity(orderProductBean.getNumber());
// productBean.setSeq(orderProductBean.getSequence());
// productBean.setSalesType("NORMAL");
productBean.setPrice(orderProductBean.getPrice());
productBean.setName(orderProductBean.getProductName());
productBeans.add(productBean);
});
}
orderPayDto.setProducts(productBeans);
orderPayDto.setPayCode(paymentRequest.getPayCode());
//抖音支付的payCode = 10066
if (OrderClientType.TIKTOKPAY.getIndex().toString().equalsIgnoreCase(orderBean.getOrderClient())) {
orderPayDto.setPayCode(PayChannelType.TIKTOKPAY.getEbcode());
}
orderPayDto.setFoodOrderType(orderAdapter.getFoodOrderType(orderBean.getOrderType()));
// orderPayDto.setMerchantDiscount(orderBean.getOriginalAmount().longValue()-orderBean.getAmount());
return orderPayDto;
}
public void convent2CreateOrderResponseVo(OrderPayResponse createOrderResponseVo, String appId, UnifiedPayResponseDto response){
createOrderResponseVo.setWxAppid(appId);
createOrderResponseVo.setFmId(response.getFmId());
createOrderResponseVo.setEndTransId(response.getEndTransId());
// createOrderResponseVo.setPaySuccess(false);
String payOrderDto = response.getPayOrder();
PayOrderDto payOrderBean = JSONObject.parseObject(payOrderDto, PayOrderDto.class);
if (null != payOrderBean) {
OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean();
payBean.setAppid(payOrderBean.getAppid());
payBean.setNonceStr(payOrderBean.getNonceStr());
payBean.setPackageX(payOrderBean.getPackageX());
payBean.setSign(payOrderBean.getSign());
payBean.setSignType(payOrderBean.getSignType());
payBean.setTimestamp(payOrderBean.getTimestamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
createOrderResponseVo.setPayOrder(payBean);
}
}
//1元捐插件需要参数
private PlugInParameter getPaymentAuth(String appId,String outTradeNo) {
PlugInParameter plugInParameter = new PlugInParameter();
List<OpenPlatformPartnerPaymentAuth> openPlatformPartnerPaymentAuths = openPlatformPaymentConfigManager.selectPaymentAuthByAppId(appId);
if(CollectionUtils.isNotEmpty(openPlatformPartnerPaymentAuths)){
plugInParameter.setMchCode(openPlatformPartnerPaymentAuths.get(0).getSpMchid());
plugInParameter.setSubMchCode(openPlatformPartnerPaymentAuths.get(0).getUnitMchid());
plugInParameter.setOutTradeNo(outTradeNo);
}
return plugInParameter;
}
}
......@@ -10,7 +10,7 @@ import cn.freemud.entities.Active;
import cn.freemud.entities.dto.BatchQueryActivityInfoRequestDto;
import cn.freemud.entities.dto.BatchQueryActivityInfoResponseDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.order.UnifiedPayResponseDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.product.pointsmall.*;
import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse;
......@@ -68,7 +68,6 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@Component
public class PointsMallOrderServiceImpl implements PointsMallOrderService {
......@@ -199,7 +198,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
CreateOrderResponseVo createOrderResponseVo = new CreateOrderResponseVo();
createOrderResponseVo.setOid(orderCode);
//线上现金支付,创建预支付订单,唤起支付
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> response = null;
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> response = null;
if (!Objects.equals(ExchangeTypeEnum.TYPE_1.getCode(), exchangeType) && cashPrice != null && cashPrice > 0) {
Long payClientCode = Long.parseLong(wxAppStore.getClientCode());
UnifiedOrderRequestDto requestDto = pointsMallOrderAdapter.convert2UnifiedOrderRequestDto(result, openId, cashPrice,
......
......@@ -3,7 +3,7 @@ package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.constant.ResponseCodeKeyConstant;
import cn.freemud.entities.dto.order.FacePayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.order.UnifiedPayResponseDto;
import cn.freemud.entities.dto.order.InvoiceCreateResponse;
import cn.freemud.entities.dto.pay.InvoiceCreateRequest;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
......@@ -36,7 +36,7 @@ public interface PaymentNewClient {
*/
@LogIgnoreFeign(logMessage="facePay",statusCodeFieldName= ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping("paymentcenter/facePay")
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> facePay(@RequestBody FacePayRequestDto orderPayDto);
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> facePay(@RequestBody FacePayRequestDto orderPayDto);
/**
......@@ -44,7 +44,7 @@ public interface PaymentNewClient {
*/
@LogIgnoreFeign(logMessage="unifiedOrder",statusCodeFieldName= ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping("paymentcenter/unifiedOrder")
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> unifiedOrder(@RequestBody UnifiedOrderRequestDto requestDto);
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> unifiedOrder(@RequestBody UnifiedOrderRequestDto requestDto);
@LogIgnoreFeign(logMessage="refundQuery")
@PostMapping("paymentcenter/refundQuery")
......@@ -61,7 +61,7 @@ public interface PaymentNewClient {
//线下付,储值卡/礼品卡支付
@LogIgnoreFeign(logMessage="codePay",statusCodeFieldName= ResponseCodeKeyConstant.STATUS_CODE)
@PostMapping("paymentcenter/codePay")
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> codePay(@RequestBody FacePayRequestDto orderPayDto);
com.freemud.application.sdk.api.base.BaseResponse<UnifiedPayResponseDto> codePay(@RequestBody FacePayRequestDto orderPayDto);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.freemud.manager.dao.OpenPlatformPartnerPaymentAuthDao" >
<resultMap id="BaseResultMap" type="cn.freemud.entities.db.OpenPlatformPartnerPaymentAuth" >
<id column="id" jdbcType="BIGINT" property="id" />
<result column="sp_appid" jdbcType="VARCHAR" property="appId" />
<result column="sp_mchid" jdbcType="VARCHAR" property="spMchid" />
<result column="unit_mchid" jdbcType="VARCHAR" property="unitMchid" />
<result column="gmt_created" jdbcType="TIMESTAMP" property="gmtCreated" />
<result column="gmt_modified" jdbcType="TIMESTAMP" property="gmtModified" />
</resultMap>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment