|
|
@@ -14,7 +14,6 @@ import com.simple.domain.po.WxPayOrder; |
|
|
import com.simple.enums.EnumOrderStatus; |
|
|
import com.simple.enums.EnumOrderStatus; |
|
|
import com.simple.enums.EnumPayStatus; |
|
|
import com.simple.enums.EnumPayStatus; |
|
|
import com.simple.enums.EnumPayWay; |
|
|
import com.simple.enums.EnumPayWay; |
|
|
import com.simple.exception.BizMessageException; |
|
|
|
|
|
import com.simple.exception.MallinkException; |
|
|
import com.simple.exception.MallinkException; |
|
|
import com.simple.mapper.WxOrderMapper; |
|
|
import com.simple.mapper.WxOrderMapper; |
|
|
import com.simple.mapper.WxPayOrderMapper; |
|
|
import com.simple.mapper.WxPayOrderMapper; |
|
|
@@ -32,7 +31,6 @@ import org.springframework.stereotype.Service; |
|
|
import com.simple.common.IdWorker; |
|
|
import com.simple.common.IdWorker; |
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import tk.mybatis.mapper.entity.Example; |
|
|
|
|
|
|
|
|
|
|
|
@Service |
|
|
@Service |
|
|
public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
@@ -48,6 +46,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
@Autowired |
|
|
@Autowired |
|
|
WxOrderService wxOrderService; |
|
|
WxOrderService wxOrderService; |
|
|
|
|
|
|
|
|
|
|
|
String weappId = ""; |
|
|
|
|
|
String wechatMchId = ""; |
|
|
|
|
|
String partnerKey = ""; |
|
|
|
|
|
String wxpayNotifyUrl = ""; |
|
|
|
|
|
|
|
|
JSONObject errorMap = JSON.parseObject("{\"NOAUTH\":{\"detail\":\"商户无此接口权限\",\"reason\":\"商户未开通此接口权限\",\"resolution\":\"请商户前往申请此接口权限\"}," + |
|
|
JSONObject errorMap = JSON.parseObject("{\"NOAUTH\":{\"detail\":\"商户无此接口权限\",\"reason\":\"商户未开通此接口权限\",\"resolution\":\"请商户前往申请此接口权限\"}," + |
|
|
"\"NOTENOUGH\":{\"detail\":\"余额不足\",\"reason\":\"用户帐号余额不足\",\"resolution\":\"用户帐号余额不足,请用户充值或更换支付卡后再支付\"}," + |
|
|
"\"NOTENOUGH\":{\"detail\":\"余额不足\",\"reason\":\"用户帐号余额不足\",\"resolution\":\"用户帐号余额不足,请用户充值或更换支付卡后再支付\"}," + |
|
|
"\"ORDERPAID\":{\"detail\":\"商户订单已支付\",\"reason\":\"商户订单已支付,无需重复操作\",\"resolution\":\"商户订单已支付,无需更多操作\"}," + |
|
|
"\"ORDERPAID\":{\"detail\":\"商户订单已支付\",\"reason\":\"商户订单已支付,无需重复操作\",\"resolution\":\"商户订单已支付,无需更多操作\"}," + |
|
|
@@ -66,7 +69,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public ResultData createPayOrder(WxPayOrder record, EnumPayWay payWay) { |
|
|
public ResultData createPayOrder(WxPayOrder record, EnumPayWay payWay) { |
|
|
String partnerKey = null; |
|
|
|
|
|
|
|
|
final IdWorker idworker = IdWorker.get(); |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
// 1. check 订单 |
|
|
// 1. check 订单 |
|
|
WxOrder order = wxOrderMapper.selectByPrimaryKey(record.getOrderId()); |
|
|
WxOrder order = wxOrderMapper.selectByPrimaryKey(record.getOrderId()); |
|
|
@@ -80,9 +84,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
} |
|
|
} |
|
|
// TODO body |
|
|
// TODO body |
|
|
String body = ""; |
|
|
String body = ""; |
|
|
// 2. 创建支付订单 |
|
|
|
|
|
|
|
|
// 2. check 是否有支付订单 |
|
|
|
|
|
// 3. 创建支付订单 |
|
|
Date currentDate = new Date(); |
|
|
Date currentDate = new Date(); |
|
|
final IdWorker idworker = IdWorker.get(); |
|
|
|
|
|
|
|
|
|
|
|
Long id = idworker.nextId(); |
|
|
Long id = idworker.nextId(); |
|
|
record.setId(id); |
|
|
record.setId(id); |
|
|
record.setCreateTime(currentDate); |
|
|
record.setCreateTime(currentDate); |
|
|
@@ -99,18 +104,22 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
|
|
|
|
|
|
int sqlRow = wxPayOrderMapper.insertSelective(record); |
|
|
int sqlRow = wxPayOrderMapper.insertSelective(record); |
|
|
if(sqlRow == 1) { |
|
|
if(sqlRow == 1) { |
|
|
|
|
|
return new ResultData(); |
|
|
|
|
|
} |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
// 统一下单 |
|
|
// 统一下单 |
|
|
String noncestr = Utility.generate32UUID(); |
|
|
String noncestr = Utility.generate32UUID(); |
|
|
WxPayOrderP wxPayOrderP = new WxPayOrderP(); |
|
|
WxPayOrderP wxPayOrderP = new WxPayOrderP(); |
|
|
//wxPayOrderP.setAppid(wechatAppId); |
|
|
|
|
|
//wxPayOrderP.setMch_id(wechatMchId); |
|
|
|
|
|
|
|
|
wxPayOrderP.setAppid(weappId); |
|
|
|
|
|
wxPayOrderP.setMch_id(wechatMchId); |
|
|
wxPayOrderP.setNonce_str(noncestr); |
|
|
wxPayOrderP.setNonce_str(noncestr); |
|
|
//wxPayOrderP.setBody(body); |
|
|
|
|
|
|
|
|
wxPayOrderP.setBody(body); |
|
|
wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); |
|
|
wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); |
|
|
BigDecimal llp = order.getPayment().multiply(new BigDecimal(100)); |
|
|
BigDecimal llp = order.getPayment().multiply(new BigDecimal(100)); |
|
|
wxPayOrderP.setTotal_fee(llp.intValue()); |
|
|
wxPayOrderP.setTotal_fee(llp.intValue()); |
|
|
wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP |
|
|
wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP |
|
|
//wxPayOrderP.setNotify_url(wxpayNotifyUrl); |
|
|
|
|
|
|
|
|
wxPayOrderP.setNotify_url(wxpayNotifyUrl); |
|
|
wxPayOrderP.setTrade_type(WxPay.TradeType.APP.name()); // 终端类型 |
|
|
wxPayOrderP.setTrade_type(WxPay.TradeType.APP.name()); // 终端类型 |
|
|
wxPayOrderP.setProduct_id(String.valueOf(order.getId())); // 订单ID |
|
|
wxPayOrderP.setProduct_id(String.valueOf(order.getId())); // 订单ID |
|
|
wxPayOrderP.setTime_start(Utility.getDataFormatStringYYYYMMDDHHmmss(currentTime)); |
|
|
wxPayOrderP.setTime_start(Utility.getDataFormatStringYYYYMMDDHHmmss(currentTime)); |
|
|
@@ -139,6 +148,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { |
|
|
return new ResultData(ErrorCode.PAYORDER_ERROR.getCode(), errObj.toJSONString(), returnMap); |
|
|
return new ResultData(ErrorCode.PAYORDER_ERROR.getCode(), errObj.toJSONString(), returnMap); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
*/ |
|
|
return new ResultData(); |
|
|
return new ResultData(); |
|
|
} catch (RuntimeException e) { |
|
|
} catch (RuntimeException e) { |
|
|
throw new MallinkException(ErrorCode.PAYORDER_ERROR); |
|
|
throw new MallinkException(ErrorCode.PAYORDER_ERROR); |
|
|
|