Browse Source

支付订单创建

chunping 3 years ago
parent
commit
ef7b9a24c1

+ 7 - 5
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelOrderController.java

@@ -19,7 +19,6 @@ import com.qs.mp.channel.domain.ChannelAddr;
 import com.qs.mp.channel.domain.ChannelCart;
 import com.qs.mp.channel.domain.ChannelOrder;
 import com.qs.mp.channel.domain.ChannelOrderItem;
-import com.qs.mp.channel.domain.param.ChannelCartParam;
 import com.qs.mp.channel.domain.param.ChannelOrderParam;
 import com.qs.mp.channel.domain.param.ChannelOrderPayParam;
 import com.qs.mp.channel.domain.vo.ChannelCartVO;
@@ -32,18 +31,16 @@ import com.qs.mp.channel.service.IChannelOrderService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.redis.RedisCache;
-import com.qs.mp.common.domain.param.BatchLongIdsParam;
 import com.qs.mp.common.enums.BizTypeEnum;
 import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
-import com.qs.mp.common.enums.ChannelVerifyStatusEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
+import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.pay.service.IWalletService;
 import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import javax.validation.Valid;
@@ -227,7 +224,12 @@ public class ChannelOrderController extends BaseApiController {
   public AjaxResult pay(@Valid @RequestBody ChannelOrderPayParam param) {
     String openId = SecurityUtils.getLoginUser().getUser().getOpenId();
     ChannelOrder channelOrder = channelOrderService.getById(param.getOrderId());
-    JSONObject jsonObject = walletService.channelPay(BizTypeEnum.CHANNEL_ORDER, param.getOrderId(), openId, channelOrder.getPayAmt());
+    JSONObject jsonObject;
+    try {
+      jsonObject = walletService.pay(BizTypeEnum.CHANNEL_ORDER, param.getOrderId(), openId, channelOrder.getPayAmt());
+    }catch (ServiceException e) {
+      return AjaxResult.error(e.getMessage());
+    }
     return AjaxResult.success(jsonObject);
   }
 }

+ 1 - 1
mp-admin/src/main/resources/application-dev.yml

@@ -2,7 +2,7 @@ pay:
     notify:
         url: https://www.quanshu123.com
     call:
-        backUrl: https://api.quanshu123.com/service/notify/payCallback
+        backUrl: https://test-mp.quanshu123.com/service/notify/payCallback
     base:
         url: https://jlpays.kakapaypay.com
     shopNo: 1631243148392

+ 1 - 1
mp-admin/src/main/resources/application-test.yml

@@ -2,7 +2,7 @@ pay:
   notify:
     url: https://www.quanshu123.com
   call:
-    backUrl: https://test-api.quanshu123.com/service/notify/payCallback
+    backUrl: https://test-mp.quanshu123.com/service/notify/payCallback
   base:
     url: https://jlpays.kakapaypay.com
   shopNo: 1631243148392

+ 7 - 31
mp-common/src/main/java/com/qs/mp/common/jsms/JSMSUtils.java

