Bladeren bron

增加支付校验接口, 填充店铺信息返回值

ssk 3 maanden geleden
bovenliggende
commit
6c2581f908

+ 12 - 0
alien-store/src/main/java/shop/alien/store/controller/AliController.java

@@ -43,6 +43,7 @@ public class AliController {
     private final AlipayTradeRefund alipayTradeRefund;
 
     private final AliOSSUtil aliOSSUtil;
+    private final AliApi aliApi;
 
     @ApiOperation("阿里回调")
     @ApiOperationSupport(order = 1)
@@ -199,4 +200,15 @@ public class AliController {
         return R.data(aliOSSUtil.uploadFile(multipartFile, ossFilePath));
     }
 
+    @ApiOperation("支付")
+    @ApiOperationSupport(order = 12)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "price", value = "金额", dataType = "String", paramType = "query", required = true),
+            @ApiImplicitParam(name = "subject", value = "类目", dataType = "String", paramType = "query", required = true)
+    })
+    @GetMapping("/zhifu")
+    public R<JSONObject> zhifu(@RequestParam(value = "price") String price, @RequestParam(value = "subject") String subject) {
+        return R.data(aliApi.promotionPackagePay(price, subject));
+    }
+
 }

+ 7 - 1
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -1038,7 +1038,13 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
                 }
             }
         }
-
+        LambdaQueryWrapper<StoreDictionary> storeDictionaryLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        storeDictionaryLambdaQueryWrapper.eq(StoreDictionary::getTypeName, "businessStatus")
+                .eq(StringUtils.isNotEmpty(result.getBusinessStatus().toString()), StoreDictionary::getDictId, result.getBusinessStatus());
+        List<StoreDictionary> storeDictionaries = storeDictionaryMapper.selectList(storeDictionaryLambdaQueryWrapper);
+        if (!storeDictionaries.isEmpty()) {
+            result.setBusinessStatusStr(storeDictionaries.get(0).getDictDetail());
+        }
         return result;
     }
 

+ 32 - 0
alien-store/src/main/java/shop/alien/store/util/ali/AliApi.java

@@ -20,6 +20,8 @@ import shop.alien.store.service.LifeUserService;
 import shop.alien.store.service.StoreAliPayLogService;
 import shop.alien.store.service.StoreUserService;
 import shop.alien.util.common.RandomCreateUtil;
+import shop.alien.util.common.UniqueRandomNumGenerator;
+import shop.alien.util.common.UrlEncode;
 import shop.alien.util.system.OSUtil;
 
 import java.text.SimpleDateFormat;
@@ -103,6 +105,7 @@ public class AliApi {
     @Value("${ali.aes.encryptKey}")
     private String encryptKey;
 
+
     /**
      * 填写阿里配置
      *
@@ -132,6 +135,35 @@ public class AliApi {
         return alipayConfig;
     }
 
+    public JSONObject promotionPackagePay(String price, String subject) {
+        try {
+            JSONObject jsonObject = new JSONObject();
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+            String orderNo = UniqueRandomNumGenerator.generateUniqueCode(19);
+            AlipayClient alipayClient = new DefaultAlipayClient(setAlipayConfig(null));
+            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
+            AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
+            model.setOutTradeNo(orderNo);
+            model.setTotalAmount(price);
+            model.setSubject(subject);
+            model.setPassbackParams(UrlEncode.getUrlEncode(dateFormat.toString()));
+            request.setBizModel(model);
+            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+            String orderStr = "";
+            if (response.isSuccess()) {
+                orderStr = response.getBody();
+            } else {
+                System.out.println("调用失败 response:" + response);
+                orderStr = "调用失败";
+            }
+            jsonObject.put("orderStr", orderStr);
+            jsonObject.put("orderNo", orderNo);
+            return jsonObject;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
     /**
      * 身份证二要素核验
      *