吴学文 пре 6 година
родитељ
комит
6ae634c554

+ 18 - 8
FrontService/src/main/java/com/java110/front/smo/AppAbstractComponentSMO.java

@@ -69,7 +69,7 @@ public abstract class AppAbstractComponentSMO extends AbstractComponentSMO {
      * @return
      * @throws Exception
      */
-    protected Map<String, String> java110Payment(RestTemplate restTemplate,String feeName, String orderNum, double money, String openId) throws Exception {
+    protected Map<String, String> java110Payment(RestTemplate restTemplate,String feeName, String tradeType,String orderNum, double money, String openId) throws Exception {
         logger.info("【小程序支付】 统一下单开始, 订单编号=" + orderNum);
         SortedMap<String, String> resultMap = new TreeMap<String, String>();
 //生成支付金额,开发环境处理支付金额数到0.01、0.02、0.03元
@@ -77,14 +77,24 @@ public abstract class AppAbstractComponentSMO extends AbstractComponentSMO {
         double payAmount = PayUtil.getPayAmountByEnv(MappingCache.getValue("HC_ENV"), money);
 //添加或更新支付记录(参数跟进自己业务需求添加)
 
-        Map<String, String> resMap = this.java110UnifieldOrder(restTemplate,feeName, orderNum, wechatAuthProperties.TRADE_TYPE_JSAPI, payAmount, openId);
+        Map<String, String> resMap = this.java110UnifieldOrder(restTemplate,feeName, orderNum, tradeType, payAmount, openId);
         if ("SUCCESS".equals(resMap.get("return_code")) && "SUCCESS".equals(resMap.get("result_code"))) {
-            resultMap.put("appId", wechatAuthProperties.getAppId());
-            resultMap.put("timeStamp", PayUtil.getCurrentTimeStamp());
-            resultMap.put("nonceStr", PayUtil.makeUUID(32));
-            resultMap.put("package", "prepay_id=" + resMap.get("prepay_id"));
-            resultMap.put("signType", "MD5");
-            resultMap.put("sign", PayUtil.createSign(resultMap, wechatAuthProperties.getKey()));
+            if(WechatAuthProperties.TRADE_TYPE_JSAPI.equals(tradeType)) {
+                resultMap.put("appId", wechatAuthProperties.getAppId());
+                resultMap.put("timeStamp", PayUtil.getCurrentTimeStamp());
+                resultMap.put("nonceStr", PayUtil.makeUUID(32));
+                resultMap.put("package", "prepay_id=" + resMap.get("prepay_id"));
+                resultMap.put("signType", "MD5");
+                resultMap.put("sign", PayUtil.createSign(resultMap, wechatAuthProperties.getKey()));
+            }else if(WechatAuthProperties.TRADE_TYPE_APP.equals(tradeType)){
+                resultMap.put("appId", wechatAuthProperties.getAppId());
+                resultMap.put("timeStamp", PayUtil.getCurrentTimeStamp());
+                resultMap.put("nonceStr", PayUtil.makeUUID(32));
+                resultMap.put("partnerid", wechatAuthProperties.getMchId());
+                resultMap.put("prepayid", resMap.get("prepay_id"));
+                //resultMap.put("signType", "MD5");
+                resultMap.put("sign", PayUtil.createSign(resultMap, wechatAuthProperties.getKey()));
+            }
             resultMap.put("code", "0");
             resultMap.put("msg", "下单成功");
             logger.info("【小程序支付】统一下单成功,返回参数:" + resultMap);

+ 2 - 69
FrontService/src/main/java/com/java110/front/smo/payment/impl/ToPaySMOImpl.java

@@ -81,79 +81,12 @@ public class ToPaySMOImpl extends AppAbstractComponentSMO implements IToPaySMO {
         String openId = realUserInfo.getString("openId");
 
         //微信下单PayUtil
-        Map result = super.java110Payment(restTemplate,paramIn.getString("feeName"), orderId, money, openId);
+        Map result = super.java110Payment(restTemplate,paramIn.getString("feeName"),paramIn.getString("tradeType"), orderId, money, openId);
         responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK);
 
         return responseEntity;
     }
 
 
-    /**
-     * 预下单
-     *
-     * @param orderNum
-     * @param money
-     * @param openId
-     * @return
-     * @throws Exception
-     */
-//    private Map<String, String> java110Payment(String feeName, String orderNum, double money, String openId) throws Exception {
-//        logger.info("【小程序支付】 统一下单开始, 订单编号=" + orderNum);
-//        SortedMap<String, String> resultMap = new TreeMap<String, String>();
-////生成支付金额,开发环境处理支付金额数到0.01、0.02、0.03元
-//
-//        double payAmount = PayUtil.getPayAmountByEnv("DEV", money);
-////添加或更新支付记录(参数跟进自己业务需求添加)
-//
-//        Map<String, String> resMap = this.java110UnifieldOrder(feeName, orderNum, wechatAuthProperties.TRADE_TYPE_JSAPI, payAmount, openId);
-//        if ("SUCCESS".equals(resMap.get("return_code")) && "SUCCESS".equals(resMap.get("result_code"))) {
-//            resultMap.put("appId", wechatAuthProperties.getAppId());
-//            resultMap.put("timeStamp", PayUtil.getCurrentTimeStamp());
-//            resultMap.put("nonceStr", PayUtil.makeUUID(32));
-//            resultMap.put("package", "prepay_id=" + resMap.get("prepay_id"));
-//            resultMap.put("signType", "MD5");
-//            resultMap.put("sign", PayUtil.createSign(resultMap, wechatAuthProperties.getKey()));
-//            resultMap.put("code", "0");
-//            resultMap.put("msg", "下单成功");
-//            logger.info("【小程序支付】统一下单成功,返回参数:" + resultMap);
-//        } else {
-//            resultMap.put("code", resMap.get("return_code"));
-//            resultMap.put("msg", resMap.get("return_msg"));
-//            logger.info("【小程序支付】统一下单失败,失败原因:" + resMap.get("return_msg"));
-//        }
-//        return resultMap;
-//    }
-//
-//    /**
-//     * 小程序支付统一下单
-//     */
-//    private Map<String, String> java110UnifieldOrder(String feeName, String orderNum, String tradeType, double payAmount, String openid) throws Exception {
-////封装参数
-//        SortedMap<String, String> paramMap = new TreeMap<String, String>();
-//        paramMap.put("appid", wechatAuthProperties.getAppId());
-//        paramMap.put("mch_id", wechatAuthProperties.getMchId());
-//        paramMap.put("nonce_str", PayUtil.makeUUID(32));
-//        paramMap.put("body", "HC智慧家园-" + feeName);
-//        paramMap.put("out_trade_no", orderNum);
-//        paramMap.put("total_fee", PayUtil.moneyToIntegerStr(payAmount));
-//        paramMap.put("spbill_create_ip", PayUtil.getLocalIp());
-//        paramMap.put("notify_url", wechatAuthProperties.getWxNotifyUrl());
-//        paramMap.put("trade_type", tradeType);
-//        paramMap.put("openid", openid);
-//        paramMap.put("sign", PayUtil.createSign(paramMap, wechatAuthProperties.getKey()));
-////转换为xml
-//        String xmlData = PayUtil.mapToXml(paramMap);
-//
-//        logger.debug("调用支付统一下单接口" + xmlData);
-//
-//        ResponseEntity<String> responseEntity = restTemplate.postForEntity(
-//                wechatAuthProperties.getWxPayUnifiedOrder(), xmlData, String.class);
-//
-//        logger.debug("统一下单返回" + responseEntity);
-////请求微信后台,获取预支付ID
-//        if (responseEntity.getStatusCode() != HttpStatus.OK) {
-//            throw new IllegalArgumentException("支付失败" + responseEntity.getBody());
-//        }
-//        return PayUtil.xmlStrToMap(responseEntity.getBody());
-//    }
+
 }