Commit fae1b590 by ping.wu

支付宝下单

parent 8cce065b
......@@ -94,7 +94,7 @@ public class OrderSdkAdapter {
request.setSettlementAmount(requestVO.getAmount());
//实际支付现金金额,扣除支付自生优惠,单位分
request.setActualPayAmount(requestVO.getAmount());
request.setOrderClient(OrderClientType.SAAS.getIndex());
request.setOrderClient(requestVO.getOrderClient().getIndex());
//订单业务类型 1:普通订单 2:虚拟订单
request.setBizType(1);
request.setNote(requestVO.getRemark());
......@@ -368,6 +368,7 @@ public class OrderSdkAdapter {
orderClients.add(OrderClientType.WAI_MEAL.getIndex());
}
}
orderClients.add(OrderClientType.ALIPAY.getIndex());
orderConditionsReq.setOrderClients(orderClients);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
......
package com.freemud.sdk.api.assortment.order.request.order;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
......@@ -77,6 +78,8 @@ public class BaseCreateOrderRequest extends BaseConfig {
* 支付渠道名称
*/
private String payChannelName;
private OrderClientType orderClient;
/**
* 订单来源
*/
......
......@@ -83,5 +83,7 @@ public class OrderPayResponse {
private String timestamp;
private String signType;
private String aliPayOrder;
}
}
......@@ -109,7 +109,7 @@
<dependency>
<artifactId>assortment-data-manager</artifactId>
<groupId>com.freemud.sdk.api.assortment</groupId>
<version>4.1.3.RELEASE</version>
<version>4.1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud.commons</groupId>
......@@ -310,7 +310,7 @@
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-payment-sdk</artifactId>
<version>2.3.2-SNAPSHOT</version>
<version>2.4.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
......
......@@ -2215,23 +2215,23 @@ public class OrderAdapter {
/**
* 获取自定义信息
*/
public OrderExtInfoDTO getOrderExtInfo(OrderPayResponse orderPayResponse, OrderExtInfoDTO orderExtInfoDto) {
orderExtInfoDto.setOpenid(orderPayResponse.getOpenId());
String prepayId = "";
// StringUtils 依赖修改
if (orderPayResponse.getPayOrder() != null && !StringUtils.isEmpty(orderPayResponse.getPayOrder().getPackageX())) {
String[] prepayIds = orderPayResponse.getPayOrder().getPackageX().split("=");
prepayId = prepayIds.length > 1 ? prepayIds[1] : "";
}
orderExtInfoDto.setPrepayId(prepayId);
// orderExtInfoDto.setAppid(orderPayResponse.getWxAppid());
// orderExtInfoDto.setServiceTime(orderEditInfo.getServiceTime());
// orderExtInfoDto.setPushOrderTime(orderEditInfo.getPushOrderTime());
// orderExtInfoDto.setSessionId(orderEditInfo.getSessionId());
// orderExtInfoDto.setVersion(orderEditInfo.getVersion());
// orderExtInfoDto.setRuleId(orderEditInfo.getRuleId());
return orderExtInfoDto;
}
// public OrderExtInfoDTO getOrderExtInfo(OrderPayResponse orderPayResponse, OrderExtInfoDTO orderExtInfoDto) {
// orderExtInfoDto.setOpenid(orderPayResponse.getOpenId());
// String prepayId = "";
// // StringUtils 依赖修改
// if (orderPayResponse.getPayOrder() != null && !StringUtils.isEmpty(orderPayResponse.getPayOrder().getPackageX())) {
// String[] prepayIds = orderPayResponse.getPayOrder().getPackageX().split("=");
// prepayId = prepayIds.length > 1 ? prepayIds[1] : "";
// }
// orderExtInfoDto.setPrepayId(prepayId);
//// orderExtInfoDto.setAppid(orderPayResponse.getWxAppid());
//// orderExtInfoDto.setServiceTime(orderEditInfo.getServiceTime());
//// orderExtInfoDto.setPushOrderTime(orderEditInfo.getPushOrderTime());
//// orderExtInfoDto.setSessionId(orderEditInfo.getSessionId());
//// orderExtInfoDto.setVersion(orderEditInfo.getVersion());
//// orderExtInfoDto.setRuleId(orderEditInfo.getRuleId());
// return orderExtInfoDto;
// }
/**
* 转换前端支付需要的信息
......@@ -2239,19 +2239,19 @@ public class OrderAdapter {
* @param orderPayResponse
* @return
*/
public CreateOrderFlowResponse.CreateOrderResponseVo convent2CreateOrderResponseVo(OrderPayResponse orderPayResponse) {
CreateOrderFlowResponse.CreateOrderResponseVo createOrderResponseVo = new CreateOrderFlowResponse.CreateOrderResponseVo();
createOrderResponseVo.setOrderId(orderPayResponse.getOrderId());
createOrderResponseVo.setWxAppid(orderPayResponse.getWxAppid());
createOrderResponseVo.setFmId(orderPayResponse.getFmId());
OrderPayResponse.PayOrderBean payOrderBean = orderPayResponse.getPayOrder();
createOrderResponseVo.setTimestamp(payOrderBean == null ? "" : payOrderBean.getTimestamp());
createOrderResponseVo.setNonceStr(payOrderBean == null ? "" : payOrderBean.getNonceStr());
createOrderResponseVo.setPackageX(payOrderBean == null ? "" : payOrderBean.getPackageX());
createOrderResponseVo.setSignType(payOrderBean == null ? "" : payOrderBean.getSignType());
createOrderResponseVo.setSign(payOrderBean == null ? "" : payOrderBean.getSign());
return createOrderResponseVo;
}
// public CreateOrderFlowResponse.CreateOrderResponseVo convent2CreateOrderResponseVo(OrderPayResponse orderPayResponse) {
// CreateOrderFlowResponse.CreateOrderResponseVo createOrderResponseVo = new CreateOrderFlowResponse.CreateOrderResponseVo();
// createOrderResponseVo.setOrderId(orderPayResponse.getOrderId());
// createOrderResponseVo.setWxAppid(orderPayResponse.getWxAppid());
// createOrderResponseVo.setFmId(orderPayResponse.getFmId());
// OrderPayResponse.PayOrderBean payOrderBean = orderPayResponse.getPayOrder();
// createOrderResponseVo.setTimestamp(payOrderBean == null ? "" : payOrderBean.getTimestamp());
// createOrderResponseVo.setNonceStr(payOrderBean == null ? "" : payOrderBean.getNonceStr());
// createOrderResponseVo.setPackageX(payOrderBean == null ? "" : payOrderBean.getPackageX());
// createOrderResponseVo.setSignType(payOrderBean == null ? "" : payOrderBean.getSignType());
// createOrderResponseVo.setSign(payOrderBean == null ? "" : payOrderBean.getSign());
// return createOrderResponseVo;
// }
/**
* 父子订单转换前端支付需要的信息
......@@ -2271,6 +2271,7 @@ public class OrderAdapter {
createOrderResponseVo.setPackageX(payOrderBean == null ? "" : payOrderBean.getPackageX());
createOrderResponseVo.setSignType(payOrderBean == null ? "" : payOrderBean.getSignType());
createOrderResponseVo.setSign(payOrderBean == null ? "" : payOrderBean.getSign());
createOrderResponseVo.setOrderStr(payOrderBean == null ? "" : payOrderBean.getAliPayOrder());
return createOrderResponseVo;
}
......@@ -2289,6 +2290,7 @@ public class OrderAdapter {
payBean.setSign(payOrderBean.getSign());
payBean.setSignType(payOrderBean.getSignType());
payBean.setTimestamp(payOrderBean.getTimestamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
}
responseDto.setStatusCode(unifiedOrderResponse.getStatusCode());
......
......@@ -45,4 +45,9 @@ public class CreateOrderResponseVo {
*/
private Integer orderUpdateVer;
/**
* 支付宝参数 唤起支付宝支付使用
*/
private String orderStr;
}
......@@ -197,9 +197,9 @@ public class CheckOrder {
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
takeMealDateTime = DateUtil.convert2Date(takeMealTime.toString(), "yyyy-MM-dd HH:mm:ss");
}
String wxAppId = userLoginInfoDto.getWxAppId();
String appId = userLoginInfoDto.getWxAppId();
// 校验小程序是否支持到店或者外卖
OpenPlatformIappWxappConfig config = openPlatformIappWxappConfigManager.selectIappWxappConfigByWxAppId(wxAppId);
OpenPlatformIappWxappConfig config = openPlatformIappWxappConfigManager.selectIappWxappConfigByWxAppId(appId);
// 自提校验
if (CreateOrderType.COLLECT_GOODS.getCode().equals(createOrderVo.getOrderType())) {
if (config == null || config.getTakeInside() == null || config.getTakeInside() != 1) {
......@@ -229,7 +229,7 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
//获取门店配送信息
StoreDeliveryInfoDto storeDeliveryInfoDto = getStoreDeliveryInfo(storeResponseDto, config, wxAppId);
StoreDeliveryInfoDto storeDeliveryInfoDto = getStoreDeliveryInfo(storeResponseDto, config, appId);
//订单金额小于起送费提示
if (storeDeliveryInfoDto.getDeliveryLimitAmount() > totalAmount) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE);
......
......@@ -70,6 +70,7 @@ import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest;
import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest;
......@@ -1711,13 +1712,20 @@ public class OrderServiceImpl implements Orderservice {
AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDTO orderExtInfoDTO) {
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
String orderWarnTime = storeResponseDto.getOrderWarnTime();
OrderClientType orderClient = OrderClientType.SAAS;
String appId = userLoginInfoDto.getWxAppId();
if("2".equals(userLoginInfoDto.getChannel()) ){
orderClient = OrderClientType.ALIPAY;
}
//创建普通订单
OrderClientType finalOrderClient = orderClient;
Function<Object, CreateOrderResponse> createOrder = (var -> {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto,orderWarnTime);
//查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
//保存门店渠道信息
baseCreateOrderRequest.setOrderExtended(orderExtendedReq);
baseCreateOrderRequest.setOrderClient(finalOrderClient);
CreateOrderRequest createOrderRequest = new CreateOrderRequest();
baseCreateOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
createOrderRequest.setBaseCreateOrderRequest(baseCreateOrderRequest);
......@@ -1783,7 +1791,7 @@ public class OrderServiceImpl implements Orderservice {
//<!---创建订单公共方法执行逻辑--->
OrderPayResponse orderPayResponse = null;
paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto, createOrderVo.getPartnerId());
paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto, createOrderVo.getPartnerId(),appId);
if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
} else if (totalAmount > 0 && StringUtils.isBlank(createOrderVo.getCardCode())) {
......@@ -1917,14 +1925,18 @@ public class OrderServiceImpl implements Orderservice {
return orderPayResponse;
}
private PaymentRequest orderBodyConvertToPaymentBody(AssortmentCustomerInfoVo userLoginInfoDto, String partnerId) {
String wxAppId = userLoginInfoDto.getWxAppId();
private PaymentRequest orderBodyConvertToPaymentBody(AssortmentCustomerInfoVo userLoginInfoDto, String partnerId,String appId) {
// String wxAppId = userLoginInfoDto.getWxAppId();
//设置支付信息
PaymentRequest paymentRequest = new PaymentRequest();
paymentRequest.setOpenId(userLoginInfoDto.getOpenId());
paymentRequest.setWxAppId(wxAppId);
AssortmentOpenPlatformWxapp wxApp = openPlatformWxappManager.findByPartnerIdAndWxappId(partnerId, wxAppId);
paymentRequest.setPrincipalName(wxApp.getPrincipalName());
paymentRequest.setWxAppId(appId);
AssortmentOpenPlatformWxapp wxApp = openPlatformWxappManager.findByPartnerIdAndWxappId(partnerId, appId);
String principalName = "上海非码网络科技有限公司";
if(wxApp != null){
principalName = wxApp.getPrincipalName();
}
paymentRequest.setPrincipalName(principalName);
paymentRequest.setReverseNotifyiDcUrl(reverseNotifyiDcUrl);
return paymentRequest;
}
......@@ -2285,7 +2297,8 @@ public class OrderServiceImpl implements Orderservice {
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne){
//<!---创建订单公共方法执行逻辑--->
OrderPayResponse orderPayResponse = null;
PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto, createOrderVo.getPartnerId());
String appId = userLoginInfoDto.getWxAppId();
PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto, createOrderVo.getPartnerId(),appId);
//支付金额异常
if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
......
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