| @@ -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){ | |||
| @@ -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; | |||
| } | |||
| } | |||
| @@ -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<String, String> paramMap, EnumPayWay payWay); | |||
| /** | |||
| * 保存或更新实体 | |||
| * | |||
| @@ -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<String, String> 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()); | |||
| // 判断支付状态 | |||