xiongzhu 4 lat temu
rodzic
commit
e5334c668d

+ 1 - 0
src/main/java/com/izouma/nineth/config/AdapayProperties.java

@@ -6,6 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 @Data
 @ConfigurationProperties(prefix = "adapay")
 public class AdapayProperties {
+    private String  merchant;
     private String  appId;
     private boolean debug;
     private boolean prod;

+ 1 - 0
src/main/java/com/izouma/nineth/service/AdapayMerchantService.java

@@ -77,6 +77,7 @@ public class AdapayMerchantService {
         merConfig.setRSAPublicKey(merchant.getPublicKey());
         Adapay.initWithMerConfig(merConfig);
 
+        adapayProperties.setMerchant(merchant.getName());
         adapayProperties.setAppId(merchant.getAppId());
 
         List<AdapayMerchant> list = adapayMerchantRepo.findAll();

+ 1 - 1
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -315,7 +315,7 @@ public class OrderService {
         paymentParams.put("goods_desc", collection.getName());
         paymentParams.put("time_expire", DateTimeFormatter.ofPattern("yyyyMMddHHmmss")
                 .format(LocalDateTime.now().plusMinutes(3)));
-        paymentParams.put("notify_url", adapayProperties.getNotifyUrl() + "/order/" + order.getId());
+        paymentParams.put("notify_url", adapayProperties.getNotifyUrl() + "/order/" + adapayProperties.getMerchant() + "/" + order.getId());
 
         List<Map<String, Object>> divMembers = new ArrayList<>();
         BigDecimal totalAmount = order.getTotalPrice().subtract(order.getGasPrice());

+ 2 - 2
src/main/java/com/izouma/nineth/web/OrderNotifyController.java

@@ -117,9 +117,9 @@ public class OrderNotifyController {
         return WxPayNotifyResponse.success("OK");
     }
 
-    @PostMapping("/adapay/order/{orderId}")
+    @PostMapping("/adapay/order/{merchant}/{orderId}")
     @ResponseBody
-    public void adapayNotify(@PathVariable Long orderId, HttpServletRequest request) {
+    public void adapayNotify(@PathVariable String merchant, @PathVariable Long orderId, HttpServletRequest request) {
         log.info("adapay notify: \n{}", JSON.toJSONString(request.getParameterMap(), PrettyFormat));
         try {
             String data = request.getParameter("data");

+ 10 - 1
src/main/vue/src/views/AdapayMerchantEdit.vue

@@ -72,7 +72,15 @@ export default {
         return {
             saving: false,
             formData: {},
-            rules: {}
+            rules: {
+                name: [
+                    {
+                        pattern: /^[a-z0-9-]+$/,
+                        message: '只能包含小写字母和数字-',
+                        trigger: 'blur'
+                    }
+                ]
+            }
         };
     },
     methods: {
@@ -87,6 +95,7 @@ export default {
         },
         submit() {
             let data = { ...this.formData };
+            data.name = data.name.toLowerCase();
 
             this.saving = true;
             this.$http