/** * */ /** * @author Administrator * */ package com.nova.sankuai.infra.utils.baofu; import com.alibaba.fastjson.JSON; import com.nova.sankuai.domain.entity.PayRecord; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.utils.baofu.http.*; import com.nova.sankuai.service.IPayRecordService; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; @Component public class PayHttpUtil { private static final Logger log = LoggerFactory.getLogger("baofuLog"); public String RequestForm(String Url,Map Parms){ if(Parms.isEmpty()){ return "参数不能为空!"; } String PostParms = ""; int PostItemTotal = Parms.keySet().size(); int Itemp=0; for (String key : Parms.keySet()){ PostParms += key + "="+Parms.get(key); Itemp++; if(Itemp params = httpSendModel.getParams(); List qparams = new ArrayList(); if (params != null && params.size() != 0) { for (HttpFormParameter param : params) { qparams.add(new BasicNameValuePair(param.getName(), param .getValue())); } } HttpPost httppost = new HttpPost(url); try { httppost.setEntity(new UrlEncodedFormEntity(qparams, sendCharSet)); } catch (UnsupportedEncodingException e) { throw new Exception("构建post请求参数失败", e); } httpRequest = httppost; } else if (httpSendModel.getMethod() == HttpMethod.GET) { HttpGet httpget = new HttpGet(httpSendModel.buildGetRequestUrl()); httpRequest = httpget; } else { throw new Exception("请求方式不支持:" + httpSendModel.getMethod()); } return httpRequest; } /** * 请求是否成功 * * @param statusCode * @return */ public static boolean isRequestSuccess(int statusCode) { return statusCode == 200; } @Resource private PlatformTransactionManager transactionManager;// 引入 (平台)事务管理器,Spring 事务策略的核心。 // 于2022-11-17号 @Resource private IPayRecordService payRecordService; /** * 于2022-11-18新增:录入支付记录表 */ @Async public void payRecordImpl(PayRecord payRecord) { // 发起一个新事务 DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);//新发起一个事务 TransactionStatus defStatus = transactionManager.getTransaction(def);// 获得事务状态 payRecordService.save(payRecord); transactionManager.commit(defStatus);// 手动提交事务 } }