|
@@ -2,6 +2,7 @@ package org.springblade.modules.api.controller;
|
|
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alipay.api.*;
|
|
|
import com.alipay.api.domain.AlipayFundTransUniTransferModel;
|
|
@@ -38,6 +39,7 @@ import org.springblade.modules.finance.pay.entity.AlipayProperties;
|
|
|
import org.springblade.modules.finance.service.IOrderConsignService;
|
|
|
import org.springblade.modules.finance.service.IOrderGrantService;
|
|
|
import org.springblade.modules.finance.service.IOrderService;
|
|
|
+import org.springblade.modules.platform.wrapper.UserAppWrapper;
|
|
|
import org.springblade.modules.shopping.entity.Consign;
|
|
|
import org.springblade.modules.shopping.service.IConsignService;
|
|
|
import org.springblade.modules.system.entity.User;
|
|
@@ -255,6 +257,10 @@ public class AliPay01Controller extends BladeController {
|
|
|
if(query.getState() != 1 ){
|
|
|
return R.fail("该账号已冻结!");
|
|
|
}
|
|
|
+ boolean flg = UserAppWrapper.build().isTicket(query.getTicket(), price);
|
|
|
+ if (!flg){
|
|
|
+ return R.fail("您的绿色积分不足!");
|
|
|
+ }
|
|
|
Consign consign = consignService.queryConsign(batNo, userId);
|
|
|
if (ObjectUtil.isNull(consign)){
|
|
|
return R.fail("亲,好物已抢完欢迎再来!");
|
|
@@ -362,37 +368,39 @@ public class AliPay01Controller extends BladeController {
|
|
|
alipayConfig.setRootCertPath("D:\\Blade2.9.0\\bladex-boot\\src\\main\\resources\\alipay\\alipayRootCert.crt");
|
|
|
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
|
|
|
AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
|
|
|
- model.setOutBizNo("9c721d8d8a648b8b5c9c2084b264acd");
|
|
|
- model.setRemark("201905代发");
|
|
|
+ String outBizNo = CommonUtil.genTimeID();
|
|
|
+ model.setOutBizNo(outBizNo);
|
|
|
+ model.setRemark("20220410退款");
|
|
|
model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
|
|
|
model.setBizScene("DIRECT_TRANSFER");
|
|
|
Participant payeeInfo = new Participant();
|
|
|
- payeeInfo.setIdentity("2088022745054432");
|
|
|
+ payeeInfo.setIdentity("2088012801069195");
|
|
|
payeeInfo.setIdentityType("ALIPAY_USER_ID");
|
|
|
- payeeInfo.setName("徐维");
|
|
|
+ payeeInfo.setName("丰元权");
|
|
|
model.setPayeeInfo(payeeInfo);
|
|
|
- model.setTransAmount("0.1");
|
|
|
+ model.setTransAmount("100");
|
|
|
model.setProductCode("TRANS_ACCOUNT_NO_PWD");
|
|
|
- model.setOrderTitle("公司xxx");
|
|
|
+ model.setOrderTitle("中宏科技");
|
|
|
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
|
|
|
request.setBizModel(model);
|
|
|
AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
|
|
|
- System.out.println(response.getBody());
|
|
|
if (response.isSuccess()){
|
|
|
+ logger.info("打款成功", response.getBody());
|
|
|
+ JSONUtil.parseObj(response.getBody());
|
|
|
return R.data(response.getBody());
|
|
|
}
|
|
|
logger.info("打款失败", response.getBody());
|
|
|
- return R.fail("打款失败!");
|
|
|
+ return R.success("打款成功!");
|
|
|
}
|
|
|
|
|
|
@ApiLog("抢购打款-测试")
|
|
|
@PostMapping("/pay_006")
|
|
|
@ApiOperation(value = "单笔转账到支付宝账户", notes = "单笔转账到支付宝账户")
|
|
|
@ApiOperationSupport(order = 5)
|
|
|
- public R pay006(@ApiParam(value = "支付宝", required = true) @RequestParam String aliPayId,
|
|
|
+ public R pay006(@ApiParam(value = "id", required = true) @RequestParam String id,
|
|
|
@ApiParam(value = "真实姓名", required = true) @RequestParam String name,
|
|
|
@ApiParam(value = "金额", required = true) @RequestParam String amount) {
|
|
|
- //transfer(aliPayId, name, amount);
|
|
|
+ transfer(id, amount, name);
|
|
|
return R.fail("正在打款...");
|
|
|
}
|
|
|
|
|
@@ -710,6 +718,64 @@ public class AliPay01Controller extends BladeController {
|
|
|
return "success";
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 用户仓单收款
|
|
|
+ * 1、向用户打款
|
|
|
+ * 2、修改寄售订单金额
|
|
|
+ * @param name 用户
|
|
|
+ * @param transAmount 金额
|
|
|
+ */
|
|
|
+ public void transfer(String identity, String transAmount, String name){
|
|
|
+ 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);
|
|
|
+ }else{
|
|
|
+ log.info("向用户【" + name +"】打款成功,打款账号:" + identity);
|
|
|
+ logger.info("打款成功", ",打款人:" + name + "支付宝账号:" + identity);
|
|
|
+ }
|
|
|
+ } catch (AlipayApiException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ String msg = "打款失败, ,打款人:" + name + "支付宝账号:" + identity;
|
|
|
+ logger.info(msg, e.getMessage());
|
|
|
+ logger.info("打款失败", ",打款人:" + name + "支付宝账号:" + identity);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 用户仓单收款
|
|
|
* 1、向用户打款
|