Explorar o código

fix(payment): 修复支付金额类型及泛型使用问题

- 将amount_fee方法返回类型由Integer改为String,解决金额精度问题
- 修改amount_fee内部实现,避免金额向下取整为整数
- 更新WFTOrderService中总金额设置逻辑,调用amount_fee获取正确金额字符串
- 修正PayUtill中Map泛型使用,移除参数化类型以匹配需求
- 调整返回结果中状态码的设置方式,统一使用字符串形式"200"
wzq hai 2 días
pai
achega
d3200af563

+ 3 - 3
src/main/java/com/zsElectric/boot/business/service/WFTOrderService.java

@@ -71,9 +71,9 @@ public class WFTOrderService {
      * @param cny 元
      * @return
      */
-    public Integer amount_fee(BigDecimal cny) {
+    public String amount_fee(BigDecimal cny) {
         BigDecimal b2 = new BigDecimal("100");
-        return cny.multiply(b2).setScale(0, RoundingMode.DOWN).intValue();
+        return cny.multiply(b2).setScale(0, RoundingMode.DOWN).toString();
     }
 
 
@@ -122,7 +122,7 @@ public class WFTOrderService {
             // pifList.get(0).setHydOrderPayMoney(new BigDecimal("0.01"));
             // 总金额(分)
 
-            map.put("total_fee", 1);
+            map.put("total_fee", amount_fee(level.getMoney()));
             // 终端ip
             map.put("mch_create_ip", appLevelOrderForm.getIp());
             // 签名方式

+ 1 - 1
src/main/java/com/zsElectric/boot/core/pay/swiftpass/util/PayUtill.java

@@ -96,7 +96,7 @@ public class PayUtill {
                 client.close();
             }
         }
-        Map<String,String> result = new HashMap<String,String>();
+        Map result = new HashMap();
         if("ok".equals(res)){
             result = resultMap;
             result.put("status", "200");