diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java index 6d6c64b..c06ac57 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java @@ -148,7 +148,7 @@ public class FuiouPayService extends BasePayService { LinkedHashMap parameters = new LinkedHashMap(); parameters.put("mchnt_cd", payConfigStorage.getPid());//商户代码 parameters.put("order_id", order.getOutTradeNo());//商户订单号 - parameters.put("order_amt", (int)(order.getPrice().doubleValue() * 100));//交易金额 + parameters.put("order_amt", order.getPrice().multiply(new BigDecimal(100)).setScale( 0, BigDecimal.ROUND_HALF_UP).intValue());//交易金额 // parameters.put("cur_type", null == order.getCurType() ? FuiouCurType.CNY:order.getCurType());//交易币种 parameters.put("order_pay_type", order.getTransactionType());//支付类型 parameters.put("page_notify_url", payConfigStorage.getReturnUrl());//商户接受支付结果通知地址 @@ -452,5 +452,10 @@ public class FuiouPayService extends BasePayService { return null; } + public static void main(String[] args) { + BigDecimal decimal = new BigDecimal(2295.204); + System.out.println(decimal.toString()); + System.out.println(decimal.multiply(new BigDecimal(100)).setScale( 0, BigDecimal.ROUND_HALF_UP)); + } } diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index 3fcef97..17f5b30 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -139,7 +139,7 @@ public class WxPayService extends BasePayService { parameters.put("body", order.getSubject());// 购买支付信息 parameters.put("out_trade_no", order.getOutTradeNo());// 订单号 parameters.put("spbill_create_ip", "192.168.1.150"); - parameters.put("total_fee", order.getPrice().multiply(new BigDecimal(100)).intValue());// 总金额单位为分 + parameters.put("total_fee", order.getPrice().multiply(new BigDecimal(100)).setScale( 0, BigDecimal.ROUND_HALF_UP).intValue());// 总金额单位为分 parameters.put("attach", order.getBody()); parameters.put("notify_url", payConfigStorage.getNotifyUrl());