@@ -36,11 +36,11 @@ public class JSMSUtils {
 
     protected static final Logger logger = LoggerFactory.getLogger(JSMSUtils.class);
 
-    private static final String appkey = "538a7546412c8630bdd6138a";
-    private static final String masterSecret = "5d0471cedfc2edd72641a241";
-
+    private static final String appkey = "2f17e0698d004ca7411a9ef6";
+    private static final String masterSecret = "a6446a6b8bf8a4be72bf86d4";
+/*
     private static final String devKey = "242780bfdd7315dc1989fedb";
-    private static final String devSecret = "2f5ced2bef64167950e63d13";
+    private static final String devSecret = "2f5ced2bef64167950e63d13";*/
     private static String env;
 
     @Value("${server.env}")
@@ -78,34 +78,10 @@ public class JSMSUtils {
         return null;
     }
 
-    public static SendSMSResult sendMerchAct(String mobile) {
-        SMSClient client = new SMSClient(masterSecret, appkey);
-        SMSPayload payload = SMSPayload.newBuilder().setMobileNumber(mobile).setTempId(203647).build();
-        try {
-            if (ServerEnvEnum.PROD.getCode().equals(env)) {
-                SendSMSResult res = client.sendTemplateSMS(payload);
-                LogUtil.info(logger, "商户账户创建短信发送结果,mobile:{0}, res:{1}", new Object[]{mobile, JSON.toJSONString(res)});
-                return res;
-            } else {
-                logger.info("非生产环境,不发送商户账号通知短信!" + mobile);
-                return (new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().create().fromJson("{\"msg_id\":\"123456789\"}", SendSMSResult.class);
-
-            }
-        } catch (APIConnectionException e) {
-            LogUtil.error(logger, e, "商户账户创建短信发送失败,mobile:{0}", mobile);
-        } catch (APIRequestException e) {
-            LogUtil.error(logger, e, "商户账户创建短信发送失败,mobile:{0}", mobile);
-        }
-        return null;
-    }
-
-    public static SendSMSResult sendBillPayFail(String mobile) {
-        return sendSMSResult(mobile, 201476);
+    public static SendSMSResult sendChannelActNotify(String mobile) {
+        return sendSMSResult(mobile, 206374);
     }
 
-    public static SendSMSResult sendBillPayFailLastDay(String mobile) {
-        return sendSMSResult(mobile, 202305);
-    }
 
 
     private static SendSMSResult sendSMSResult(String mobile, int tempId) {
@@ -318,7 +294,7 @@ public class JSMSUtils {
     }
 
     public static void testGetAccountSMSBalance() {
-        SMSClient client = new SMSClient(devSecret, devKey);
+        SMSClient client = new SMSClient(masterSecret, appkey);
         try {
             AccountBalanceResult result = client.getSMSBalance();
             logger.info(result.toString());

+ 11 - 9
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java

@@ -12,6 +12,7 @@ import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
 import com.qs.mp.common.enums.RoleTypeEnum;
 import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.common.jsms.JSMSUtils;
 import com.qs.mp.system.domain.SysRole;
 import com.qs.mp.system.domain.SysUser;
 import com.qs.mp.system.service.ISysRoleService;
@@ -37,16 +38,16 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 
 	@Autowired
 	private IChannelService channelService;
-	
+
 	@Autowired
 	private IChannelUserRelService channelUserRelService;
-	
+
 	@Autowired
 	private IChannelCommissionService channelCommissionService;
-	
+
     @Autowired
     private ISysUserService userService;
-    
+
     @Autowired
     private ISysRoleService roleService;
 
@@ -82,18 +83,19 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 		    	throw new ServiceException("请联系管理员");
 		    }
 		    // 4.发送账号创建成功短信
+			JSMSUtils.sendChannelActNotify(channel.getMobile());
 		}else {
 			throw new ServiceException("请联系管理员");
 		}
 	}
-	
+
 
 	@Override
 	@Transactional
 	public void updateChannel(Channel channel, boolean mobileChange) {
 	    // 4.更新入库
 		 boolean editRes = channelService.updateById(channel);
-		 if(editRes && mobileChange 
+		 if(editRes && mobileChange
 				 && null != channel.getUserId()) {
 			 SysUser sysUser = new SysUser();
 			 sysUser.setUserId(channel.getUserId());
@@ -108,17 +110,17 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 			 // 发送账号更新成功短信
 		 }
 	}
-	
+
 	@Override
 	public List<ChannelVO> selectChannelVoList(Wrapper<Channel> queryWrapper) {
 		return getBaseMapper().selectChannelVoList(queryWrapper);
 	}
-	
+
 	@Override
 	public Channel getChannelByUserId(Long userId) {
 		return getBaseMapper().selectOne(new LambdaQueryWrapper<Channel>().eq(Channel::getUserId, userId));
 	}
-	
+
 	@Override
 	public int getChannelSiteCnt(String channelNo) {
 		return getBaseMapper().getChannelSiteCnt(channelNo);

+ 1 - 1
mp-service/src/main/java/com/qs/mp/pay/service/IWalletService.java

@@ -19,7 +19,7 @@ public interface IWalletService {
    * @param money
    * @return
    */
-  JSONObject channelPay(BizTypeEnum bizType, String bizId, String openId, int money);
+  JSONObject pay(BizTypeEnum bizType, String bizId, String openId, int money);
 
   /**
    *

+ 22 - 20
mp-service/src/main/java/com/qs/mp/pay/service/impl/WalletServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qs.mp.channel.service.IChannelOrderService;
 import com.qs.mp.common.enums.BizTypeEnum;
+import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.utils.DateUtils;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
@@ -59,38 +60,39 @@ public class WalletServiceImpl implements IWalletService {
   private static final String PAY_RESOURCE_TYPE = "1017"; //2:微信小程序
 
   @Override
-  public JSONObject channelPay(BizTypeEnum bizType, String bizId, String openId, int money) {
+  public JSONObject pay(BizTypeEnum bizType, String bizId, String openId, int money) {
     String reqUrl = baseUrl + "/pay/payMoneyCTB";
-    JSONObject params = new JSONObject();
-    params = buildPayOrderReqData(payShopNo, paySign, money, openId);
+    JSONObject params = buildPayOrderReqData(payShopNo, paySign, money, openId);
     String result = OkHttpUtil.postJsonParams(reqUrl, params.toJSONString());
     logger.info("request params:" + params.toJSONString() + "  result:" + result);
     if (StringUtils.isBlank(result)) {
       LogUtil.error(logger, "创建充值订单接口失败");
-      return null;
+      throw new ServiceException("创建三方支付订单失败");
     }
     JSONObject resultJson = JSONObject.parseObject(result);
     String code = resultJson.getString("code");
     String orderNo = resultJson.getString("order_no");
     JSONObject data = resultJson.getJSONObject("pay_info");
     String orderstatus = resultJson.getString("orderstatus");
-    if (REQ_STATUS_SUCCESS.equalsIgnoreCase(code)) {
-      //保存订单记录
-      PayOrder payOrder = buildPayOrder(params);
-      payOrder.setOrderId(resultJson.getString("shop_order_no"));
-      payOrder.setOrderNo(orderNo);
-      payOrder.setCode(code);
-      payOrder.setBizType(bizType);
-      payOrder.setBizId(bizId);
-      payOrder.setOrderStatus(orderstatus);
-      boolean ret = payOrderService.save(payOrder);
-      if (ret) {
-        return data;
-      } else {
-        LogUtil.error(logger, "渠道支付订单数据库保存失败.");
-      }
+    String resultMsg = resultJson.getString("result");
+    if (!REQ_STATUS_SUCCESS.equalsIgnoreCase(code)) {
+      throw new ServiceException(resultMsg);
     }
-    return null;
+    //保存订单记录
+    PayOrder payOrder = buildPayOrder(params);
+    payOrder.setOrderId(resultJson.getString("shop_order_no"));
+    payOrder.setOrderNo(orderNo);
+    payOrder.setCode(code);
+    payOrder.setBizType(bizType);
+    payOrder.setBizId(bizId);
+    payOrder.setOrderStatus(orderstatus);
+    boolean ret = payOrderService.save(payOrder);
+    if (!ret) {
+      LogUtil.error(logger, "渠道支付订单数据库保存失败.");
+      throw new ServiceException("支付订单保存失败");
+    }
+    return data;
+
   }
 
   @Override