|
@@ -173,6 +173,102 @@ public class TradeServiceImpl implements ITradeService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 用户仓单收款
|
|
|
+ * 1、向用户打款
|
|
|
+ * 2、修改寄售订单金额
|
|
|
+ * @param user 用户
|
|
|
+ * @param transAmount 金额
|
|
|
+ * @param orderConsignId 寄售(进货)Id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void transfer(UserApp user, String transAmount, Long orderConsignId){
|
|
|
+ OrderConsign orderConsign = new OrderConsign();
|
|
|
+ orderConsign.setId(orderConsignId);
|
|
|
+ orderConsign.setConfirmTime(DateUtil.now());
|
|
|
+ if (user == null){
|
|
|
+ orderConsign.setIsConfirm(3);//异常
|
|
|
+ orderConsign.setBody("该用户不存在");
|
|
|
+ orderConsignService.updateById(orderConsign);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtil.isEmpty(user.getAlipayUserId())){
|
|
|
+ orderConsign.setIsConfirm(3);//异常
|
|
|
+ orderConsign.setBody("用户【" + user.getUserId() +" 】无支付宝账号数据");
|
|
|
+ orderConsignService.updateById(orderConsign);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ User u = userService.getById(user.getUserId());
|
|
|
+ if (u == null){
|
|
|
+ orderConsign.setIsConfirm(3);//异常
|
|
|
+ orderConsign.setBody("该用户不存在,可能被删除或者冻结");
|
|
|
+ orderConsignService.updateById(orderConsign);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (StringUtil.isEmpty(u.getRealName())){
|
|
|
+ orderConsign.setIsConfirm(3);//异常
|
|
|
+ orderConsign.setBody("该用户无法获取真实名字");
|
|
|
+ orderConsignService.updateById(orderConsign);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String identity = user.getAlipayUserId();
|
|
|
+ String name = u.getRealName();
|
|
|
+ try {
|
|
|
+ String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCU4XTbNjnNOmuEnwBEgUBOVLK5CaUiUFKEkVW1/2sTlijARZzLtzwXfbkvzHEhCSu+E+OA1Futbh5HwNAC06bvqYDS+TXrFuZ0LcDaU92lk5Hp/ed8NhRXtm0gss1TS0vebOq+3kejErIvVCg9kNMrYMrmdf8G0+zKlCp3vrfdM37IeLXp3GoOckNzHh/LT7rLd7/9QcdSCPixPSwusrfCusw3H093cuWkV9WX4Go/zHTL9rAEwJPOn36OhyVc1oG113ZJiVg7KgsZGOCJJyh9BvlKq2vuKxnylQwq9Kh5e+BfP2FSWs7a1XMj/79JsZTxztJ9tFqcSXQh99vq1nd1AgMBAAECggEAVglIT5oxoxEcq0J7lBshf2Lg+Z/CR2clmKioYImfZm1DVYGlD/DvECA+kYnS4qV7GthBg+S0qi/V3d9mFgwcD6nj4YfVCets+Dyskz8d+p6iFxf820IhVWL+A4Rwta7wxDQrIGwx9+JJCKLYsmNsNUg1WSNdYqO71oHzXMnhVTmYJ6sKOrrBucyI4Ydu9UbfN+DRRGD9seL+Nxh1V2PPXs4ftk2kRlG18LaTPgFba1g8QBIpGDR9gFqM+DvBHUxAWsPRnL1+q0c6o5Ndk7W5f7Ob1zxF/lgqHudiG38jItkwc7MLMOYjbV5wiJPZc93nsHS1CKPSEX9/snNLnx2LQQKBgQDMyLBVVasfTMQpMjyi+Jof9JLHPiRP3dEHwZECUgfdWhPoidLjK9y1wszmCLrcg01842WufrpbJ1QXs+g8x6+DhLHvcKum1znsvQKWdy/2V6a2eahNHsYi1Qus+N0dFgotfZwfElfkIU/jAwh6OnYPCXQCVmdvoxzmdk81L04d5QKBgQC6HY6EZ8o4mo4CzDss2qxT2oKuiI0clnbDPC9LJzkRBVbHosx6AO+C3RyfREZxMzNhYW3XnozifDyRw6rlvI6toE3l9ku71dJS1aKZwbH/h0rdHXXqDHARYc9rdwCzOM2t2Kve/PgXxCDQdwY/m0deXM22oKdOlb7miz2YTGLaUQKBgEg8qucPNzPtUmztybH7W/LVxUj/RLPfnTLNNyfIY/nTIp6ur3NvL4X2V2z1u2S59IWPeXjaP0aUUvehgNSf4+vSzSmXZxWNamN2MQl+ta6CMM7Bj3rU1jPHTz0O9ICkG6b8Xiwfvl082v9LPJxRLwAS55dDf21D7pflN/+c1kN5AoGARaRHrt3TeojCuONJBUiyERKDseFgxCC9QeLkY3/Cx86yoTMWxlRRSyuHyUTYAwXApSC65GLsntcUJwsLiLmcvfVtEK6vuhKRh/Nuy5ACFfa/Gawrci/DQ43Q+opmFaoctH+OGHuaLfJywO64xNZKx1F8nGjTEgHQlB3oJ3P1zXECgYBW/GRUU+SevGeLjZTZ9WqG+ztseItnmEwmar9tGhR9TNv3vDiL5/fsAfI8ApMiIzDe6+QfS5Lxx5rD6V4Et/zBpsf8JzqP2eDiTe9UiHxDr2v5NIxelf404VZcdRh83u84lCJTa/ZYanFu94UW6h70MHhDWtiWddtFR3EXt5hD9w==";
|
|
|
+ String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhIxPBQL0OKBc6fcU/9PdVTMA7L2s314oU2w1q06ywQSDdhF3RY1Bo0Eqh4Zg8QpPirFeyAc4rhFjyKZRlngQXrybcAhUfswD86QQGodObe3aA9bbWdXiTt10Q5CBk5GImadNiEW6Adh+0bY5ezf1RbxIjbGDfH6x5gatZnpjPswiHMQnskZtg9JSfE2u8WEKuSaH8yhnkllHpIHWnWvFvXwNVNycXdmDrEe7gIB1yCouNK6/DZ7IQH2AajSuvbxmCqO0MzywEfgvLqE0GFVsKKmXvgJebRAnW9RmGhmrxvEIceXCjR3tbxM9gX8lioDlqKnBootTgAbjIJ5VrPvKPwIDAQAB";
|
|
|
+ AlipayConfig alipayConfig = new AlipayConfig();
|
|
|
+ alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
|
|
|
+ alipayConfig.setAppId("2021003125657245");
|
|
|
+ alipayConfig.setPrivateKey(privateKey);
|
|
|
+ alipayConfig.setFormat("json");
|
|
|
+ alipayConfig.setAlipayPublicKey(alipayPublicKey);
|
|
|
+ alipayConfig.setCharset("UTF8");
|
|
|
+ alipayConfig.setSignType("RSA2");
|
|
|
+ //设置应用公钥证书路径//appCertPublicKey_2021003125657245
|
|
|
+ alipayConfig.setAppCertPath(properties.getAppCertPath());
|
|
|
+ //设置支付宝公钥证书路径//alipayCertPublicKey_RSA2
|
|
|
+ alipayConfig.setAlipayPublicCertPath(properties.getAliPayCertPath());
|
|
|
+ //设置支付宝根证书路径
|
|
|
+ alipayConfig.setRootCertPath(properties.getAliPayRootCertPath());
|
|
|
+ AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
|
|
|
+ AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
|
|
|
+ model.setOutBizNo(CommonUtil.genTimeID());
|
|
|
+ model.setRemark("贵州中宏科技有限公司进货仓单收款");
|
|
|
+ model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
|
|
|
+ model.setBizScene("DIRECT_TRANSFER");
|
|
|
+ Participant payeeInfo = new Participant();
|
|
|
+ payeeInfo.setIdentity(identity);
|
|
|
+ payeeInfo.setIdentityType("ALIPAY_USER_ID");
|
|
|
+ payeeInfo.setName(name);
|
|
|
+ model.setPayeeInfo(payeeInfo);
|
|
|
+ model.setTransAmount(transAmount);
|
|
|
+ model.setProductCode("TRANS_ACCOUNT_NO_PWD");
|
|
|
+ model.setOrderTitle("进货仓单收款");
|
|
|
+ AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
|
|
|
+ request.setBizModel(model);
|
|
|
+ AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
|
|
|
+ if (!response.isSuccess()){
|
|
|
+ log.info("向用户【" + name +" 】打款失败,打款账号:" + identity);
|
|
|
+ logger.info("打款失败", ",打款人:" + name + "支付宝账号:" + identity);
|
|
|
+ orderConsign.setBody("向用户【" + name +" 】打款失败,打款账号:" + identity);
|
|
|
+ orderConsign.setIsConfirm(3);//异常
|
|
|
+ }else{
|
|
|
+ log.info("向用户【" + name +" 】打款成功,打款账号:" + identity);
|
|
|
+ logger.info("打款成功", ",打款人:" + name + "支付宝账号:" + identity);
|
|
|
+ orderConsign.setBody("向用户【" + name +" 】打款成功,打款账号:" + identity);
|
|
|
+ orderConsign.setIsConfirm(2);//确认
|
|
|
+ }
|
|
|
+ orderConsignService.updateById(orderConsign);
|
|
|
+ } catch (AlipayApiException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.info("打款失败", ",打款人:" + name + "支付宝账号:" + identity);
|
|
|
+ orderConsign.setIsConfirm(3);//异常
|
|
|
+ orderConsign.setBody(e.getMessage());
|
|
|
+ orderConsignService.updateById(orderConsign);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public boolean platformReceipt(Long consignId) {
|
|
|
//查询未抢的单
|