Просмотр исходного кода

[支付][修改]:支付结果来源添加

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
d4101764c3
4 измененных файлов: 51 добавлений и 19 удалений
  1. +10
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java
  2. +35
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumPayFrom.java
  3. +2
    -10
      mallinkService/src/main/java/com/iformall/service/WxPayOrderService.java
  4. +4
    -8
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java

+ 10
- 1
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){


+ 35
- 0
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;
}
}

+ 2
- 10
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<String, String> paramMap, EnumPayWay payWay);

/**
* 保存或更新实体
*


+ 4
- 8
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<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());
// 判断支付状态


Загрузка…
Отмена
Сохранить