| | |
| | | import org.yeshi.utils.wx.WXPayUtil;
|
| | |
|
| | | import com.alipay.api.AlipayApiException;
|
| | | import com.alipay.api.AlipayClient;
|
| | | import com.alipay.api.DefaultAlipayClient;
|
| | | import com.alipay.api.request.AlipayFundTransToaccountTransferRequest;
|
| | | import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
|
| | | import com.alipay.api.response.AlipayFundTransUniTransferResponse;
|
| | | import com.google.gson.Gson;
|
| | | import com.yeshi.fanli.dao.mybatis.AccountMessageMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
|
| | |
| | | import com.yeshi.fanli.exception.NotExistObjectException;
|
| | | import com.yeshi.fanli.exception.ObjectStateException;
|
| | | import com.yeshi.fanli.exception.money.UserMoneyDetailException;
|
| | | import com.yeshi.fanli.exception.user.AlipayTransferException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.config.SystemConfigService;
|
| | |
| | | import com.yeshi.fanli.service.inter.push.PushService;
|
| | | import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.util.AlipayUtil;
|
| | | import com.yeshi.fanli.util.CMQManager;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.GsonUtil;
|
| | |
| | | import com.yeshi.fanli.util.ThreadUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | @Service
|
| | | public class ExtractServiceImpl implements ExtractService {
|
| | |
| | | @Transactional
|
| | | private void extractByZhiFuBao(Extract extract, AdminUser adminUser) {
|
| | | LogHelper.userErrorInfo("提现:开始通过提现-" + extract.getId());
|
| | | String privateKey = Constant.alipayConfig.getPrivateKey();
|
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
|
| | | Constant.alipayConfig.getAppId(), privateKey, "json", "gbk", null, "RSA2");
|
| | | AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
|
| | | String appName = Constant.systemCommonConfig.getProjectChineseName();
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("out_biz_no", "widthdraw_" + extract.getId());// 最长长度64位,支持英文,下划线,数字
|
| | | json.put("payee_type", "ALIPAY_LOGONID");
|
| | | json.put("payee_account", extract.getAccount());
|
| | | json.put("amount", extract.getMoney());
|
| | | json.put("payer_show_name", appName);
|
| | | json.put("payee_real_name", extract.getName());
|
| | | json.put("remark", "来自重庆快省科技有限公司");
|
| | | request.setBizContent(json.toString());
|
| | | AlipayFundTransToaccountTransferResponse response = null;
|
| | | AlipayFundTransUniTransferResponse response = null;
|
| | | try {
|
| | | response = alipayClient.execute(request);
|
| | | response = AlipayUtil.transferNoThrowException("widthdraw_" + extract.getId(), extract.getAccount(), extract.getName(), extract.getMoney(), "板栗快省提现到账", "来自板栗快省的提现");
|
| | | LogHelper.userErrorInfo("提现:支付宝通过提现成功-" + extract.getId());
|
| | | } catch (AlipayApiException e) {
|
| | | LogHelper.errorDetailInfo(e, "支付宝转账异常:" + extract.getId(), "");
|
| | |
| | | BigDecimal after = hongBaoMoney.subtract(extractMoney.add(weiqaunMoney).add(balance).add(compensateMoney));
|
| | |
|
| | | if (after.compareTo(new BigDecimal("0")) != 0)
|
| | | throw new ExtractException(2, "结算资金异常");
|
| | | throw new ExtractException(2, "结算资金异常:" + after);
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | public void processExtractResult(AlipayTransferResultInfo info) {
|
| | | if (info == null)
|
| | | return;
|
| | | AlipayFundTransToaccountTransferResponse response = info.getAlipayFundTransToaccountTransferResponse();
|
| | | AlipayFundTransUniTransferResponse response = info.getAlipayFundTransUniTransferResponse();
|
| | | Extract extract = info.getExtract();
|
| | | AdminUser admin = info.getAdminUser();
|
| | | if (response == null)
|
| | |
| | | payInfo.setState(2);
|
| | | }
|
| | | payInfo.setOrderId(response.getOrderId());
|
| | | payInfo.setOrdertime(response.getPayDate());
|
| | | payInfo.setOrdertime(response.getTransDate());
|
| | | payInfo.setInfo(response.getSubMsg());
|
| | | payInfoMapper.insertSelective(payInfo);
|
| | |
|