Commit cc28149a by 胡敬轩

多储值卡支付 创建预支付改成支付新接口 整个流程增加多卡字段cardCodes

parent 8080ae02
package com.freemud.sdk.api.assortment.order.request.payment;
import lombok.Data;
import java.util.List;
@Data
public class MultiPayRequest {
private List<PayPlatformVO> platforms;
/**
* 用户标识
*/
private String open_id;
/**
* 回调通知地址
*/
private String notify_url;
/**
* 是否需要开发票:1为需要
*/
private Integer invoice_flag;
/**
* 支付总金额,以分为单位
*/
private Long amount;
/**
* 会员支付金额,以分为单位
*/
private Long vip_amount;
/**
* 不可打折金额,以分为单位
*/
private Integer undis_amount;
/**
* 订单描述
*/
private String body;
/**
* 外部交易流水号,由上游系统生成,需保证唯一
*/
private String out_order_no;
private List<ProductVO> products;
private String goodsTag;
/**
* 商户编号(由非码提供)
*/
private String partner_id;
/**
* 商家门店号(在线支付需要提前定义)
*/
private String store_id;
/**
* 业务日期
*/
private String business_date;
/**
* 营业员编号(可以使用固定值)
*/
private String operator_id = "1";
/**
* 商家POS机编号(可以使用固定值,扫码付必传)
*/
private String station_id = "1";;
private String appId;
private String payCode;
private String payTimeOutTime;
private String ebCode;
private Boolean disable_service_goods_tag = false;
private String request_source ="V1";
private String ver ="10";
private String storeName;
private Long merchantDiscount;
/**
* @see com.freemud
* 下单所用小程序类型:1微信,2支付宝,3抖音")
*/
private Integer applicationType;
//储值卡支付列表
private List<String> cardItems;
}
......@@ -77,6 +77,7 @@ import com.freemud.sdk.api.assortment.order.entities.promption.SubtractStockVO;
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.MultiPayRequest;
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.QueryOrderByIdResponse;
......@@ -3358,6 +3359,7 @@ public class OrderAdapter {
requestDto.setOpenId( userLoginInfoDto.getOpenId());
requestDto.setFaceCode(createOrderVo.getFaceCode());
requestDto.setCardCode(createOrderVo.getCardCode());
requestDto.setCardCodes(createOrderVo.getCardCodes());
requestDto.setPayCode(null);
requestDto.setFatherOrderBean(createOrderOperateDto.getFatherOrderBean());
requestDto.setProductOrderBean(createOrderOperateDto.getProductOrderBean());
......@@ -4031,4 +4033,63 @@ public class OrderAdapter {
return payItems;
}
public MultiPayRequest convent2MultiPayOrderRequest(List<String> cardCodes
, OrderBeanV1 orderBean
, PaymentRequest paymentRequest
, String partnerPayOvertime
, String orderClient
, String channel
, Integer totalAmount) {
MultiPayRequest orderPayDto = new MultiPayRequest();
orderPayDto.setEbCode(paymentRequest.getPayCode());
orderPayDto.setPartner_id(orderBean.getCompanyId());
orderPayDto.setBody(paymentRequest.getPrincipalName());
orderPayDto.setNotify_url(paymentRequest.getReverseNotifyiDcUrl());
orderPayDto.setStore_id(orderBean.getShopId());
orderPayDto.setOpen_id(paymentRequest.getOpenId());
String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusiness_date(businessDate);
orderPayDto.setAmount(totalAmount.longValue());
orderPayDto.setVip_amount(0L);
orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayCode(paymentRequest.getPayCode());
orderPayDto.setVer("V1");
orderPayDto.setStoreName(orderBean.getShopName());
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<ProductVO> productVOS = new ArrayList<ProductVO>();
if (CollectionUtils.isNotEmpty(orderBean.getProductList())) {
for (ProductBeanV1 product : orderBean.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.setMerchantDiscount(orderBean.getOriginalAmount().longValue() - orderBean.getAmount());
orderPayDto.setProducts(productVOS);
List<PayPlatformVO> platforms = new ArrayList<>();
PayPlatformVO payPlatformVO = new PayPlatformVO();
payPlatformVO.setClientCode(PayChannelType.SVC.getEbcode());
payPlatformVO.setEbcode(PayChannelType.SVC.getEbcode());
payPlatformVO.setAmount(0L);
platforms.add(payPlatformVO);
String ebcode = PayChannelType.getByIndex(Byte.parseByte(channel)).getEbcode();
payPlatformVO = new PayPlatformVO();
payPlatformVO.setAmount(0L);
payPlatformVO.setClientCode(orderClient);
payPlatformVO.setEbcode(ebcode);
platforms.add(payPlatformVO);
orderPayDto.setPlatforms(platforms);
orderPayDto.setOut_order_no(orderBean.getOid());
orderPayDto.setCardItems(cardCodes);//多卡支付
orderPayDto.setApplicationType(getPayApplicationType(orderBean.getOrderClient()));
return orderPayDto;
}
}
......@@ -7,6 +7,8 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import lombok.Data;
import java.util.List;
@Data
public class CreatePrepayRequestDto {
/**
......@@ -26,9 +28,15 @@ public class CreatePrepayRequestDto {
*/
private String faceCode;
/**
* 会员卡code
* 会员卡code 储值卡
*/
private String cardCode;
/**
* 储值卡
*/
private List<String> cardCodes;
/**
* 支付渠道码
*/
......
/**
* 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 MultiPayResponse {
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 fmTradeNo;
@ApiModelProperty(value = "随机字符串(微信使用)")
private String nonceStr;
@ApiModelProperty(value = "外部交易流水号,由上游系统生成,需保证唯一")
private String outOrderNo;
@ApiModelProperty(value = "第三方支付交易序号")
private String platformTradeNo;
@ApiModelProperty(value = "支付金额")
private Integer payAmount;
@ApiModelProperty(value = "间联单号")
private String transId;
//商户单号
private String endTransTradeNo;
//储值卡类型:0一次性卡(礼品卡),3重复使用卡(储值卡)")
private Integer cardType;
@ApiModelProperty(value = "")
private PayOrderBean payOrder;
//卡号 多卡支付multiPay接口返回
private String cardCode;
@Data
public static class PayOrderBean {
/**
* appid : wx3ab08e23966343fe
* package : prepay_id=wx25143630149413bcd9fbad100070370076
* nonce_str : -610630281
* sign : D320B2B74D858EBE16841F43AE70E757
* timestamp : 1527230190
* signType : MD5
*/
private String appId;
@JsonProperty("package")
private String packageX;
//@JsonProperty("nonce_str")
private String nonceStr;
/**
* 支付签名
*/
private String paySign;
private String timeStamp;
/**
* 加密方式
*/
private String signType;
private String aliPayOrder;
}
}
}
......@@ -16,9 +16,11 @@ package cn.freemud.service.thirdparty;
import cn.freemud.annotations.LogIgnoreFeign;
import cn.freemud.constant.ResponseCodeKeyConstant;
import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.pay.MultiPayResponse;
import cn.freemud.entities.dto.pay.MultiQueryRequest;
import cn.freemud.entities.dto.pay.MultiQueryRespDto;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.request.payment.MultiPayRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -44,4 +46,11 @@ public interface ComPayClient {
@PostMapping("/payment/application/query")
MultiQueryRespDto paymentApplicationQuery(@RequestBody MultiQueryRequest multiQueryRequest, @RequestHeader("partnerId") Integer partnerId);
/**
* 多卡支付统一下单
*/
@LogIgnoreFeign(logMessage="multiPay",messageFieldName= ResponseCodeKeyConstant.MSG)
@PostMapping("/payment/application/multiPay")
MultiPayResponse multiPay(@RequestBody MultiPayRequest multiPayRequest, @RequestHeader("partnerId") String partnerId);
}
......@@ -38,4 +38,7 @@ public class OrderPayItemResp {
* 支付交易号
*/
private String orderPayItemCode;
//卡号 多卡支付multiPay接口返回
private String cardCode;
}
\ No newline at end of file
......@@ -120,6 +120,12 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
* svc 卡支付使用
*/
private String cardCode;
/**
* svc 卡支付使用 多卡
*/
private List<String> cardCodes;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
......
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