|
@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.alipay.api.AlipayClient;
|
|
import com.alipay.api.AlipayClient;
|
|
import com.alipay.api.DefaultAlipayClient;
|
|
import com.alipay.api.DefaultAlipayClient;
|
|
import com.alipay.api.request.AlipayTradePrecreateRequest;
|
|
import com.alipay.api.request.AlipayTradePrecreateRequest;
|
|
|
|
+import com.alipay.api.request.AlipayTradeRefundRequest;
|
|
import com.alipay.api.response.AlipayTradePrecreateResponse;
|
|
import com.alipay.api.response.AlipayTradePrecreateResponse;
|
|
|
|
+import com.alipay.api.response.AlipayTradeRefundResponse;
|
|
import com.jpsoft.bus.config.AliPayConfig;
|
|
import com.jpsoft.bus.config.AliPayConfig;
|
|
import com.jpsoft.bus.modules.base.entity.MergeOrderInfo;
|
|
import com.jpsoft.bus.modules.base.entity.MergeOrderInfo;
|
|
import com.jpsoft.bus.modules.base.entity.OrderInfo;
|
|
import com.jpsoft.bus.modules.base.entity.OrderInfo;
|
|
@@ -13,6 +15,7 @@ import com.jpsoft.bus.modules.base.service.MergeOrderInfoService;
|
|
import com.jpsoft.bus.modules.base.service.OrderInfoService;
|
|
import com.jpsoft.bus.modules.base.service.OrderInfoService;
|
|
import com.jpsoft.bus.modules.base.service.PaymentInfoService;
|
|
import com.jpsoft.bus.modules.base.service.PaymentInfoService;
|
|
import com.jpsoft.bus.modules.pay.service.AlipayService;
|
|
import com.jpsoft.bus.modules.pay.service.AlipayService;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -97,4 +100,49 @@ public class AlipayServiceImpl implements AlipayService {
|
|
|
|
|
|
return qr_code;
|
|
return qr_code;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Boolean aliPayRefund(OrderInfo orderInfo) throws Exception {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Integer payStatus = 40;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ AlipayClient alipayClient = new DefaultAlipayClient(aliPayConfig.getServiceUrl(), aliPayConfig.getAppId(), aliPayConfig.getPrivateKey(), "json", aliPayConfig.getInputCharset(), aliPayConfig.getZfbPublicKey(), aliPayConfig.getSignType());
|
|
|
|
+ AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Map<String, Object> maps = new HashMap<>();
|
|
|
|
+ maps.put("out_trade_no", orderInfo.getOutOrderNo());
|
|
|
|
+ maps.put("refund_reason", "正常退款");
|
|
|
|
+ maps.put("refund_amount", orderInfo.getPayFee());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ JSONObject extendParams = new JSONObject();
|
|
|
|
+
|
|
|
|
+ extendParams.put("sys_service_provider_id", aliPayConfig.getMchId());
|
|
|
|
+ maps.put("extend_params", extendParams);
|
|
|
|
+ request.putOtherTextParam("app_auth_token", aliPayConfig.getAppAuthToken());
|
|
|
|
+ //把订单信息转换为json对象的字符串
|
|
|
|
+ String postdata = JSONObject.toJSONString(maps);
|
|
|
|
+ request.setBizContent(postdata);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ AlipayTradeRefundResponse response = alipayClient.execute(request);
|
|
|
|
+
|
|
|
|
+ //退款成功
|
|
|
|
+ if (response.isSuccess()){
|
|
|
|
+ orderInfo.setRefundFee(orderInfo.getPayFee());
|
|
|
|
+ orderInfo.setPayStatus(payStatus);
|
|
|
|
+ orderInfoService.update(orderInfo);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return response.isSuccess();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|