记得上下班打卡 | git大法好,push需谨慎

Commit f0aa407c authored by anjiabin's avatar anjiabin

提交微信支付

parent 2d6f06c7
package com.liquidnet.service.dragon.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
......@@ -42,6 +43,7 @@ public class DragonPayBaseRespDto {
private String timeStamp;
@JsonProperty("package")
private String packages;
private String partnerId;
......
......@@ -37,7 +37,7 @@ public class AlipayStrategyAppImpl extends AbstractAlipayStrategy {
@Override
protected Map<String, Object> executePay(AlipayTradePayReq alipayTradePayReq) {
return AlipayUtil.tradeWapPay(alipayTradePayReq);
return AlipayUtil.tradeAppPay(alipayTradePayReq);
}
protected void setProductCode() {
......@@ -52,7 +52,7 @@ public class AlipayStrategyAppImpl extends AbstractAlipayStrategy {
@Override
DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, Map<String, Object> respResult) {
payBaseRespDto.getPayData().setOrderStr(alipayGatewayUrl + "?" + respResult.get("order_string"));
payBaseRespDto.getPayData().setOrderStr(alipayGatewayUrl + "?" + respResult.get("body"));
return payBaseRespDto;
}
}
\ No newline at end of file
......@@ -37,7 +37,7 @@ public class AlipayStrategyWapImpl extends AbstractAlipayStrategy {
@Override
protected Map<String, Object> executePay(AlipayTradePayReq alipayTradePayReq) {
return AlipayUtil.tradeAppPay(alipayTradePayReq);
return AlipayUtil.tradeWapPay(alipayTradePayReq);
}
protected void setProductCode() {
......
......@@ -14,8 +14,10 @@ import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.request.AlipayTradeQueryRequest;
import com.alipay.api.request.AlipayTradeWapPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.response.AlipayTradeQueryResponse;
import com.alipay.api.response.AlipayTradeWapPayResponse;
import com.liquidnet.commons.lang.util.StringUtil;
......@@ -37,7 +39,7 @@ public class AlipayUtil {
* @return
*/
public static Map<String, Object> tradeWapPay(AlipayTradePayReq alipayTradePayReq) {
log.info("AlipayUtil.tradePay-->> req : {}",alipayTradePayReq.toString());
log.info("AlipayUtil.tradeWapPay-->> req : {}",alipayTradePayReq.toString());
String timeExpress = "5m";// 支付超时,线下扫码交易定义为5分钟
AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient();
......@@ -52,17 +54,14 @@ public class AlipayUtil {
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
request.setNotifyUrl("https://testpay.zhengzai.tv");
request.setNotifyUrl(alipayTradePayReq.getNotifyUrl());
// request.setTimestamp(DateUtil.now());
log.info("bizContent :{}",JSONObject.toJSONString(paramMap));
request.setBizContent(JSONObject.toJSONString(paramMap));
try {
AlipayTradeWapPayResponse response = alipayClient.sdkExecute(request);
if(response.isSuccess()){
}
JSONObject responseJSON = JSONObject.parseObject(JSONObject.toJSONString(response));
log.info("支付宝返回结果:{}", responseJSON);
log.info("AlipayUtil-->tradeWapPay-->支付宝返回结果:{}", responseJSON);
return responseJSON;
} catch (AlipayApiException e) {
log.error("支付宝支付异常:{}", e);
......@@ -80,7 +79,7 @@ public class AlipayUtil {
* @return
*/
public static Map<String, Object> tradeAppPay(AlipayTradePayReq alipayTradePayReq) {
log.info("AlipayUtil.tradePay-->> req : {}",alipayTradePayReq.toString());
log.info("AlipayUtil.tradeAppPay-->> req : {}",alipayTradePayReq.toString());
String timeExpress = "5m";// 支付超时,线下扫码交易定义为5分钟
AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient();
......@@ -94,18 +93,15 @@ public class AlipayUtil {
paramMap.put("timeout_express", timeExpress);
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
request.setNotifyUrl("https://testpay.zhengzai.tv");
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
request.setNotifyUrl(alipayTradePayReq.getNotifyUrl());
// request.setTimestamp(DateUtil.now());
log.info("bizContent :{}",JSONObject.toJSONString(paramMap));
request.setBizContent(JSONObject.toJSONString(paramMap));
try {
AlipayTradeWapPayResponse response = alipayClient.sdkExecute(request);
if(response.isSuccess()){
}
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
JSONObject responseJSON = JSONObject.parseObject(JSONObject.toJSONString(response));
log.info("支付宝返回结果:{}", responseJSON);
log.info("AlipayUtil-->tradeAppPay-->支付宝返回结果:{}", responseJSON);
return responseJSON;
} catch (AlipayApiException e) {
log.error("支付宝支付异常:{}", e);
......
package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.IWepayStrategy;
......@@ -60,7 +60,7 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
WepayPayRespDto respWepayDto= XmlUtil.toBean(xmlStr, WepayPayRespDto.class);
//构造公共返回参数
DragonPayBaseRespDto respPayDto = this.buildCommonRespDto(dragonPayBaseReqDto);
DragonPayBaseRespDto respPayDto = this.buildCommonRespDto(dragonPayBaseReqDto,respWepayDto);
//构造自定义返回参数
this.buildResponseDto(respPayDto,respWepayDto);
......@@ -76,11 +76,17 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
* @param dragonPayBaseReqDto
* @return
*/
protected DragonPayBaseRespDto buildCommonRespDto(DragonPayBaseReqDto dragonPayBaseReqDto){
protected DragonPayBaseRespDto buildCommonRespDto(DragonPayBaseReqDto dragonPayBaseReqDto,WepayPayRespDto respWepayDto){
DragonPayBaseRespDto respDto = new DragonPayBaseRespDto();
respDto.setCode(dragonPayBaseReqDto.getCode());
respDto.setOrderCode(dragonPayBaseReqDto.getOrderCode());
DragonPayBaseRespDto.PayData payData = new DragonPayBaseRespDto.PayData();
payData.setAppId(respWepayDto.getAppid());
payData.setNonceStr(respWepayDto.getNonceStr());
payData.setPackages("prepay_id="+respWepayDto.getPrepayId());
payData.setPaySign(respWepayDto.getSign());
payData.setSignType("MD5");
payData.setTimeStamp(Long.valueOf(DateUtil.now().getTime()).toString());
respDto.setPayData(payData);
return respDto;
}
......@@ -99,10 +105,9 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
parameters.put("total_fee", dragonPayBaseReqDto.getPrice().multiply(BigDecimal.valueOf(100L)).intValue());
parameters.put("body", dragonPayBaseReqDto.getName());
parameters.put("detail", dragonPayBaseReqDto.getDetail());
parameters.put("out_trade_no", IDGenerator.payCode());
parameters.put("out_trade_no", dragonPayBaseReqDto.getCode());
parameters.put("time_expire", "20210908103456");
parameters.put("notify_url", dragonPayBaseReqDto.getNotifyUrl());
parameters.put("trade_type", "MWEB");
return parameters;
};
......
......@@ -24,6 +24,7 @@ import java.util.SortedMap;
public class WepayStrategyAppImpl extends AbstractWepayStrategy {
@Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) {
requestMap.put("trade_type", "APP");
return requestMap;
}
......
......@@ -24,6 +24,8 @@ import java.util.SortedMap;
public class WepayStrategyAppletImpl extends AbstractWepayStrategy{
@Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) {
requestMap.put("trade_type", "JSAPI");
requestMap.put("openid", requestMap.get("openId"));
return requestMap;
}
......
......@@ -24,6 +24,8 @@ import java.util.SortedMap;
public class WepayStrategyJsImpl extends AbstractWepayStrategy{
@Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) {
requestMap.put("trade_type", "JSAPI");
requestMap.put("openid", requestMap.get("openId"));
return requestMap;
}
......
......@@ -24,6 +24,7 @@ import java.util.SortedMap;
public class WepayStrategyWapImpl extends AbstractWepayStrategy{
@Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap) {
requestMap.put("trade_type", "MWEB");
return requestMap;
}
......
......@@ -47,13 +47,13 @@ public class PayController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "detail", value = "订单描述", example = "测试订单001"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderCode", value = "订单编号", example = "ORDER0001"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "clientIp", value = "客户端ip", example = "127.0.0.1"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "notifyUrl", value = "通知url", example = "pay.zhengzai.tv"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "notifyUrl", value = "通知url", example = "testdragon.zhengzai.tv"),
})
@ResponseBody
public ResponseDto<DragonPayBaseRespDto> dragonPay(
@RequestParam(value = "payType") @NotNull(message = "支付类型不能为空") String payType,
@RequestParam(value = "deviceFrom") @NotNull(message = "设备来源不能为空") String deviceFrom,
@RequestParam(value = "openId") String openId,
@RequestParam(value = "openId",required = false) String openId,
@RequestParam(value = "type") @NotNull(message = "业务类型不能为空") String type,
@RequestParam(value = "price") @NotNull(message = "支付金额不能为空") BigDecimal price,
@RequestParam(value = "name") @NotNull(message = "订单名称不能为空") String name,
......@@ -67,6 +67,7 @@ public class PayController {
// @RequestParam(value = "code",required = false) String code,
@RequestParam(value = "createDate",required = false) String createDate,
@RequestParam(value = "expireTime",required = false) String expireTime){
//为什么在js和applet中才需要判断open_id?
if(payType.equalsIgnoreCase(DragonConstant.PayChannelEnum.WEPAY.getCode())){
if(StringUtil.isEmpty(openId)){
return ResponseDto.failure("微信支付openId不能为空!");
......
......@@ -3,8 +3,6 @@ package com.liquidnet.service.dragon.service.impl;
import com.alibaba.fastjson.JSON;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.response.AlipayTradeRefundResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ResponseDto;
......@@ -28,10 +26,12 @@ import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.SortedMap;
import java.util.TreeMap;
@Slf4j
@Service
......@@ -114,6 +114,11 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
}
}
@Override
public ResponseDto<DragonRefundAppDto> wePayRefundCallBack() {
return null;
}
public void weyPayRefund() {
}
......@@ -306,8 +311,4 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
return false;
}
}
private void wePayRefundCallBack() {
}
}
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