From d4101764c3ccf466aad3ec94e6e8f15b336699c3 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Tue, 12 Mar 2019 10:43:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=94=AF=E4=BB=98][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E7=BB=93=E6=9E=9C=E6=9D=A5=E6=BA=90=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxPayOrder.java | 11 +++++- .../java/com/iformall/enums/EnumPayFrom.java | 35 +++++++++++++++++++ .../iformall/service/WxPayOrderService.java | 12 ++----- .../service/impl/WxPayOrderServiceImpl.java | 12 +++---- 4 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumPayFrom.java diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java index 60b2f5594..b7d07aba4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -98,6 +98,8 @@ public class WxPayOrder implements Serializable { /**支付失败原因**/ @io.swagger.annotations.ApiModelProperty(value="支付失败原因",name="failReason") private String failReason; + @io.swagger.annotations.ApiModelProperty(value="支付后结果来源(0:callback, 1:query)",name="payEndFrom") + private Integer payEndFrom; public String getTenantId() { return tenantId; } @@ -227,9 +229,15 @@ public class WxPayOrder implements Serializable { failReason = _failReason; } + public Integer getPayEndFrom() { + return payEndFrom; + } + public void setPayEndFrom(Integer payEndFrom) { + this.payEndFrom = payEndFrom; + } - public static enum Field + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") ,TenantId_ASC("`tenant_id` ASC"),TenantId_DESC("`tenant_id` DESC") @@ -251,6 +259,7 @@ public class WxPayOrder implements Serializable { ,Share_ASC("`share` ASC"),Share_DESC("`share` DESC") ,ShareAmount_ASC("`share_amount` ASC"),ShareAmount_DESC("`share_amount` DESC") ,FailReason_ASC("`fail_reason` ASC"),FailReason_DESC("`fail_reason` DESC") + ,PayEndFrom_ASC("`pay_end_from` ASC"),PayEndFrom_DESC("`pay_end_from` DESC") ; private String value; Field(String value){ diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumPayFrom.java b/mallinkService/src/main/java/com/iformall/enums/EnumPayFrom.java new file mode 100644 index 000000000..c81002007 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumPayFrom.java @@ -0,0 +1,35 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumPayFrom { + + CALLBACK(0, "callback"), + QUERY(1, "查询"); + + public static EnumPayFrom getEnum(Integer code) { + for (EnumPayFrom value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumPayFrom(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java index b90d6f058..1f341f0e1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java @@ -63,8 +63,9 @@ public interface WxPayOrderService { * * @param record * @param transactionId + * @param from */ - void handleOrderPaySuccess(WxPayOrder record, String transactionId); + void handleOrderPaySuccess(WxPayOrder record, String transactionId, Integer from); /** * 刷卡支付成功处理 @@ -81,15 +82,6 @@ public interface WxPayOrderService { */ void handlePayOrderStatusUpdate(WxPayOrder record, int status); - /** - * 页面回调 - * - * @param paramMap 页面通知参数 - * @param payWay 支付方式 - * @return - */ - void callback(Map paramMap, EnumPayWay payWay); - /** * 保存或更新实体 * diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 0caaa1b4d..d612eb3bd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -743,7 +743,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if ("MICROPAY".equals(tradeType)) { handleMicroOrderPaySuccess(record, transactionId, openId, sub_is_subscribe); } else { - handleOrderPaySuccess(record, transactionId); + handleOrderPaySuccess(record, transactionId, EnumPayFrom.QUERY.getCode()); } return new ResultData(Result.SUCCESS, "订单支付成功", returnMap); } else if ("REFUND".equals(trade_state)) { @@ -1144,9 +1144,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { timeEnd = new Date(); } payOrder.setPayTimeEnd(timeEnd); + payOrder.setPayEndFrom(EnumPayFrom.CALLBACK.getCode()); // 处理支付成功 - handleOrderPaySuccess(payOrder, paramMap.get("transaction_id")); + handleOrderPaySuccess(payOrder, paramMap.get("transaction_id"), EnumPayFrom.CALLBACK.getCode()); logger.info("notify order, wxpay checksign success, paramMap:{}, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); SortedMap resultMap = new TreeMap(); resultMap.put("return_code", "SUCCESS"); @@ -1164,14 +1165,9 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { return XmlUtil.getRequestXml(resultMap); } - @Override - public void callback(Map paramMap, EnumPayWay payWay) { - - } - @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void handleOrderPaySuccess(WxPayOrder record, String transactionId) { + public void handleOrderPaySuccess(WxPayOrder record, String transactionId, Integer from) { // from 0:callback, 1:query Date currentDate = new Date(); EnumPayStatus payStatus = EnumPayStatus.getEnum(record.getPayOrderStatus()); // 判断支付状态