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

Commit 3c90c2c1 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents 3b186e65 48e398db
...@@ -18,15 +18,19 @@ public class AdamAddressesParam implements java.io.Serializable { ...@@ -18,15 +18,19 @@ public class AdamAddressesParam implements java.io.Serializable {
private String name; private String name;
@ApiModelProperty(position = 12, required = true, value = "手机号[11]", example = "13111111111") @ApiModelProperty(position = 12, required = true, value = "手机号[11]", example = "13111111111")
@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@NotBlank(message = "手机号不能为空")
private String phone; private String phone;
@ApiModelProperty(position = 13, required = true, value = "省份[30]", example = "北京") @ApiModelProperty(position = 13, required = true, value = "省份[30]", example = "北京")
@Pattern(regexp = LnsRegex.Valid.CN_PCD, message = "省份必须为2~30位汉字") @Pattern(regexp = LnsRegex.Valid.CN_PCD, message = "省份必须为2~30位汉字")
@NotBlank(message = "省份不能为空")
private String province; private String province;
@ApiModelProperty(position = 14, required = true, value = "城市[30]", example = "北京城区") @ApiModelProperty(position = 14, required = true, value = "城市[30]", example = "北京城区")
@Pattern(regexp = LnsRegex.Valid.CN_PCD, message = "城市必须为2~30位汉字") @Pattern(regexp = LnsRegex.Valid.CN_PCD, message = "城市必须为2~30位汉字")
@NotBlank(message = "城市不能为空")
private String city; private String city;
@ApiModelProperty(position = 15, required = true, value = "区县[30]", example = "朝阳区") @ApiModelProperty(position = 15, required = true, value = "区县[30]", example = "朝阳区")
@Pattern(regexp = LnsRegex.Valid.CN_PCD, message = "区县必须为2~30位汉字") @Pattern(regexp = LnsRegex.Valid.CN_PCD, message = "区县必须为2~30位汉字")
@NotBlank(message = "区县不能为空")
private String county; private String county;
@ApiModelProperty(position = 16, required = true, value = "详细地址[100]", example = "广渠路1号创1958园区") @ApiModelProperty(position = 16, required = true, value = "详细地址[100]", example = "广渠路1号创1958园区")
@Size(max = 100, message = "已超出详细地址长度限制") @Size(max = 100, message = "已超出详细地址长度限制")
......
...@@ -18,6 +18,7 @@ public class AdamEntersParam implements java.io.Serializable { ...@@ -18,6 +18,7 @@ public class AdamEntersParam implements java.io.Serializable {
private String name; private String name;
@ApiModelProperty(position = 12, required = true, value = "入场人手机号[11]", example = "13100000000") @ApiModelProperty(position = 12, required = true, value = "入场人手机号[11]", example = "13100000000")
@Pattern(regexp = "\\d{11}", message = "手机号格式有误") @Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@NotBlank(message = "手机号不能为空")
private String mobile; private String mobile;
@ApiModelProperty(position = 13, required = true, value = "证件类型:1-大陆身份证,2-港澳通行证,3-台胞证,4-护照,5-军官证", allowableValues = "1,2,3,4,5") @ApiModelProperty(position = 13, required = true, value = "证件类型:1-大陆身份证,2-港澳通行证,3-台胞证,4-护照,5-军官证", allowableValues = "1,2,3,4,5")
@NotNull(message = "证件类型不能位空") @Min(value = 1, message = "证件类型无效") @Max(value = 5, message = "证件类型无效") @NotNull(message = "证件类型不能位空") @Min(value = 1, message = "证件类型无效") @Max(value = 5, message = "证件类型无效")
...@@ -25,5 +26,6 @@ public class AdamEntersParam implements java.io.Serializable { ...@@ -25,5 +26,6 @@ public class AdamEntersParam implements java.io.Serializable {
@ApiModelProperty(position = 14, required = true, value = "入场人证件号[30]", example = "110101110001010111") @ApiModelProperty(position = 14, required = true, value = "入场人证件号[30]", example = "110101110001010111")
@Pattern(regexp = LnsRegex.Valid.LETTER_NUMBER, message = "证件号格式有误") @Pattern(regexp = LnsRegex.Valid.LETTER_NUMBER, message = "证件号格式有误")
@Size(min = 1, max = 30, message = "证件号长度限制1-30位") @Size(min = 1, max = 30, message = "证件号长度限制1-30位")
@NotBlank(message = "证件号不能为空")
private String idCard; private String idCard;
} }
...@@ -34,11 +34,11 @@ public class AdamMemberOrderCallbackParam implements Serializable, Cloneable { ...@@ -34,11 +34,11 @@ public class AdamMemberOrderCallbackParam implements Serializable, Cloneable {
this.setStatus(Integer.valueOf(servletRequest.getParameter("status"))); this.setStatus(Integer.valueOf(servletRequest.getParameter("status")));
this.setType(servletRequest.getParameter("type")); this.setType(servletRequest.getParameter("type"));
this.setCode(servletRequest.getParameter("code")); this.setCode(servletRequest.getParameter("code"));
this.setOrderCode(servletRequest.getParameter("order_code")); this.setOrderCode(servletRequest.getParameter("orderCode"));
this.setPrice(BigDecimal.valueOf(Double.parseDouble(servletRequest.getParameter("price")))); this.setPrice(BigDecimal.valueOf(Double.parseDouble(servletRequest.getParameter("price"))));
this.setPaymentType(servletRequest.getParameter("payment_type")); this.setPaymentType(servletRequest.getParameter("paymentType"));
this.setPaymentAt(servletRequest.getParameter("payment_at")); this.setPaymentAt(servletRequest.getParameter("paymentAt"));
this.setPaymentId(servletRequest.getParameter("payment_id")); this.setPaymentId(servletRequest.getParameter("paymentId"));
return this; return this;
} }
} }
...@@ -13,13 +13,15 @@ import java.io.Serializable; ...@@ -13,13 +13,15 @@ import java.io.Serializable;
public class AdamMemberOrderCodeParam implements Serializable { public class AdamMemberOrderCodeParam implements Serializable {
private static final long serialVersionUID = 2500742355642406263L; private static final long serialVersionUID = 2500742355642406263L;
@ApiModelProperty(position = 10, required = true, value = "类型:2-会员码,3-礼包码", example = "3") @ApiModelProperty(position = 10, required = true, value = "类型:2-会员码,3-礼包码", example = "3")
@Pattern(regexp = "^[2-3]$", message = "类型无效") @Min(value = 2, message = "类型无效")
@Max(value = 3, message = "类型无效")
private Integer mode; private Integer mode;
@ApiModelProperty(position = 11, required = true, value = "兑换码") @ApiModelProperty(position = 11, required = true, value = "兑换码")
@NotBlank(message = "兑换码不能为空") @NotBlank(message = "兑换码不能为空")
private String memberCode; private String memberCode;
@ApiModelProperty(position = 12, required = true, value = "生日", example = "2021-05-27") @ApiModelProperty(position = 12, required = true, value = "生日", example = "2021-05-27")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday; private String birthday;
@ApiModelProperty(position = 12, value = "支付终端[app,wap,js,applet]", example = "js") @ApiModelProperty(position = 12, value = "支付终端[app,wap,js,applet]", example = "js")
private String deviceFrom; private String deviceFrom;
......
...@@ -20,7 +20,8 @@ public class AdamMemberOrderParam implements Serializable { ...@@ -20,7 +20,8 @@ public class AdamMemberOrderParam implements Serializable {
@NotBlank(message = "会员价格ID不能为空") @NotBlank(message = "会员价格ID不能为空")
private String memberPriceId; private String memberPriceId;
@ApiModelProperty(position = 12, required = true, value = "类型:0-购买会员,1-购买会员码", allowableValues = "0,1") @ApiModelProperty(position = 12, required = true, value = "类型:0-购买会员,1-购买会员码", allowableValues = "0,1")
@Pattern(regexp = "^[0-1]$", message = "类型无效") @Min(value = 0, message = "类型无效")
@Max(value = 1, message = "类型无效")
private Integer mode; private Integer mode;
@ApiModelProperty(position = 13, required = true, value = "应付金额", example = "0.01") @ApiModelProperty(position = 13, required = true, value = "应付金额", example = "0.01")
@DecimalMin(value = "0.01", message = "应付金额有误") @DecimalMin(value = "0.01", message = "应付金额有误")
...@@ -30,12 +31,15 @@ public class AdamMemberOrderParam implements Serializable { ...@@ -30,12 +31,15 @@ public class AdamMemberOrderParam implements Serializable {
private BigDecimal pricePaid; private BigDecimal pricePaid;
@ApiModelProperty(position = 15, required = true, value = "用户生日", example = "2021-05-27") @ApiModelProperty(position = 15, required = true, value = "用户生日", example = "2021-05-27")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday; private String birthday;
@ApiModelProperty(position = 16, required = true, value = "支付终端", allowableValues = "app,wap,js,applet") @ApiModelProperty(position = 16, required = true, value = "支付终端", allowableValues = "app,wap,js,applet")
@Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY_TERMINAL, message = "支付终端类型无效") @Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY_TERMINAL, message = "支付终端类型无效")
@NotBlank(message = "支付终端不能为空")
private String deviceFrom; private String deviceFrom;
@ApiModelProperty(position = 17, required = true, value = "支付方式", allowableValues = "alipay,wepay") @ApiModelProperty(position = 17, required = true, value = "支付方式", allowableValues = "alipay,wepay")
@Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY, message = "支付方式无效") @Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_PAY, message = "支付方式无效")
@NotBlank(message = "支付方式不能为空")
private String payType; private String payType;
@ApiModelProperty(position = 18, required = false, value = "App内Apple支付必传") @ApiModelProperty(position = 18, required = false, value = "App内Apple支付必传")
private String productId; private String productId;
......
...@@ -22,7 +22,8 @@ public class AdamMemberPriceParam implements Serializable { ...@@ -22,7 +22,8 @@ public class AdamMemberPriceParam implements Serializable {
@NotBlank(message = "会员类型ID不能为空") @NotBlank(message = "会员类型ID不能为空")
private String memberId; private String memberId;
@ApiModelProperty(position = 3, value = "状态:0-不可用,1-上线中,2-已下线", allowableValues = "0,1,2") @ApiModelProperty(position = 3, value = "状态:0-不可用,1-上线中,2-已下线", allowableValues = "0,1,2")
@Pattern(regexp = "^[0-2]$", message = "状态无效") @Min(value = 0, message = "状态无效")
@Max(value = 2, message = "状态无效")
private Integer state; private Integer state;
@ApiModelProperty(position = 4, value = "会员价格包名称", example = "年卡") @ApiModelProperty(position = 4, value = "会员价格包名称", example = "年卡")
@Size(min = 1, max = 30, message = "会员价格包名称长度限制1-30位") @Size(min = 1, max = 30, message = "会员价格包名称长度限制1-30位")
......
...@@ -24,6 +24,7 @@ public class AdamThirdPartParam implements Serializable { ...@@ -24,6 +24,7 @@ public class AdamThirdPartParam implements Serializable {
private String avatar; private String avatar;
@ApiModelProperty(position = 14, required = true, value = "平台类型[255]", allowableValues = "WEIBO,WECHAT,QQ") @ApiModelProperty(position = 14, required = true, value = "平台类型[255]", allowableValues = "WEIBO,WECHAT,QQ")
@Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_ULGOIN, message = "平台类型无效") @Pattern(regexp = LnsRegex.Valid.TRIPLE_PF_FOR_ULGOIN, message = "平台类型无效")
@NotBlank(message = "平台类型不能为空")
private String platform; private String platform;
@ApiModelProperty(position = 15, required = false, value = "手机号[新账号时必传]") @ApiModelProperty(position = 15, required = false, value = "手机号[新账号时必传]")
private String mobile; private String mobile;
......
...@@ -31,6 +31,7 @@ public class AdamUserInfoParam implements java.io.Serializable { ...@@ -31,6 +31,7 @@ public class AdamUserInfoParam implements java.io.Serializable {
private AdamTagVo sex; private AdamTagVo sex;
@ApiModelProperty(position = 15, required = true, value = "生日[YYYY-MM-DD]", example = "2021-05-17") @ApiModelProperty(position = 15, required = true, value = "生日[YYYY-MM-DD]", example = "2021-05-17")
@Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误") @Pattern(regexp = LnsRegex.Valid.DATETIME_YMD, message = "生日格式有误")
@NotBlank(message = "生日不能为空")
private String birthday; private String birthday;
@ApiModelProperty(position = 16, required = true, value = "常住地/区域[100]", example = "北京 北京市 朝阳区") @ApiModelProperty(position = 16, required = true, value = "常住地/区域[100]", example = "北京 北京市 朝阳区")
@NotBlank(message = "常住地不能为空") @NotBlank(message = "常住地不能为空")
......
...@@ -272,4 +272,11 @@ public class DragonConstant { ...@@ -272,4 +272,11 @@ public class DragonConstant {
this.message = message; this.message = message;
} }
} }
public static void main(String[] args) {
Integer aaa = 1;
if(aaa.toString().equals(DragonConstant.PayStatusEnum.STATUS_PAID.getCode())){
System.out.println("支付成功");
}
}
} }
package com.liquidnet.service.dragon.dto;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: DragonPayAlipayAppReqDto
* @Package com.liquidnet.service.dragon.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/9 11:00
*/
public class DragonPayAlipayAppReqDto {
}
package com.liquidnet.service.dragon.dto;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: DragonPayAlipayAppReqDto
* @Package com.liquidnet.service.dragon.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/9 11:00
*/
public class DragonPayAlipayAppRespDto {
}
...@@ -2,6 +2,8 @@ package com.liquidnet.service.dragon.dto; ...@@ -2,6 +2,8 @@ package com.liquidnet.service.dragon.dto;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* @author AnJiabin <anjiabin@zhengzai.tv> * @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0 * @version V1.0
...@@ -13,9 +15,11 @@ import lombok.Data; ...@@ -13,9 +15,11 @@ import lombok.Data;
*/ */
@Data @Data
public class DragonPayOrderQueryRespDto { public class DragonPayOrderQueryRespDto {
private Integer status;
private String type;
private String code; private String code;
private String paymentId;
private String orderCode; private String orderCode;
private BigDecimal price;
private String status; private String paymentType;
} }
...@@ -40,15 +40,15 @@ liquidnet: ...@@ -40,15 +40,15 @@ liquidnet:
service: service:
adam: adam:
url-pay: url-pay:
pay: http://devpay.zhengzai.tv pay: http://devdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://devpay.zhengzai.tv/order/verify check: http://devdragon.zhengzai.tv/dragon/pay/checkOrder
callback: http://devadam.zhengzai.tv/adam/member/order/callback callback: http://devadam.zhengzai.tv/adam/member/order/callback
url-service: url-service:
url: http://devservice.zhengzai.tv url: http://devservice.zhengzai.tv
kylin: kylin:
url-pay: url-pay:
pay: http://devpay.zhengzai.tv/ pay: http://devdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://devpay.zhengzai.tv/order/verify check: http://devdragon.zhengzai.tv/dragon/pay/checkOrder
localUrl: http://devkylin.zhengzai.tv/kylin/order/syncOrder localUrl: http://devkylin.zhengzai.tv/kylin/order/syncOrder
url-service: url-service:
url: http://devservice.zhengzai.tv/ url: http://devservice.zhengzai.tv/
......
...@@ -40,15 +40,15 @@ liquidnet: ...@@ -40,15 +40,15 @@ liquidnet:
service: service:
adam: adam:
url-pay: url-pay:
pay: http://testpay.zhengzai.tv pay: http://devdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://testpay.zhengzai.tv/order/verify check: http://devdragon.zhengzai.tv/dragon/pay/checkOrder
callback: http://testadam.zhengzai.tv/adam/member/order/callback callback: http://testadam.zhengzai.tv/adam/member/order/callback
url-service: url-service:
url: http://testservice.zhengzai.tv url: http://testservice.zhengzai.tv
kylin: kylin:
url-pay: url-pay:
pay: http://testpay.zhengzai.tv/ pay: http://devdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://testpay.zhengzai.tv/order/verify check: http://devdragon.zhengzai.tv/dragon/pay/checkOrder
localUrl: http://testkylin.zhengzai.tv/kylin/order/syncOrder localUrl: http://testkylin.zhengzai.tv/kylin/order/syncOrder
url-service: url-service:
url: http://testservice.zhengzai.tv/ url: http://testservice.zhengzai.tv/
......
...@@ -11,7 +11,7 @@ liquidnet: ...@@ -11,7 +11,7 @@ liquidnet:
name: service-adam name: service-adam
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
file-max-size: 200MB file-max-size: 200MB
level: info level: debug
rabbitmq: rabbitmq:
adam: adam:
connection-timeout: 5000 connection-timeout: 5000
......
...@@ -341,7 +341,7 @@ public class AdamLoginController { ...@@ -341,7 +341,7 @@ public class AdamLoginController {
.replace("SECRET", AdamWechatConst.zhengzaiAppletSecret).replace("JSCODE", jsCode); .replace("SECRET", AdamWechatConst.zhengzaiAppletSecret).replace("JSCODE", jsCode);
String respJStr = HttpUtil.get(url, null); String respJStr = HttpUtil.get(url, null);
JsonNode respJNode = JsonUtils.fromJson(respJStr, JsonNode.class); JsonNode respJNode = JsonUtils.fromJson(respJStr, JsonNode.class);
if (null == respJNode || !respJNode.get("errcode").textValue().equalsIgnoreCase("0")) { if (null == respJNode || !"0".equalsIgnoreCase(respJNode.get("errcode").asText())) {
log.warn("WX.API调用失败[{}]", respJStr); log.warn("WX.API调用失败[{}]", respJStr);
return ResponseDto.success(null); return ResponseDto.success(null);
} }
...@@ -362,7 +362,7 @@ public class AdamLoginController { ...@@ -362,7 +362,7 @@ public class AdamLoginController {
.replace("SECRET", AdamWechatConst.zhengzaiServiceSecret).replace("CODE", code); .replace("SECRET", AdamWechatConst.zhengzaiServiceSecret).replace("CODE", code);
String respJStr = HttpUtil.get(url, null); String respJStr = HttpUtil.get(url, null);
JsonNode respJNode = JsonUtils.fromJson(respJStr, JsonNode.class); JsonNode respJNode = JsonUtils.fromJson(respJStr, JsonNode.class);
if (null == respJNode || !respJNode.get("errcode").textValue().equalsIgnoreCase("0")) { if (null == respJNode || !"0".equalsIgnoreCase(respJNode.get("errcode").asText())) {
log.warn("WX.API调用失败[{}]", respJStr); log.warn("WX.API调用失败[{}]", respJStr);
return ResponseDto.success(null); return ResponseDto.success(null);
} }
......
...@@ -273,15 +273,20 @@ public class AdamMemberOrderController { ...@@ -273,15 +273,20 @@ public class AdamMemberOrderController {
if (memberOrderInfo.getMode() <= 1) { if (memberOrderInfo.getMode() <= 1) {
try { try {
// 支付中心返回说明:已支付订单status==1,未支付订单status==0 // 支付中心返回说明:已支付订单status==1,未支付订单status==0
String rst = HttpUtil.get(env.getProperty("liquidnet.url-pay.check") + "?code=" + memberOrderInfo.getPayNo(), null); String respStr = HttpUtil.get(env.getProperty("liquidnet.url-pay.check") + "?code=" + memberOrderInfo.getPayNo(), null);
JsonNode rstJNode = JsonUtils.fromJson(rst, JsonNode.class); JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
int status = Integer.parseInt(rstJNode.get("status").asText("0")); if (null == respJNode || !"0".equals(respJNode.get("code").asText())) {
log.warn("购买会员:订单状态查询失败[orderNo:{},respStr:{}]", orderNo, respStr);
return ResponseDto.failure(ErrorMapping.get("10212"));
}
int status = respJNode.get("data").get("status").asInt();
return ResponseDto.success(status == 1 ? status : 0); return ResponseDto.success(status == 1 ? status : 0);
} catch (Exception e) { } catch (Exception e) {
log.error("支付中心:会员订单状态查询失败:{}", orderNo, e); log.error("购买会员:订单状态查询失败:{}", orderNo, e);
return ResponseDto.failure(ErrorMapping.get("10212")); return ResponseDto.failure(ErrorMapping.get("10212"));
} }
} }
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
...@@ -73,9 +74,11 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -73,9 +74,11 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
payParam.add("price", String.valueOf(memberPriceVo.getPrice())); payParam.add("price", String.valueOf(memberPriceVo.getPrice()));
payParam.add("name", memberVo.getName()); payParam.add("name", memberVo.getName());
payParam.add("detail", "正在现场:购买会员".concat(param.getMode() == 0 ? "" : "码")); payParam.add("detail", "正在现场:购买会员".concat(param.getMode() == 0 ? "" : "码"));
payParam.add("order_code", orderNo); payParam.add("orderCode", orderNo);
payParam.add("client_ip", clientIp); payParam.add("clientIp", clientIp);
payParam.add("notify_url", env.getProperty("liquidnet.url-pay.callback")); payParam.add("notifyUrl", env.getProperty("liquidnet.url-pay.callback"));
payParam.add("deviceFrom", param.getDeviceFrom());
payParam.add("payType", param.getPayType());
String payUri = "/" + param.getDeviceFrom() + "/" + param.getPayType(); String payUri = "/" + param.getDeviceFrom() + "/" + param.getPayType();
switch (payUri) {// applet/wepay | js/wepay | wap/alipay | wap/wepay | app/iappay | app/wepay switch (payUri) {// applet/wepay | js/wepay | wap/alipay | wap/wepay | app/iappay | app/wepay
...@@ -89,29 +92,29 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -89,29 +92,29 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
if (StringUtils.isEmpty(param.getOpenId())) { if (StringUtils.isEmpty(param.getOpenId())) {
return ResponseDto.failure(ErrorMapping.get("10204")); return ResponseDto.failure(ErrorMapping.get("10204"));
} }
payParam.add("open_id", param.getOpenId()); payParam.add("openId", param.getOpenId());
break; break;
case "/wap/alipay": case "/wap/alipay":
if (StringUtils.isEmpty(param.getShowUrl()) || StringUtils.isEmpty(param.getReturnUrl())) { if (StringUtils.isEmpty(param.getShowUrl()) || StringUtils.isEmpty(param.getReturnUrl())) {
return ResponseDto.failure(ErrorMapping.get("10205")); return ResponseDto.failure(ErrorMapping.get("10205"));
} }
// 取消支付,点击取消支付宝回调地址 // 取消支付,点击取消支付宝回调地址
payParam.add("show_url", param.getShowUrl()); payParam.add("showUrl", param.getShowUrl());
// 支付成功,点击完成支付宝回调地址 // 支付成功,点击完成支付宝回调地址
payParam.add("return_url", param.getReturnUrl() + orderNo); payParam.add("returnUrl", param.getReturnUrl() + orderNo);
break; break;
case "/app/iappay": case "/app/iappay":
if (StringUtils.isEmpty(param.getOpenId())) { if (StringUtils.isEmpty(param.getOpenId())) {
return ResponseDto.failure(ErrorMapping.get("10206")); return ResponseDto.failure(ErrorMapping.get("10206"));
} }
// iOS App唯一标识,目前为:com.zhengzai.zhengzai-tv // iOS App唯一标识,目前为:com.zhengzai.zhengzai-tv
payParam.add("bundle_id", "com.zhengzai.zhengzai-tv"); payParam.add("bundleId", "com.zhengzai.zhengzai-tv");
// iTunes上架的商品唯一标识 // iTunes上架的商品唯一标识
payParam.add("product_id", param.getProductId()); payParam.add("productId", param.getProductId());
break; break;
} }
payParam.add("create_date", nowStr); payParam.add("createDate", nowStr);
payParam.add("expire_time", "5");// 过期时间,单位分钟,默认5 payParam.add("expireTime", "5");// 过期时间,单位分钟,默认5
// 生成订单信息 // 生成订单信息
AdamMemberOrderVo memberOrderVo = new AdamMemberOrderVo(); AdamMemberOrderVo memberOrderVo = new AdamMemberOrderVo();
...@@ -138,16 +141,21 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -138,16 +141,21 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
} }
AdamMemberOrderResult result = AdamMemberOrderResult.getNew(); AdamMemberOrderResult result = AdamMemberOrderResult.getNew();
try { try {
String url = env.getProperty("liquidnet.url-pay.pay") + payUri; // String url = env.getProperty("liquidnet.url-pay.pay") + payUri;
String url = env.getProperty("liquidnet.url-pay.pay");
log.debug("HttpUtil.resquest.url:{},param:{}", url, JsonUtils.toJson(payParam)); log.debug("HttpUtil.resquest.url:{},param:{}", url, JsonUtils.toJson(payParam));
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
String json = HttpUtil.post(url, payParam); String respStr = HttpUtil.post(url, payParam);
log.debug("#PHP.API耗时:{}ms", System.currentTimeMillis() - s); log.debug("#PHP.API耗时:{}ms", System.currentTimeMillis() - s);
log.debug("HttpUtil.response.body:{}", json); log.debug("HttpUtil.response.body:{}", respStr);
Map payResult = JsonUtils.fromJson(json, Map.class); JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
if (null == respJNode || !"0".equals(respJNode.get("code").asText())) {
result.setCode((String) payResult.get("code")); log.warn("###购买会员调用支付失败[respStr:{}]", respStr);
result.setPayData(payResult.get("pay_data")); return ResponseDto.failure(ErrorMapping.get("10210"));
}
JsonNode respDataJNode = respJNode.get("data");
result.setCode(respDataJNode.get("code").asText());
result.setPayData(respDataJNode.get("payData"));
memberOrderVo.setPayNo(result.getCode()); memberOrderVo.setPayNo(result.getCode());
} catch (Exception e) { } catch (Exception e) {
......
...@@ -119,9 +119,6 @@ public class AlipayBiz extends DragonPayBiz { ...@@ -119,9 +119,6 @@ public class AlipayBiz extends DragonPayBiz {
*/ */
public static Map<String, Object> tradeQuery(String outTradeNo) { public static Map<String, Object> tradeQuery(String outTradeNo) {
log.info("======>支付宝交易查询"); log.info("======>支付宝交易查询");
String charset = "UTF-8";
String format = "json";
String signType = "RSA2";
AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient(); AlipayClient alipayClient = PayAlipayUtils.getInstance().getHttpClient();
SortedMap<String, Object> bizContentMap = new TreeMap<>(); SortedMap<String, Object> bizContentMap = new TreeMap<>();
......
...@@ -140,8 +140,13 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy { ...@@ -140,8 +140,13 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
@Override @Override
public DragonPayOrderQueryRespDto checkOrderStatus(String code) { public DragonPayOrderQueryRespDto checkOrderStatus(String code) {
Map<String, Object> result = alipayBiz.tradeQuery(code); Map<String, Object> resultMap = alipayBiz.tradeQuery(code);
DragonPayOrderQueryRespDto respDto = new DragonPayOrderQueryRespDto(); DragonPayOrderQueryRespDto respDto = new DragonPayOrderQueryRespDto();
if ("10000".equals(resultMap.get("code"))) {
}else{
}
return respDto; return respDto;
} }
......
...@@ -14,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Set;
import java.util.SortedMap; import java.util.SortedMap;
import java.util.TreeMap; import java.util.TreeMap;
...@@ -52,15 +51,11 @@ public class WepayBiz extends DragonPayBiz{ ...@@ -52,15 +51,11 @@ public class WepayBiz extends DragonPayBiz{
String sign = PayWepayUtils.getInstance().createSign(paramMap); String sign = PayWepayUtils.getInstance().createSign(paramMap);
paramMap.put("sign", sign); paramMap.put("sign", sign);
Set<String> ks = paramMap.keySet();
String data = PayWepayUtils.getInstance().getRequestXml(paramMap); String data = PayWepayUtils.getInstance().getRequestXml(paramMap);
try{ try{
HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/pay/orderquery"); HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/pay/orderquery");
httpost.setEntity(new StringEntity(data, "UTF-8")); httpost.setEntity(new StringEntity(data, "UTF-8"));
CloseableHttpResponse response = null; CloseableHttpResponse response = PayWepayUtils.getInstance().getHttpClient().execute(httpost);
response = PayWepayUtils.getInstance().getHttpClient().execute(httpost);
HttpEntity entity = response.getEntity(); HttpEntity entity = response.getEntity();
//接受到返回信息 //接受到返回信息
String xmlStr = EntityUtils.toString(response.getEntity(), "UTF-8"); String xmlStr = EntityUtils.toString(response.getEntity(), "UTF-8");
......
...@@ -158,8 +158,12 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy { ...@@ -158,8 +158,12 @@ public abstract class AbstractWepayStrategy implements IWepayStrategy {
WepayOrderQueryRespDto result = wepayBiz.tradeQuery(code,this.getAppid()); WepayOrderQueryRespDto result = wepayBiz.tradeQuery(code,this.getAppid());
DragonPayOrderQueryRespDto respDto = new DragonPayOrderQueryRespDto(); DragonPayOrderQueryRespDto respDto = new DragonPayOrderQueryRespDto();
respDto.setCode(code); respDto.setCode(code);
respDto.setOrderCode(""); // respDto.setOrderCode("");
respDto.setStatus(""); // respDto.setStatus("");
// respDto.setType();
// respDto.setPaymentId();
// respDto.setPrice();
// respDto.setPaymentType();
return respDto; return respDto;
} }
......
...@@ -66,7 +66,7 @@ public class PayController { ...@@ -66,7 +66,7 @@ public class PayController {
@RequestParam(value = "notifyUrl") @NotNull(message = "通知Url不能为空") String notifyUrl, @RequestParam(value = "notifyUrl") @NotNull(message = "通知Url不能为空") String notifyUrl,
@RequestParam(value = "returnUrl",required = false) String returnUrl, @RequestParam(value = "returnUrl",required = false) String returnUrl,
// @RequestParam(value = "quitUrl",required = false) String quitUrl, // @RequestParam(value = "quitUrl",required = false) String quitUrl,
// @RequestParam(value = "showUrl",required = false) String showUrl, @RequestParam(value = "showUrl",required = false) String showUrl,
// @RequestParam(value = "code",required = false) String code, // @RequestParam(value = "code",required = false) String code,
@RequestParam(value = "createDate",required = true) String createDate, @RequestParam(value = "createDate",required = true) String createDate,
@RequestParam(value = "expireTime",required = true) String expireTime){ @RequestParam(value = "expireTime",required = true) String expireTime){
...@@ -91,14 +91,14 @@ public class PayController { ...@@ -91,14 +91,14 @@ public class PayController {
dragonPayBaseReqDto.setNotifyUrl(notifyUrl); dragonPayBaseReqDto.setNotifyUrl(notifyUrl);
dragonPayBaseReqDto.setReturnUrl(returnUrl); dragonPayBaseReqDto.setReturnUrl(returnUrl);
// dragonPayBaseReqDto.setQuitUrl(quitUrl); // dragonPayBaseReqDto.setQuitUrl(quitUrl);
// dragonPayBaseReqDto.setShowUrl(showUrl); dragonPayBaseReqDto.setShowUrl(showUrl);
// dragonPayBaseReqDto.setCode(code); // dragonPayBaseReqDto.setCode(code);
dragonPayBaseReqDto.setCreateDate(createDate); dragonPayBaseReqDto.setCreateDate(createDate);
dragonPayBaseReqDto.setExpireTime(expireTime); dragonPayBaseReqDto.setExpireTime(expireTime);
return dragonOrdersService.dragonPay(dragonPayBaseReqDto); return dragonOrdersService.dragonPay(dragonPayBaseReqDto);
} }
@PostMapping("/checkOrder") @GetMapping("/checkOrder")
@ApiOperation("订单查询") @ApiOperation("订单查询")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({ @ApiImplicitParams({
......
...@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -68,7 +68,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime}, new Object[]{code, refundCode, orderRefundCode, price, reason, notifyUrl, paymentType, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode() DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
); );
dataUtils.setRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + code, notifyUrl); dataUtils.setRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + orderRefundCode, notifyUrl);
DragonRefundChannelDto dto = null; DragonRefundChannelDto dto = null;
String localWePayCallBackUrl = url + "/refund/callBack/wepay"; String localWePayCallBackUrl = url + "/refund/callBack/wepay";
if (insertResult) { if (insertResult) {
......
...@@ -51,12 +51,26 @@ public class DragonOrdersServiceImpl implements IDragonOrdersService { ...@@ -51,12 +51,26 @@ public class DragonOrdersServiceImpl implements IDragonOrdersService {
if(StringUtil.isEmpty(ordersDto)){ if(StringUtil.isEmpty(ordersDto)){
throw new LiquidnetServiceException(DragonErrorCodeEnum.TRADE_ERROR_NOT_EXISTS.getCode(),DragonErrorCodeEnum.TRADE_ERROR_NOT_EXISTS.getMessage()); throw new LiquidnetServiceException(DragonErrorCodeEnum.TRADE_ERROR_NOT_EXISTS.getCode(),DragonErrorCodeEnum.TRADE_ERROR_NOT_EXISTS.getMessage());
} }
//如果已支付 直接返回结果
if(!ordersDto.getStatus().toString().equals(DragonConstant.PayStatusEnum.STATUS_UNPAID.getCode())){
DragonPayOrderQueryRespDto queryRespDto = new DragonPayOrderQueryRespDto();
queryRespDto.setStatus(ordersDto.getStatus());
queryRespDto.setType(ordersDto.getType());
queryRespDto.setCode(ordersDto.getCode());
queryRespDto.setPaymentId(ordersDto.getPaymentId());
queryRespDto.setOrderCode(ordersDto.getOrderCode());
queryRespDto.setPrice(ordersDto.getPrice());
queryRespDto.setPaymentType(ordersDto.getPaymentType());
return queryRespDto;
}
//如果未支付进行三方查询
String payType = DragonConstant.PayTypeEnum.getEnumByCode(ordersDto.getPaymentType()).getPayType(); String payType = DragonConstant.PayTypeEnum.getEnumByCode(ordersDto.getPaymentType()).getPayType();
return payChannelStrategyContext.getStrategy(payType).checkOrderStatus(code); return payChannelStrategyContext.getStrategy(payType).checkOrderStatus(code);
} }
@Override @Override
public DragonPayOrderQueryRespDto checkOrderStatusByOrderCode(String orderCode) { public DragonPayOrderQueryRespDto checkOrderStatusByOrderCode(String orderCode) {
return null; String code = dataUtils.getCodeByOrderCode(orderCode);
return this.checkOrderStatusByCode(code);
} }
} }
...@@ -11,6 +11,16 @@ public class DataUtils { ...@@ -11,6 +11,16 @@ public class DataUtils {
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
/**
* 根据订单编号获取支付code
* @param orderCode
* @return
*/
public String getCodeByOrderCode(String orderCode) {
//获取支付订单号
return (String) redisUtil.get(DragonConstant.REDIS_KET_PAY_ORDERCODE + orderCode);
}
public void createPayOrder(String orderCode, String code, DragonOrdersDto ordersDto) { public void createPayOrder(String orderCode, String code, DragonOrdersDto ordersDto) {
if (!redisUtil.hasKey(DragonConstant.REDIS_KET_PAY_ORDERCODE + orderCode)) { if (!redisUtil.hasKey(DragonConstant.REDIS_KET_PAY_ORDERCODE + orderCode)) {
redisUtil.set(DragonConstant.REDIS_KET_PAY_ORDERCODE + orderCode, code); redisUtil.set(DragonConstant.REDIS_KET_PAY_ORDERCODE + orderCode, code);
......
...@@ -8,7 +8,7 @@ dragon_order_refund_call_back.update=UPDATE `dragon_order_refunds` SET updated_a ...@@ -8,7 +8,7 @@ dragon_order_refund_call_back.update=UPDATE `dragon_order_refunds` SET updated_a
dragon_order_refund_log.insert=INSERT INTO `dragon_order_refund_logs`(`order_refund_id` ,`refund_type` ,`content`,`created_at`,`updated_at`)VALUES(?,?,?,?,?); dragon_order_refund_log.insert=INSERT INTO `dragon_order_refund_logs`(`order_refund_id` ,`refund_type` ,`content`,`created_at`,`updated_at`)VALUES(?,?,?,?,?);
dragon_orders.insert=INSERT INTO DRAGON_ORDERS (STATUS, CODE, TYPE, PRICE, NAME, DETAIL, ORDER_CODE, CLIENT_IP, NOTIFY_URL, PAYMENT_TYPE,PAYMENT_ID, PAYMENT_AT, FINISHED_AT, CREATED_AT, UPDATED_AT, DELETED_AT)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) dragon_orders.insert=INSERT INTO DRAGON_ORDERS(ORDER_ID, STATUS, CODE, TYPE, PRICE, NAME, DETAIL, ORDER_CODE, CLIENT_IP, NOTIFY_URL, PAYMENT_TYPE, PAYMENT_ID, PAYMENT_AT, FINISHED_AT, CREATED_AT, UPDATED_AT, DELETED_AT) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
dragon_order_logs.insert=INSERT INTO DRAGON_ORDER_LOGS (ORDER_ID, PAYMENT_TYPE, CONTENT, CREATED_AT, UPDATED_AT, DELETED_AT) VALUES(?,?,?,?,?,?,?) dragon_order_logs.insert=INSERT INTO DRAGON_ORDER_LOGS(ORDER_ID, PAYMENT_TYPE, CONTENT, CREATED_AT, UPDATED_AT, DELETED_AT) VALUES(?,?,?,?,?,?)
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