Commit 98829eb6 by xiaoer.li@freemud.com

混合支付Beta

parent 7e17bcbb
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.16-RELEASE</version>
<version>2.2.21106-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.3.18.RELEASE</version>
<version>1.3.2001.SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.16-RELEASE</version>
<version>2.2.21106-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -20,6 +20,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.order.*;
import cn.freemud.entities.dto.order.CreateOrderAccountDto;
import cn.freemud.entities.dto.order.CreateOrderProductDto;
import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.promotion.OrderBeanRequest;
import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
......@@ -55,11 +56,15 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq;
import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO;
import com.freemud.sdk.api.assortment.order.request.payment.ProductVO;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderFlowResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
......@@ -75,7 +80,6 @@ import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.FastDateFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.awt.geom.Point2D;
......@@ -301,7 +305,7 @@ public class OrderAdapter {
createOrderDto.setActivityUpdateStockRequest(activityUpdateStockRequest);
}
createOrderDto.setPayChannelType(createOrderVo.getPayChannelType());
createOrderDto.setOrderPayItemCreateReqList(createOrderVo.getOrderPayItemCreateReqList());
// createOrderDto.setOtherInfo(getOrderOtherInfo(shoppingCartGoodsDto));
return createOrderDto;
}
......@@ -3329,12 +3333,38 @@ public class OrderAdapter {
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(AssortmentCustomerInfoVo userLoginInfoDto,CreateOrderVo createOrderVo,
CreateOrderOperateDto createOrderOperateDto, OrderExtInfoDto orderExtInfoDTO){
return this.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId(), userLoginInfoDto.getWxAppId(), userLoginInfoDto.getOpenId(),
createOrderVo.getFaceCode(), createOrderVo.getCardCode(), null,
createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(),
createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO,
createOrderOperateDto.getFatherOrderBean().getOid(), null, createOrderVo.getUnionPayCard());
return this.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId()
, userLoginInfoDto.getWxAppId()
, userLoginInfoDto.getOpenId()
, createOrderVo.getFaceCode()
, createOrderVo.getCardCode()
, null
, createOrderOperateDto.getFatherOrderBean()
, createOrderOperateDto.getProductOrderBean()
, createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount()
, createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount()
, orderExtInfoDTO
, createOrderOperateDto.getFatherOrderBean().getOid()
, null
, createOrderVo.getUnionPayCard()
);
}
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(AssortmentCustomerInfoVo userLoginInfoDto
,CreateOrderOperateDto createOrderOperateDto
,CreateOrderVo createOrderVo) {
CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto();
requestDto.setPartnerId(createOrderVo.getPartnerId());
requestDto.setWxAppId(userLoginInfoDto.getWxAppId());
requestDto.setOpenId(userLoginInfoDto.getOpenId());
requestDto.setCardCode(createOrderVo.getCardCode());
requestDto.setCashAmount(createOrderVo.getCashAmount());
requestDto.setSvcAmount(createOrderVo.getSvcAmount());
requestDto.setTotalAmount(createOrderOperateDto.getTotalAmount());
requestDto.setTransId(createOrderOperateDto.getFatherOrderBean().getOid());
requestDto.setFatherOrderBean(createOrderOperateDto.getFatherOrderBean());
requestDto.setOrderPayItemCreateReqList(createOrderVo.getOrderPayItemCreateReqList());
requestDto.setStoreId(createOrderVo.getShopId());
return requestDto;
}
/**
......@@ -3437,4 +3467,107 @@ public class OrderAdapter {
deleteOrderDto.setOrderId(oId);
return deleteOrderDto;
}
/**
* svc卡支付+现金支付
* @param cashAmount
* @param svcAmount
* @param payChannelType
* @return
*/
public List<OrderPayItemCreateReq> setOrderPayItem(BigDecimal cashAmount,BigDecimal svcAmount, Byte payChannelType){
List<OrderPayItemCreateReq> orderPayItemCreateReqs = new ArrayList<>(0);
OrderPayItemCreateReq orderPayItemCreateReqSvc = new OrderPayItemCreateReq();
//svc卡
orderPayItemCreateReqSvc.setPayAmount(svcAmount);
orderPayItemCreateReqSvc.setPayChannelType(PayChannelType.SVC.getIndex().intValue());
orderPayItemCreateReqSvc.setPayChannelName(PayChannelType.SVC.getName());
orderPayItemCreateReqSvc.setPayEbCode(PayChannelType.SVC.getEbcode());
orderPayItemCreateReqs.add(orderPayItemCreateReqSvc);
//现金支付
OrderPayItemCreateReq orderPayItemCreateReqOther = new OrderPayItemCreateReq();
orderPayItemCreateReqOther.setPayAmount(cashAmount);
orderPayItemCreateReqOther.setPayChannelType(PayChannelType.getByIndex(payChannelType).getIndex().intValue());
orderPayItemCreateReqOther.setPayChannelName(PayChannelType.getByIndex(payChannelType).getName());
orderPayItemCreateReqOther.setPayEbCode(PayChannelType.getByIndex(payChannelType).getEbcode());
orderPayItemCreateReqs.add(orderPayItemCreateReqOther);
return orderPayItemCreateReqs;
}
/**
* 混合支付预支付信息转换
*/
public CombPayRequest convent2CombPayOrderRequest(PaymentRequest paymentRequest
, CreatePrepayRequestDto createPrepayRequestDto
, String partnerPayOvertime) {
CombPayRequest orderPayDto = new CombPayRequest();
orderPayDto.setEbCode(paymentRequest.getPayCode());
orderPayDto.setPartner_id(createPrepayRequestDto.getPartnerId());
orderPayDto.setBody(paymentRequest.getPrincipalName());
orderPayDto.setNotify_url(paymentRequest.getReverseNotifyiDcUrl());
//orderPayDto.setStore_id(createPrepayRequestDto.getStoreId());
orderPayDto.setStore_id("999999998");
orderPayDto.setOpen_id(paymentRequest.getOpenId());
String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusiness_date(businessDate);
orderPayDto.setAmount(createPrepayRequestDto.getTotalAmount());
orderPayDto.setVip_amount(0L);
orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayCode(paymentRequest.getPayCode());
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<ProductVO> productVOS = new ArrayList<ProductVO>();
if (CollectionUtils.isNotEmpty(createPrepayRequestDto.getFatherOrderBean().getProductList())) {
for (QueryOrdersResponse.DataBean.OrderBean.ProductBean product : createPrepayRequestDto.getFatherOrderBean().getProductList()) {
ProductVO productBean = new ProductVO();
productBean.setId(product.getProductId());
productBean.setQuantity(product.getNumber());
productBean.setSeq(product.getSequence());
productBean.setSalesType("NORMAL");
productBean.setPrice(product.getPrice());
productBean.setName(product.getProductName());
productVOS.add(productBean);
}
}
orderPayDto.setProducts(productVOS);
List<PayPlatformVO> platforms = new ArrayList<>();
if(null != createPrepayRequestDto.getOrderPayItemCreateReqList() && createPrepayRequestDto.getOrderPayItemCreateReqList().size()>0){
for (OrderPayItemCreateReq orderPayItemCreateReq : createPrepayRequestDto.getOrderPayItemCreateReqList()) {
PayPlatformVO payPlatformVO = new PayPlatformVO();
payPlatformVO.setAmount(orderPayItemCreateReq.getPayAmount().longValue());
payPlatformVO.setEbcode(orderPayItemCreateReq.getPayEbCode());
platforms.add(payPlatformVO);
}
}
orderPayDto.setPlatforms(platforms);
orderPayDto.setOut_order_no(createPrepayRequestDto.getFatherOrderBean().getOid());
orderPayDto.setCardCode(createPrepayRequestDto.getCardCode());
return orderPayDto;
}
/**
* 混合支付返回的支付参数
* @param payPlatform
* @return
*/
public OrderPayResponse convent2OrderCombPayResponse(CombPayResponse.PayPlatform payPlatform) {
OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setFmId(payPlatform.getFmTradeNo());
responseDto.setMsg("succ");
responseDto.setPayEbcode(payPlatform.getEbCode());
responseDto.setPayId("");
OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean();
payBean.setAppid(payPlatform.getAppId());
payBean.setNonceStr(payPlatform.getNonceStr());
payBean.setPackageX(payPlatform.get_package());
payBean.setSign(payPlatform.getSign());
payBean.setSignType(payPlatform.getPaySignType());
payBean.setTimestamp(payPlatform.getTimestamp());
//payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
responseDto.setPayTransId(payPlatform.getTransId());
return responseDto;
}
}
......@@ -3,9 +3,13 @@ package cn.freemud.entities.dto.order;
import cn.freemud.entities.vo.CreateOrderVo;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class CreatePrepayRequestDto {
/**
......@@ -67,4 +71,15 @@ public class CreatePrepayRequestDto {
* 使用电子风味卡
*/
private CreateOrderVo.UnionPayCard unionPayCard;
private List<OrderPayItemCreateReq> orderPayItemCreateReqList;
/**
* svc支付金额
*/
private BigDecimal svcAmount;
/**
* 现金支付金额
*/
private BigDecimal cashAmount;
private String storeId;
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderPayResponseDto
* @Package cn.freemud.entities.dto
* @Description:
* @author: liming.guo
* @date: 2018/5/25 17:10
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.dto.pay;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.util.List;
@NoArgsConstructor
@Data
@ToString
public class CombPayResponse {
private int code;
@ApiModelProperty(value = "提示信息")
private String msg;
private PayPlatforms data;
@Data
public static class PayPlatforms {
private List<PayPlatform> payPlatformResponseList;
}
@Data
static public class PayPlatform {
@ApiModelProperty(value = "app_id编号(微信使用)")
private String appId;
@ApiModelProperty(value = "支付渠道编号")
private String ebCode;
//@ApiModelProperty(value = "验签可配置")
private String sign;
@ApiModelProperty(value = "非码交易流水号")
private String fmTradeNo;
@ApiModelProperty(value = "随机字符串(微信使用)")
private String nonceStr;
@ApiModelProperty(value = "外部交易流水号,由上游系统生成,需保证唯一")
private String outOrderNo;
@ApiModelProperty(value = "包名(微信使用)")
@JsonProperty("package")
private String _package;
@ApiModelProperty(value = "支付帐号")
private String payAccount;
@ApiModelProperty(value = "签名(微信使用)")
private String paySign;
@ApiModelProperty(value = "签名类型(微信使用)")
private String paySignType;
@ApiModelProperty(value = "支付渠道描述")
private String platformDesc;
@ApiModelProperty(value = "第三方支付交易序号")
private String platformTradeNo;
@ApiModelProperty(value = "预订单编号")
private String prepayId;
@ApiModelProperty(value = "时间戳(微信使用)")
private String timestamp;
@ApiModelProperty(value = "间联单号")
private String transId;
}
}
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.3.18.RELEASE</version>
<version>1.3.2001.SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
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