|
@@ -0,0 +1,233 @@
|
|
|
+package com.chelvc.cloud.vehicle.server.service.impl;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
|
|
+import com.chelvc.cloud.vehicle.client.constant.TradeConstant;
|
|
|
+import com.chelvc.cloud.vehicle.client.param.OrderReturnApplyModifyParam;
|
|
|
+import com.chelvc.cloud.vehicle.server.entity.OmsOrder;
|
|
|
+import com.chelvc.cloud.vehicle.server.entity.OmsOrderItem;
|
|
|
+import com.chelvc.cloud.vehicle.server.handle.TradeHandle;
|
|
|
+import com.chelvc.cloud.vehicle.server.service.OnlinePayService;
|
|
|
+import com.upay.sdk.exception.HmacVerifyException;
|
|
|
+import com.upay.sdk.exception.RequestException;
|
|
|
+import com.upay.sdk.exception.ResponseException;
|
|
|
+import com.upay.sdk.exception.UnknownException;
|
|
|
+import com.upay.sdk.executer.ResultListenerAdpater;
|
|
|
+import com.upay.sdk.onlinepay.builder.OrderBuilder;
|
|
|
+import com.upay.sdk.onlinepay.builder.QueryBuilder;
|
|
|
+import com.upay.sdk.onlinepay.builder.RefundBuilder;
|
|
|
+import com.upay.sdk.onlinepay.executer.OnlinePayOrderExecuter;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.io.PrintWriter;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 首信易支付
|
|
|
+ *
|
|
|
+ * @author liude
|
|
|
+ * @date 2025/1/6
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class OnlinePayServiceImpl implements OnlinePayService {
|
|
|
+ @Override
|
|
|
+ public void order(OmsOrder omsOrder, List<OmsOrderItem> orderItemList){
|
|
|
+ OrderBuilder builder = new OrderBuilder(omsOrder.getMerchantId().toString());
|
|
|
+ builder.setRequestId(omsOrder.getId().toString())
|
|
|
+ .setOrderAmount(omsOrder.getPayAmount().toString())
|
|
|
+ .setOrderCurrency("CNY")
|
|
|
+ .setNotifyUrl(TradeConstant.WITHDRAW_NOTIFY_URL)
|
|
|
+ .setCallbackUrl("")
|
|
|
+ .setRemark(omsOrder.getNote())
|
|
|
+ .setPaymentModeCode("")
|
|
|
+ .setAuthCode("")
|
|
|
+ .setMerchantUserId("")
|
|
|
+ .setBindCardId("")
|
|
|
+ .setClientIp("");
|
|
|
+ Gson gson = new Gson();
|
|
|
+ JSONObject json = TradeHandle.handle(gson.toJson(builder),
|
|
|
+ TradeConstant.WITHDRAW_URL, omsOrder.getMerchantId().toString(), TradeConstant.PARTNER_ID);
|
|
|
+ String result = json.getString("status");
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public String query(OmsOrder omsOrder) {
|
|
|
+ QueryBuilder builder = new QueryBuilder(omsOrder.getMerchantId().toString());
|
|
|
+ builder.setRequestId(omsOrder.getId().toString());
|
|
|
+ builder.setPartnerId(TradeConstant.PARTNER_ID);
|
|
|
+
|
|
|
+ OnlinePayOrderExecuter executer = new OnlinePayOrderExecuter();
|
|
|
+ try {
|
|
|
+ executer.bothQuery(builder, new ResultListenerAdpater() {
|
|
|
+ @Override
|
|
|
+ public void success(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理成功!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void failure(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理失败!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void pending(JSONObject jsonObject) {
|
|
|
+ System.out.println("待处理!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (ResponseException e) {
|
|
|
+ System.out.println("响应异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (HmacVerifyException e) {
|
|
|
+ System.out.println("签名验证异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (RequestException e) {
|
|
|
+ System.out.println("请求异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (UnknownException e) {
|
|
|
+ System.out.println("未知异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public String refund(OrderReturnApplyModifyParam param){
|
|
|
+ RefundBuilder builder = new RefundBuilder(param.getMerchantId().toString());
|
|
|
+ builder.setRequestId(param.getOrderId().toString())
|
|
|
+ .setAmount(param.getReturnAmount().toString())
|
|
|
+ .setOrderId(param.getOrderId().toString())
|
|
|
+ .setRemark(param.getDescription())
|
|
|
+ .setNotifyUrl(TradeConstant.WITHDRAW_NOTIFY_URL);
|
|
|
+// builder.setRefundSubsidy(refundSubsidy);
|
|
|
+// builder.setSubsidyMoney(subsidyMoney);
|
|
|
+ OnlinePayOrderExecuter executer = new OnlinePayOrderExecuter();
|
|
|
+ try {
|
|
|
+ executer.bothRefund(builder, new ResultListenerAdpater() {
|
|
|
+ @Override
|
|
|
+ public void success(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理成功!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void failure(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理失败!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void pending(JSONObject jsonObject) {
|
|
|
+ System.out.println("待处理!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (ResponseException e) {
|
|
|
+ System.out.println("响应异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (HmacVerifyException e) {
|
|
|
+ System.out.println("签名验证异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (RequestException e) {
|
|
|
+ System.out.println("请求异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (UnknownException e) {
|
|
|
+ System.out.println("未知异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public String refundQuery(OmsOrder omsOrder){
|
|
|
+ RefundBuilder builder = new RefundBuilder(omsOrder.getMerchantId().toString());
|
|
|
+ builder.setRequestId(omsOrder.getId().toString());
|
|
|
+ OnlinePayOrderExecuter executer = new OnlinePayOrderExecuter();
|
|
|
+ try {
|
|
|
+ executer.bothRefundQuery(builder, new ResultListenerAdpater() {
|
|
|
+ @Override
|
|
|
+ public void success(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理成功!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void failure(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理失败!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void pending(JSONObject jsonObject) {
|
|
|
+ System.out.println("待处理!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (ResponseException e) {
|
|
|
+ System.out.println("响应异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (HmacVerifyException e) {
|
|
|
+ System.out.println("签名验证异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (RequestException e) {
|
|
|
+ System.out.println("请求异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (UnknownException e) {
|
|
|
+ System.out.println("未知异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public String cancelOrder(OmsOrder omsOrder){
|
|
|
+ QueryBuilder builder = new QueryBuilder(omsOrder.getMerchantId().toString());
|
|
|
+ builder.setRequestId(omsOrder.getId().toString());
|
|
|
+ builder.setPartnerId(TradeConstant.PARTNER_ID);
|
|
|
+ OnlinePayOrderExecuter executer = new OnlinePayOrderExecuter();
|
|
|
+ try {
|
|
|
+ executer.bothCancelOrder(builder, new ResultListenerAdpater() {
|
|
|
+ @Override
|
|
|
+ public void success(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理成功!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void failure(JSONObject jsonObject) {
|
|
|
+ System.out.println("处理失败!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void pending(JSONObject jsonObject) {
|
|
|
+ System.out.println("待处理!<br/>");
|
|
|
+ String result = jsonObject.toJSONString();
|
|
|
+ System.out.print(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (ResponseException e) {
|
|
|
+ System.out.println("响应异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (HmacVerifyException e) {
|
|
|
+ System.out.println("签名验证异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (RequestException e) {
|
|
|
+ System.out.println("请求异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ } catch (UnknownException e) {
|
|
|
+ System.out.println("未知异常</br>");
|
|
|
+ System.out.println(e.toString());
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+}
|