|
@@ -1,267 +0,0 @@
|
|
|
-package com.yonge.cooleshow.biz.dal.sdk;
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.alipay.api.AlipayApiException;
|
|
|
-import com.alipay.api.AlipayClient;
|
|
|
-import com.alipay.api.DefaultAlipayClient;
|
|
|
-import com.alipay.api.request.AlipaySystemOauthTokenRequest;
|
|
|
-import com.alipay.api.response.AlipaySystemOauthTokenResponse;
|
|
|
-import com.huifu.adapay.core.exception.BaseAdaPayException;
|
|
|
-import com.huifu.adapay.model.Payment;
|
|
|
-import com.huifu.adapay.model.PaymentConfirm;
|
|
|
-import com.huifu.adapay.model.Refund;
|
|
|
-import com.yonge.cooleshow.biz.dal.config.HuifuConfiguration;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.UserOrderRefund;
|
|
|
-import com.yonge.cooleshow.biz.dal.sdk.req.PaymentReq;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.impl.ImGroupMemberServiceImpl;
|
|
|
-import com.yonge.cooleshow.common.constant.CommonConstants;
|
|
|
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
-import com.yonge.toolset.base.exception.BizException;
|
|
|
-import com.yonge.toolset.base.exception.ThirdpartyException;
|
|
|
-import com.yonge.toolset.utils.collection.MapUtil;
|
|
|
-import com.yonge.toolset.utils.http.HttpUtil;
|
|
|
-import com.yonge.toolset.utils.string.StringUtil;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
-
|
|
|
-@Component
|
|
|
-public class PaymentSdk {
|
|
|
- private final static Logger log = LoggerFactory.getLogger(PaymentSdk.class);
|
|
|
- @Autowired
|
|
|
- private AlipayClient alipayClient;
|
|
|
-
|
|
|
- /**
|
|
|
- * 执行一个支付交易
|
|
|
- *
|
|
|
- * @return 创建的支付对象
|
|
|
- * @throws Exception 异常
|
|
|
- */
|
|
|
- public HttpResponseResult<Map<String, Object>> executePayment(PaymentReq paymentReq) {
|
|
|
- paymentReq.setApp_id(HuifuConfiguration.getHuifuProperties().getAppId());
|
|
|
- //创建分账对象
|
|
|
- Map<String, String> div_member = new HashMap<>();
|
|
|
- div_member.put("member_id", "0");
|
|
|
- div_member.put("amount", paymentReq.getPay_amt());
|
|
|
- div_member.put("fee_flag", "Y");
|
|
|
- List<Map<String, String>> div_members = Arrays.asList(div_member);
|
|
|
- paymentReq.setDiv_members(JSONObject.toJSONString(div_members));
|
|
|
-
|
|
|
- log.info("汇付[创建支付对象] Req:{}", JSONObject.toJSONString(paymentReq));
|
|
|
- //调用sdk方法,创建支付,得到支付对象
|
|
|
- Map<String, Object> paymentParams = MapUtil.populateMap(new HashMap<>(), paymentReq);
|
|
|
- Map<String, Object> res;
|
|
|
- try {
|
|
|
- res = Payment.create(paymentParams);
|
|
|
- } catch (BaseAdaPayException e) {
|
|
|
- return HttpResponseResult.failed(e.getMessage());
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(res)) {
|
|
|
- return HttpResponseResult.failed("请求失败");
|
|
|
- }
|
|
|
- log.info("汇付[创建支付对象] Resp:{}", res);
|
|
|
- String errorCode = (String) res.get("error_code");
|
|
|
- if (null != errorCode) {
|
|
|
- String errorMsg = (String) res.get("error_msg");
|
|
|
- return HttpResponseResult.failed(errorMsg);
|
|
|
- }
|
|
|
- return HttpResponseResult.succeed(res);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 关闭一个支付交易
|
|
|
- *
|
|
|
- * @param paymentId 要关闭的支付id
|
|
|
- * @return 关闭的支付对象
|
|
|
- * @throws Exception 异常
|
|
|
- */
|
|
|
- public HttpResponseResult<Map<String, Object>> closePayment(String paymentId, String reason, String expend) {
|
|
|
- Map<String, Object> paymentParams = new HashMap<>(10);
|
|
|
- paymentParams.put("payment_id", paymentId);
|
|
|
- paymentParams.put("reason", reason);
|
|
|
- paymentParams.put("expend", expend);
|
|
|
- paymentParams.put("notify_url", HuifuConfiguration.getHuifuProperties().getNotifyUrl());
|
|
|
-
|
|
|
- Map<String, Object> res;
|
|
|
- try {
|
|
|
- res = Payment.close(paymentParams);
|
|
|
- } catch (BaseAdaPayException e) {
|
|
|
- return HttpResponseResult.failed(e.getMessage());
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(res)) {
|
|
|
- return HttpResponseResult.failed("请求失败");
|
|
|
- }
|
|
|
- log.info("汇付[创建支付对象] Resp:{}", res);
|
|
|
- String errorCode = (String) res.get("error_code");
|
|
|
- if (null != errorCode) {
|
|
|
- String errorMsg = (String) res.get("error_msg");
|
|
|
- return HttpResponseResult.failed(errorMsg);
|
|
|
- }
|
|
|
- return HttpResponseResult.succeed(res);
|
|
|
- }
|
|
|
-
|
|
|
- public HttpResponseResult<Map<String, Object>> refundPayment(String transNo, String refundOrderNo, BigDecimal refundAmt) {
|
|
|
- Map<String, Object> refundParams = new HashMap<>(10);
|
|
|
- refundParams.put("refund_amt", refundAmt.toString());
|
|
|
- refundParams.put("refund_order_no", refundOrderNo);
|
|
|
- refundParams.put("notify_url", HuifuConfiguration.getHuifuProperties().getNotifyUrl());
|
|
|
-
|
|
|
- Map<String, Object> res;
|
|
|
- try {
|
|
|
- res = Refund.create(transNo,refundParams);
|
|
|
- } catch (BaseAdaPayException e) {
|
|
|
- return HttpResponseResult.failed(e.getMessage());
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(res)) {
|
|
|
- return HttpResponseResult.failed("请求失败");
|
|
|
- }
|
|
|
- log.info("汇付[创建退款对象] Resp:{}", res);
|
|
|
- String errorCode = (String) res.get("error_code");
|
|
|
- if (null != errorCode) {
|
|
|
- String errorMsg = (String) res.get("error_msg");
|
|
|
- return HttpResponseResult.failed(errorMsg);
|
|
|
- }
|
|
|
- return HttpResponseResult.succeed(res);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询一个支付交易
|
|
|
- *
|
|
|
- * @param paymentId 要查询的支付id
|
|
|
- * @return 查询的支付对象
|
|
|
- * @throws Exception 异常
|
|
|
- */
|
|
|
- public Map<String, Object> queryPayment(String paymentId) throws Exception {
|
|
|
- System.out.println("=======query payment begin=======");
|
|
|
- //查询支付对象的参数,全部参数请参考 https://docs.adapay.tech/api/04-trade.html#id7
|
|
|
- //调用sdk方法,查询支付交易,得到支付对象
|
|
|
- Map<String, Object> payment = new HashMap<>();
|
|
|
- try {
|
|
|
- System.out.println("支付查询请求参数:" + JSON.toJSONString(paymentId));
|
|
|
- payment = com.huifu.adapay.model.Payment.query(paymentId);
|
|
|
- } catch (ThirdpartyException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- System.out.println("支付查询返回参数:" + JSON.toJSONString(payment));
|
|
|
-
|
|
|
- String error_code = (String) payment.get("error_code");
|
|
|
- if (null != error_code) {
|
|
|
- String error_msg = (String) payment.get("error_msg");
|
|
|
- System.out.println("error_code:" + error_code + "............." + error_msg);
|
|
|
- }
|
|
|
- System.out.println("=======query payment end=======");
|
|
|
- return payment;
|
|
|
- }
|
|
|
-
|
|
|
- /***
|
|
|
- * 获取openId
|
|
|
- * @author liweifan
|
|
|
- * @param: js_code
|
|
|
- * @updateTime 2022/4/8 15:49
|
|
|
- * @return: java.lang.Object
|
|
|
- */
|
|
|
- public HttpResponseResult<Map<String, String>> getOpenId(String js_code) {
|
|
|
- log.info("微信[获取用户openId] Req:{}", js_code);
|
|
|
- Map<String, Object> param = new HashMap<>();
|
|
|
- param.put("appid", HuifuConfiguration.getHuifuProperties().getWxAppid());
|
|
|
- param.put("secret", HuifuConfiguration.getHuifuProperties().getWxSecret());
|
|
|
- param.put("js_code", js_code);
|
|
|
- param.put("grant_type", CommonConstants.WECHAT_GRANT_TYPE);
|
|
|
-
|
|
|
- try {
|
|
|
- String res = HttpUtil.get("https://api.weixin.qq.com/sns/jscode2session", param);
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
- log.info("微信[获取用户openId] Res:{}", jsonObject.toJSONString());
|
|
|
- String errcode = jsonObject.getString("errcode");
|
|
|
- if (StringUtil.isEmpty(errcode) || "0".equals(errcode)) {
|
|
|
- Map<String, String> resMap = new HashMap<>();
|
|
|
- resMap.put("openid", jsonObject.getString("openid"));
|
|
|
- resMap.put("session_key", jsonObject.getString("session_key"));
|
|
|
- return HttpResponseResult.succeed(resMap);
|
|
|
- } else {
|
|
|
- return HttpResponseResult.failed(jsonObject.getString("errmsg"));
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return HttpResponseResult.failed("请求失败");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public HttpResponseResult<AlipaySystemOauthTokenResponse> getAliToken(String authorization_code) {
|
|
|
- AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
|
|
|
- request.setGrantType("authorization_code");
|
|
|
- request.setCode(authorization_code);
|
|
|
- AlipaySystemOauthTokenResponse response = null;
|
|
|
- try {
|
|
|
- response = alipayClient.execute(request);
|
|
|
- if (response.isSuccess()) {
|
|
|
- return HttpResponseResult.succeed(response);
|
|
|
- } else {
|
|
|
- return HttpResponseResult.failed(response.getMsg());
|
|
|
- }
|
|
|
- } catch (AlipayApiException e) {
|
|
|
- log.error("请求支付宝获取token异常,参数{},code is {},msg is {}", authorization_code, e.getErrCode(), e.getErrMsg());
|
|
|
- return HttpResponseResult.failed(e.getErrMsg());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-/*
|
|
|
- public static Map<String, Object> queryList(Integer pageIndex, Long createdGte, Long createdLte) throws Exception {
|
|
|
- Map<String, Object> paymentParams = new HashMap<>();
|
|
|
- paymentParams.put("app_id", ConfigInit.appId);
|
|
|
- paymentParams.put("page_index", pageIndex);
|
|
|
- paymentParams.put("page_size", "20");
|
|
|
- paymentParams.put("created_gte", createdGte);
|
|
|
- paymentParams.put("created_lte", createdLte);
|
|
|
- Map<String, Object> payment = com.huifu.adapay.model.Payment.queryList(paymentParams);
|
|
|
- String error_code = (String) payment.get("error_code");
|
|
|
- if (null != error_code) {
|
|
|
- String errorMsg = (String) payment.get("error_msg");
|
|
|
- throw new ThirdpartyException(errorMsg);
|
|
|
- }
|
|
|
- return payment;
|
|
|
- }
|
|
|
-
|
|
|
- public static Map<String, Object> queryConfirmList(String paymentId) throws Exception {
|
|
|
- Map<String, Object> paymentParams = new HashMap<>();
|
|
|
- paymentParams.put("app_id", ConfigInit.appId);
|
|
|
- paymentParams.put("payment_id", paymentId);
|
|
|
-
|
|
|
- Map<String, Object> payment = com.huifu.adapay.model.Payment.queryConfirmList(paymentParams);
|
|
|
- String error_code = (String) payment.get("error_code");
|
|
|
- if (null != error_code) {
|
|
|
- String errorMsg = (String) payment.get("error_msg");
|
|
|
- throw new ThirdpartyException(errorMsg);
|
|
|
- }
|
|
|
- return payment;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public static Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody) throws Exception {
|
|
|
- Map<String, Object> paymentParams = new LinkedHashMap<>();
|
|
|
- paymentParams.put("appId", ConfigInit.appId);
|
|
|
- paymentParams.put("amount", amount.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
- paymentParams.put("orderNo", orderNo);
|
|
|
-// paymentParams.put("notifyUrl", notifyUrl);
|
|
|
-// paymentParams.put("returnUrl", returnUrl);
|
|
|
- paymentParams.put("orderSubject", orderSubject);
|
|
|
- paymentParams.put("orderBody", orderBody);
|
|
|
- paymentParams.put("wxAppId", ConfigInit.wxAppId);
|
|
|
-
|
|
|
- String originalStr = JSONObject.toJSONString(paymentParams);
|
|
|
- String sign = DigestUtils.md5DigestAsHex(originalStr.getBytes());
|
|
|
-
|
|
|
- paymentParams.put("sign", sign);
|
|
|
- paymentParams.remove("appId");
|
|
|
- return paymentParams;
|
|
|
- }*/
|
|
|
-}
|