|
|
@@ -112,6 +112,7 @@ public class CryptomusService {
|
|
|
//更新订单支付状态
|
|
|
OrderDon orderDon = orderDonService.getById(orderId);
|
|
|
orderDon.setTransactionId(transationId);
|
|
|
+ orderDon.setCryptomusFrom(cryptomusReturnRep.getFrom());
|
|
|
orderDon.setPayTime(new Date());
|
|
|
orderDon.setAbroadTransactionFee(new BigDecimal(commission).multiply(BigDecimal.valueOf(100)));
|
|
|
orderDonService.orderNotify(orderDon);
|
|
|
@@ -121,24 +122,21 @@ public class CryptomusService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public Boolean refund(OrderRefundReq refundReq, OrderDon orderDon) throws Exception {
|
|
|
+ public void refund(OrderRefundReq refundReq, OrderDon orderDon) throws Exception {
|
|
|
BigDecimal net = refundReq.getRefundMoney().subtract(orderDon.getAbroadTransactionFee());
|
|
|
log.info("cryptomus return order:{},money:{}",orderDon.getId(),net);
|
|
|
CryptomusRefundReq cryptomusRefundReq = new CryptomusRefundReq();
|
|
|
- cryptomusRefundReq.setAddress(refundReq.getAddress());
|
|
|
+ cryptomusRefundReq.setAddress(orderDon.getCryptomusFrom());
|
|
|
cryptomusRefundReq.setUuid(orderDon.getTransactionId());
|
|
|
cryptomusRefundReq.setOrder_id(orderDon.getId().toString());
|
|
|
cryptomusRefundReq.setIs_subtract(false);
|
|
|
String json = Jsons.toJson(cryptomusRefundReq);
|
|
|
String result = HttpRequest.post("https://api.cryptomus.com/v1/payment/refund").header("merchant", shopId).header("sign", MD5.create().digestHex(Base64.encode(json) + shopKey)).body(json).execute().body();
|
|
|
CryptomusRefundRep cryptomusRefundRep = Jsons.parseObject(result, CryptomusRefundRep.class);
|
|
|
- if (cryptomusRefundRep.getState() == 0){
|
|
|
- orderDon.setStatus(OrderDon.Status.refund);
|
|
|
- orderDonService.updateById(orderDon);
|
|
|
- return true;
|
|
|
+ if (cryptomusRefundRep.getState() != 0){
|
|
|
+ throw BusinessRuntimeException.getInstance("退款失败,e:{0}", cryptomusRefundRep.getMessage());
|
|
|
}
|
|
|
log.info("cryptomus return refund:{}",cryptomusRefundRep);
|
|
|
- return false;
|
|
|
}
|
|
|
|
|
|
|